Represent a declaration.
[CompileTime] public interface IDeclaration : IDisplayable, IDiagnosticLocation, ICompilationElement, IMeasurable
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.
Gets the collection of custom attributes on the declaration.
Gets a value indicating whether the current declaration is declared to the current project. It returns
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 Namespace for that).
Gets the kind of declaration.
Gets the declaring assembly, which can be the current Compilation or a reference assembly.
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.
Gets a value indicating whether the member is implicitly declared, i.e. declared without being represented in source code.
Gets the origin of the current declaration.
Gets a reference to the compilation, which can be used to identify the current declaration in a different revision of the compilation.
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.