Provides support for generic types and methods.
UnboundGeneric* represent the unbound form of the generic,
ConstructedGeneric* represent the constructed generic where type arguments
have been supplied and are bound to the type parameters.
There is a one-to-many relationship between an unbound generic (
and its constructed generics (
Generics can be partially constructed if they are unbound generics contained
within constructed generic types. The predicate
to the ultimate
UnboundGeneric type/method as defined in the source code.
A constructed (bound) class. (See the comments on
A constructed (bound) delegate type. (See the comments on
A declaration constructed from an
A C# constructed (bound) interface. (See the comments on
A constructed generic local function, for example the target
A constructed (bound) method, for example the target
A constructed (bound)
A constructed (bound) type. This is a generic type for which actual type arguments have been supplied, for example
A generic declaration. Either an unbound generic (
A method that is not constructed. That is, either a method that is not a generic method or an unbound generic method (
A type parameter, for example
A set of type parameter constraints.
A generic declaration that can have type parameters.
An unbound generic class, for example
An unbound generic delegate type. (See the comments on
An unbound generic interface, for example
An unbound generic method. This is a generic method whose signature involves formal type parameters, For example
An unbound generic
An unbound generic type. This is a generic type with type parameters (for example
An unbound generic local function, for example