Namespace Flame.TypeSystem
Classes
AccessModifierAttribute
A collection of constants and methods that relate to access modifier attributes.
AccessRules
A base class for rules that define which members may refer to other members.
AssemblyResolver
Resolves assemblies based on assembly identities.
ContainerType
A base type for types that refer to some number of homogeneously-typed elements.
DescribedAccessor
A property accessor that can be constructed incrementally in an imperative fashion.
DescribedAssembly
An assembly that can be constructed in piece by piece, an imperative fashion.
DescribedBodyAccessor
A property accessor that can be constructed incrementally in an imperative fashion and defines a method body.
DescribedBodyMethod
A method that can be constructed incrementally in an imperative fashion and defines a method body.
DescribedField
A field that can be constructed incrementally in an imperative fashion.
DescribedGenericMember
A generic member that can be constructed incrementally in an imperative fashion.
DescribedGenericParameter
A generic parameter that can be constructed piece by piece in an imperative fashion.
DescribedMember
A member that can be constructed incrementally in an imperative fashion.
DescribedMethod
A method that can be constructed incrementally in an imperative fashion.
DescribedType
A type that can be constructed incrementally in an imperative fashion.
DirectMethodSpecialization
A generic method specialization obtained by passing type arguments directly to a generic declaration.
DirectTypeSpecialization
A generic type that is instantiated with a list of type arguments.
ErrorType
A special type that signals that an error occurred and that the corresponding error has been reported already.
Further errors that arise because an error type is encountered should be suppressed. For example, it is wrong to report an error when a member of an error type is accessed. Reporting the error would confuse the user---the true error here is that the type of a value cannot be recovered, not that the error type does not have any members.
ExceptionSpecificationAttribute
An attribute that attaches an exception specification to a method.
ExternAttribute
An attribute that indicates that a method is implemented by calling into an external library.
FlagAttribute
A collection of constants and methods that relate to simple flag attributes.
IndirectAccessorSpecialization
An accessor specialization that is obtained by observing an accessor of an indirect property specialization.
IndirectFieldSpecialization
A specialization of a field belonging to a recursively generic type.
IndirectGenericParameterSpecialization
A generic specialization of a generic parameter that is obtained by specializing the declaring member of a generic parameter definition.
IndirectMethodSpecialization
A specialization of a method that is obtained by specializing the method's parent type.
IndirectPropertySpecialization
A specialization of a property that is obtained by observing a property of a generic type specialization, direct or otherwise.
IndirectTypeSpecialization
A type that is defined in an instantiated generic type.
IntegerSpecAttribute
A collection of constants and methods that relate to integer specification attributes.
IntrinsicAttribute
Describes a named attribute that is well-understood by the compiler.
MemberMapping
A (type mapping, method mapping, field mapping) triple.
MemorySpecificationAttribute
An attribute that attaches a memory specification to a method.
MethodSpecialization
A base type for method specializations.
MutableTypeEnvironment
A type environment that wraps an inner type environment that can be changed at will.
The main use-case for this kind of environment is a situation where the type environment for an assembly is defined by that assembly itself but the assembly does not allow for the type environment to change.
NullAssemblyResolver
An assembly resolver implementation that never successfully resolves an assembly. Useful for testing and building composite assembly resolvers.
PointerKind
Identifies a particular kind of pointer.
PointerType
A type for pointers or references to values.
StandardAccessRules
The "standard" access rules, which determine accessibility based on access modifiers.
SubtypingRules
Defines a subtyping relation on types.
TypeEnvironment
A base class for classes that augment Flame's type system with types specific to a particular environment
TypeFuncVisitor
A type visitor that uses a type-to-type mapping function under the hood.
TypeMappingVisitor
A type visitor that replaces types according to a dictionary.
TypeResolver
Indexes assemblies and resolves types based on their names.
TypeResolverNamespace
An artifical namespace introduced by a type resolver.
TypeSpecialization
A base type for generic type specializations.
TypeVisitor
A type of object that recursively applies a mapping to types.
VirtualMethodSetExtensions
Defines an extension for finding the virtual method set of a type: the set of all virtual methods defined in the type itself or any of its (recursive) base types that are not (yet) implemented in the type.
Structs
ReadOnlyTypeResolver
A read-only view of a type resolver.
Enums
AccessModifier
An enumeration of access modifiers: attributes that determine which members can access a member.
ImpreciseBoolean
A three-valued "Boolean" type that allows Boolean property analyses to express uncertainty.