Class AssemblyContentDescription
A description of a target assembly's contents.
Inheritance
Inherited Members
Namespace: Flame.Compiler.Pipeline
Assembly: Flame.Compiler.dll
Syntax
public sealed class AssemblyContentDescription
Constructors
| Improve this Doc View SourceAssemblyContentDescription(QualifiedName, AttributeMap, ImmutableHashSet<IType>, ImmutableHashSet<ITypeMember>, IReadOnlyDictionary<IMethod, MethodBody>, IMethod)
Creates an assembly content description.
Declaration
public AssemblyContentDescription(QualifiedName fullName, AttributeMap attributes, ImmutableHashSet<IType> types, ImmutableHashSet<ITypeMember> typeMembers, IReadOnlyDictionary<IMethod, MethodBody> methodBodies, IMethod entryPoint)
Parameters
Type | Name | Description |
---|---|---|
QualifiedName | fullName | The assembly's full name. |
AttributeMap | attributes | The assembly's attribute map. |
System.Collections.Immutable.ImmutableHashSet<IType> | types | The list of types to include in the assembly. |
System.Collections.Immutable.ImmutableHashSet<ITypeMember> | typeMembers | The type members to include in the assembly. |
System.Collections.Generic.IReadOnlyDictionary<IMethod, MethodBody> | methodBodies | A mapping of methods to method bodies. |
IMethod | entryPoint | An optional entry point method. |
Properties
| Improve this Doc View SourceAttributes
Gets the attribute map for the assembly to build.
Declaration
public AttributeMap Attributes { get; }
Property Value
Type | Description |
---|---|
AttributeMap | An attribute map. |
EntryPoint
Gets the assembly's entry point. Returns null
if the
assembly has no entry point.
Declaration
public IMethod EntryPoint { get; }
Property Value
Type | Description |
---|---|
IMethod | The assembly's entry point. |
FullName
Gets the full name of the assembly to build.
Declaration
public QualifiedName FullName { get; }
Property Value
Type | Description |
---|---|
QualifiedName | A fully qualified name. |
MethodBodies
Gets a dictionary that maps method in this assembly to their method bodies.
Declaration
public IReadOnlyDictionary<IMethod, MethodBody> MethodBodies { get; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.IReadOnlyDictionary<IMethod, MethodBody> | The method bodies dictionary. |
TypeMembers
Gets the set of type members to compile and include in the assembly.
Declaration
public ImmutableHashSet<ITypeMember> TypeMembers { get; }
Property Value
Type | Description |
---|---|
System.Collections.Immutable.ImmutableHashSet<ITypeMember> | A set of type members. |
Types
Gets the set of types to compile and include in the assembly.
Declaration
public ImmutableHashSet<IType> Types { get; }
Property Value
Type | Description |
---|---|
System.Collections.Immutable.ImmutableHashSet<IType> | A set of types. |
Methods
| Improve this Doc View SourceCreateTransitiveAsync(QualifiedName, AttributeMap, IMethod, Optimizer)
Creates an assembly content description that transitively includes all dependencies for an entry point method.
Declaration
public static Task<AssemblyContentDescription> CreateTransitiveAsync(QualifiedName fullName, AttributeMap attributes, IMethod entryPoint, Optimizer optimizer)
Parameters
Type | Name | Description |
---|---|---|
QualifiedName | fullName | The name of the assembly. |
AttributeMap | attributes | The assembly's attributes. |
IMethod | entryPoint | An entry point method. |
Optimizer | optimizer | An optimizer for method bodies. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<AssemblyContentDescription> | An assembly content description. |
CreateTransitiveAsync(QualifiedName, AttributeMap, IMethod, IEnumerable<ITypeMember>, Optimizer)
Creates an assembly content description that contains a number of root members plus an optional entry point method. Dependencies are transitively included.
Declaration
public static Task<AssemblyContentDescription> CreateTransitiveAsync(QualifiedName fullName, AttributeMap attributes, IMethod entryPoint, IEnumerable<ITypeMember> roots, Optimizer optimizer)
Parameters
Type | Name | Description |
---|---|---|
QualifiedName | fullName | The name of the assembly. |
AttributeMap | attributes | The assembly's attributes. |
IMethod | entryPoint | An entry point method. Specify |
System.Collections.Generic.IEnumerable<ITypeMember> | roots | A sequence of additional roots that must be included in the assembly. |
Optimizer | optimizer | An optimizer for method bodies. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<AssemblyContentDescription> | An assembly content description. |
CreateTransitiveAsync(QualifiedName, AttributeMap, IMethod, IEnumerable<ITypeMember>, IEnumerable<IType>, Optimizer)
Creates an assembly content description that contains a number of root members plus an optional entry point method. Dependencies are transitively included.
Declaration
public static Task<AssemblyContentDescription> CreateTransitiveAsync(QualifiedName fullName, AttributeMap attributes, IMethod entryPoint, IEnumerable<ITypeMember> memberRoots, IEnumerable<IType> typeRoots, Optimizer optimizer)
Parameters
Type | Name | Description |
---|---|---|
QualifiedName | fullName | The name of the assembly. |
AttributeMap | attributes | The assembly's attributes. |
IMethod | entryPoint | An entry point method. Specify |
System.Collections.Generic.IEnumerable<ITypeMember> | memberRoots | A sequence of additional root members that must be included in the assembly. |
System.Collections.Generic.IEnumerable<IType> | typeRoots | A sequence of additional root types that must be included in the assembly. |
Optimizer | optimizer | An optimizer for method bodies. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<AssemblyContentDescription> | An assembly content description. |