Show / Hide Table of Contents

    Class TypeExtensions

    A collection of extension and helper methods that simplify working with types.

    Inheritance
    System.Object
    TypeExtensions
    Inherited Members
    System.Object.ToString()
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    Namespace: Flame
    Assembly: Flame.dll
    Syntax
    public static class TypeExtensions

    Methods

    | Improve this Doc View Source

    GetAllInstanceFields(IType)

    Gets all fields present in an instance of a particular type. Such fields can either be defined directly or inherited from base types.

    Declaration
    public static IEnumerable<IField> GetAllInstanceFields(this IType type)
    Parameters
    Type Name Description
    IType type

    A type to inspect.

    Returns
    Type Description
    System.Collections.Generic.IEnumerable<IField>

    A sequence of instance fields.

    | Improve this Doc View Source

    GetDefiningAssemblyOrNull(IType)

    Gets a type's defining assembly, if one can be found.

    Declaration
    public static IAssembly GetDefiningAssemblyOrNull(this IType type)
    Parameters
    Type Name Description
    IType type

    The type to examine.

    Returns
    Type Description
    IAssembly

    The type's defining assembly, if it has one; otherwise, null.

    | Improve this Doc View Source

    GetDefiningAssemblyOrNull(ITypeMember)

    Gets a type member's defining assembly, if one can be found.

    Declaration
    public static IAssembly GetDefiningAssemblyOrNull(this ITypeMember member)
    Parameters
    Type Name Description
    ITypeMember member

    The type member to examine.

    Returns
    Type Description
    IAssembly

    The type member's defining assembly, if it has one; otherwise, null.

    | Improve this Doc View Source

    GetGenericArguments(IMethod)

    Gets the generic arguments given to a particular method, if any. The list returned by this method does not include arguments given to parent types of the provided method.

    Declaration
    public static IReadOnlyList<IType> GetGenericArguments(this IMethod method)
    Parameters
    Type Name Description
    IMethod method
    Returns
    Type Description
    System.Collections.Generic.IReadOnlyList<IType>

    A list of generic argument types.

    | Improve this Doc View Source

    GetGenericArguments(IType)

    Gets the generic arguments given to a particular type, if any. The list returned by this method does not include arguments given to parent types of the provided type.

    Declaration
    public static IReadOnlyList<IType> GetGenericArguments(this IType type)
    Parameters
    Type Name Description
    IType type
    Returns
    Type Description
    System.Collections.Generic.IReadOnlyList<IType>

    A list of generic argument types.

    | Improve this Doc View Source

    GetImplementationOf(IType, IMethod)

    Gets most derived implementation of a particular method in a type.

    Declaration
    public static IMethod GetImplementationOf(this IType type, IMethod method)
    Parameters
    Type Name Description
    IType type

    The type that implements the method.

    IMethod method

    A method to find a more derived implementation for.

    Returns
    Type Description
    IMethod

    A direct or indirect implementation of method.

    | Improve this Doc View Source

    GetRecursiveGenericArgumentMapping(IMethod)

    Creates a dictionary that maps a method's recursive generic parameters to their arguments. Additionally, original generic parameters are also mapped to modified generic parameters.

    Declaration
    public static IReadOnlyDictionary<IType, IType> GetRecursiveGenericArgumentMapping(this IMethod method)
    Parameters
    Type Name Description
    IMethod method

    The method to create the mapping for.

    Returns
    Type Description
    System.Collections.Generic.IReadOnlyDictionary<IType, IType>

    A mapping of generic parameters to their arguments.

    | Improve this Doc View Source

    GetRecursiveGenericArgumentMapping(IType)

    Creates a dictionary that maps a type's recursive generic parameters to their arguments. Additionally, original generic parameters are also mapped to modified generic parameters.

    Declaration
    public static IReadOnlyDictionary<IType, IType> GetRecursiveGenericArgumentMapping(this IType type)
    Parameters
    Type Name Description
    IType type

    The type to create the mapping for.

    Returns
    Type Description
    System.Collections.Generic.IReadOnlyDictionary<IType, IType>

    A mapping of generic parameters to their arguments.

    | Improve this Doc View Source

    GetRecursiveGenericArguments(IType)

    Gets the recursive generic arguments for a particular type.

    Declaration
    public static IReadOnlyList<IType> GetRecursiveGenericArguments(this IType type)
    Parameters
    Type Name Description
    IType type

    A type to examine.

    Returns
    Type Description
    System.Collections.Generic.IReadOnlyList<IType>

    The type's list of recursive generic arguments.

    | Improve this Doc View Source

    GetRecursiveGenericDeclaration(IField)

    Gets the recursive generic declaration of a field.

    If the field is not a recursive generic instance, the field itself is returned.

    If the field is a recursive generic instance, the recursive generic declaration of the field's generic declaration is returned.

    Declaration
    public static IField GetRecursiveGenericDeclaration(this IField field)
    Parameters
    Type Name Description
    IField field

    A field to examine.

    Returns
    Type Description
    IField

    The field's recursive generic declaration.

    | Improve this Doc View Source

    GetRecursiveGenericDeclaration(IMethod)

    Gets the recursive generic declaration of a method.

    If the method is not a recursive generic instance, the method itself is returned.

    If the method is a recursive generic instance, the recursive generic declaration of the method's generic declaration is returned.

    Declaration
    public static IMethod GetRecursiveGenericDeclaration(this IMethod method)
    Parameters
    Type Name Description
    IMethod method

    A method to examine.

    Returns
    Type Description
    IMethod

    The method's recursive generic declaration.

    | Improve this Doc View Source

    GetRecursiveGenericDeclaration(IType)

    Gets the recursive generic declaration of a type.

    If the type is not a recursive generic instance, the type itself is returned.

    If the type is a recursive generic instance, the recursive generic declaration of the type's generic declaration is returned.

    Declaration
    public static IType GetRecursiveGenericDeclaration(this IType type)
    Parameters
    Type Name Description
    IType type

    A type to examine.

    Returns
    Type Description
    IType

    The type's recursive generic declaration.

    | Improve this Doc View Source

    GetRecursiveGenericParameters(IType)

    Gets the recursive generic parameters for a particular type.

    Declaration
    public static IReadOnlyList<IGenericParameter> GetRecursiveGenericParameters(this IType type)
    Parameters
    Type Name Description
    IType type

    A type to examine.

    Returns
    Type Description
    System.Collections.Generic.IReadOnlyList<IGenericParameter>

    The type's list of recursive generic parameters.

    | Improve this Doc View Source

    IsPointerType(IType)

    Tests if a type is a pointer type.

    Declaration
    public static bool IsPointerType(this IType type)
    Parameters
    Type Name Description
    IType type

    The type to inspect.

    Returns
    Type Description
    System.Boolean

    true if the type is a pointer type; otherwise, false.

    | Improve this Doc View Source

    IsPointerType(IType, PointerKind)

    Tests if a type is a pointer type of a particular kind.

    Declaration
    public static bool IsPointerType(this IType type, PointerKind kind)
    Parameters
    Type Name Description
    IType type

    The type to inspect.

    PointerKind kind

    The kind of pointer to test for.

    Returns
    Type Description
    System.Boolean

    true if the type is a pointer type of the specified kind; otherwise, false.

    | Improve this Doc View Source

    IsRecursiveGenericInstance(IType)

    Tells if a particular type is either a generic instance or a nested type of a generic instance.

    Declaration
    public static bool IsRecursiveGenericInstance(this IType type)
    Parameters
    Type Name Description
    IType type

    A type to examine.

    Returns
    Type Description
    System.Boolean

    true if the type is a recursive generic instance; otherwise, false.

    | Improve this Doc View Source

    MakeGenericMethod(IMethod, IType[])

    Creates a generic specialization of a particular generic method declaration

    Declaration
    public static DirectMethodSpecialization MakeGenericMethod(this IMethod declaration, params IType[] genericArguments)
    Parameters
    Type Name Description
    IMethod declaration

    The generic method declaration that is specialized into a concrete method.

    IType[] genericArguments

    The type arguments with which the generic method is specialized.

    Returns
    Type Description
    DirectMethodSpecialization

    A generic specialization.

    | Improve this Doc View Source

    MakeGenericMethod(IMethod, IReadOnlyList<IType>)

    Creates a generic specialization of a particular generic method declaration

    Declaration
    public static DirectMethodSpecialization MakeGenericMethod(this IMethod declaration, IReadOnlyList<IType> genericArguments)
    Parameters
    Type Name Description
    IMethod declaration

    The generic method declaration that is specialized into a concrete method.

    System.Collections.Generic.IReadOnlyList<IType> genericArguments

    The type arguments with which the generic method is specialized.

    Returns
    Type Description
    DirectMethodSpecialization

    A generic specialization.

    | Improve this Doc View Source

    MakeGenericType(IType, IType[])

    Creates a generic specialization of a particular generic type declaration

    Declaration
    public static DirectTypeSpecialization MakeGenericType(this IType declaration, params IType[] genericArguments)
    Parameters
    Type Name Description
    IType declaration

    The generic type declaration that is specialized into a concrete type.

    IType[] genericArguments

    The type arguments with which the generic type is specialized.

    Returns
    Type Description
    DirectTypeSpecialization

    A generic specialization.

    | Improve this Doc View Source

    MakeGenericType(IType, IReadOnlyList<IType>)

    Creates a generic specialization of a particular generic type declaration

    Declaration
    public static DirectTypeSpecialization MakeGenericType(this IType declaration, IReadOnlyList<IType> genericArguments)
    Parameters
    Type Name Description
    IType declaration

    The generic type declaration that is specialized into a concrete type.

    System.Collections.Generic.IReadOnlyList<IType> genericArguments

    The type arguments with which the generic type is specialized.

    Returns
    Type Description
    DirectTypeSpecialization

    A generic specialization.

    | Improve this Doc View Source

    MakePointerType(IType, PointerKind)

    Creates a pointer type of a particular kind that has a type as element.

    Declaration
    public static PointerType MakePointerType(this IType type, PointerKind kind)
    Parameters
    Type Name Description
    IType type

    The type of values referred to by the pointer type.

    PointerKind kind

    The kind of the pointer type.

    Returns
    Type Description
    PointerType

    A pointer type.

    | Improve this Doc View Source

    MakeRecursiveGenericType(IType, IReadOnlyList<IType>)

    Turns a recursive generic declaration into a recursive generic instance with a particular list of recursive generic arguments.

    Declaration
    public static IType MakeRecursiveGenericType(this IType type, IReadOnlyList<IType> recursiveGenericArguments)
    Parameters
    Type Name Description
    IType type

    The type to recursively instantiate.

    System.Collections.Generic.IReadOnlyList<IType> recursiveGenericArguments

    A list of recursive generic arguments for the type.

    Returns
    Type Description
    IType

    A recursive generic instance type.

    • Improve this Doc
    • View Source
    Back to top Generated by DocFX