Open sandboxFocusImprove this doc

Namespace Metalama.Framework.Code.Types

This namespace contains specializations of the IType interface.

Simplified class diagram

classDiagram
      IType <|-- INamedType
      INamedType <|-- ITupleType
      IType <|-- ITypeParameter
      IType <|-- IArrayType
      IType <|-- IPointerType
      IType <|-- IFunctionPointerType
      IType <|-- IDynamicType
Warning

IExtensionBlock, despite implementing INamedType, should never be used as an IType.

Interfaces

IArrayType

Represents an array, e.g. T[].

IDelegateFacet

Represents the structure of a delegate: its Invoke method, which carries its signature.

IDynamicType

Represents the dynamic type, which bypasses compile-time type checking.

IEnumFacet

Represents the structure of an enum: its underlying integral type, its members, and whether it carries FlagsAttribute.

IFunctionPointerType

Represents a function pointer type (delegate*).

IPointerType

Represents an unsafe pointer type.

IRecordFacet

Represents the structure of a record: the members that the compiler synthesizes for it.

ITypeFacet

Represents the structure that a named type has because of its kind, and that other named types do not have.

IUnionCase

Represents one case of a union, reached through Cases.

IUnionFacet

Represents the structure of a union of C# 15: its authoring form, its cases and its Value property.

Enums

TypeFacetKind

Kinds of ITypeFacet.

UnionKind

Authoring forms of a union of C# 15, reported by UnionKind.