Represent a declaration.
Namespace: Metalama.Framework.Code
Assembly: Metalama.Framework.dll
Syntax
[CompileTime]
public interface IDeclaration : IDisplayable, IDiagnosticLocation, ICompilationElement, IMeasurable, IEquatable<IDeclaration>
Remarks
The IDeclaration interface implements IEquatable<T>. The implementation uses the Default comparer. To use a different comparer, choose a different comparer from IDeclaration.Compilation.Comparers.
Properties
Name | Description |
---|---|
Attributes | Gets the collection of custom attributes on the declaration. |
BelongsToCurrentProject | Gets a value indicating whether the current declaration is declared to the current project. It returns |
ContainingDeclaration | Gets the containing declaration, such as a INamedType for nested types or for methods. For non-nested types, returns the containing assembly (and not the namespace, use ContainingNamespace for that). |
DeclarationKind | Gets the kind of declaration. |
DeclaringAssembly | Gets the declaring assembly, which can be the current Compilation or a reference assembly. |
Depth | Gets the depth of the current declaration in the code model. The value of the Depth property has no absolute meaning, only a relative one, i.e. it is only relevant when comparing the depth of two declarations. A declaration has always a greater depth than the declaration in which it is contained. A type has always a greater depths than the base it derives from or the interfaces it implements. |
IsImplicitlyDeclared | Gets a value indicating whether the member is implicitly declared, i.e. declared without being represented in source code.
Returns |
Origin | Gets the origin of the current declaration. |
Sources | Gets the set of syntax nodes of the source code that declare the current declaration, or an empty set if the current declaration is not backed by source code. |
Methods
Name | Description |
---|---|
ToRef() | Gets a reference to the compilation, which can be used to identify the current declaration in a different revision of the compilation. The reference object is compile-time serializable. It is guaranteed to be deserializable in a different process, even with a different version of Metalama. |
ToSerializableId() | Gets a serializable identifier for the current declaration. This identifier is guaranteed to be deserializable in a different process, even with a different version of Metalama. |