CodeQL library for C#
codeql/csharp-all 0.9.0 (changelog, source)
Search

Class Unification::ConstrainedTypeParameter

A type parameter that is constrained.

Import path

import semmle.code.csharp.Unification

Direct supertypes

Indirect supertypes

Known direct subtypes

    Fields

    Predicates

    subsumes

    Holds if this type parameter subsumes type t

    unifiable

    Holds if this type parameter is unifiable with type t.

    Inherited predicates

    compiledFromSource

    Holds if this element was compiled from source code that is also present in the database. That is, this element corresponds to another element from source.

    from NamedElement
    containsTypeParameters

    Holds if this type contains one or more type parameters.

    from Type
    fromLibrary

    Holds if this element is from an assembly.

    from Element
    fromSource

    Holds if this element is from source code.

    from Element
    getAChild

    Gets a child of this element, if any.

    from Type
    getALocation

    Gets a location of this element, including sources and assemblies.

    from Type
    getAModifier

    Gets a modifier of this declaration.

    from Modifiable
    getAPrimaryQlClass

    Gets the name of a primary CodeQL class to which this element belongs.

    from TypeParameter
    getASuppliedType

    Gets a type that was supplied for this parameter.

    from TypeParameter
    getAnAccess

    Gets an access to this member.

    from Member
    getAnUltimatelySuppliedType

    Gets a non-type-parameter type that was transitively supplied for this parameter.

    from TypeParameter
    getChild

    Gets the ith child of this element (zero-based).

    from Type
    getConstraints

    Gets the constraints on this type parameter, if any.

    from TypeParameter
    getDeclaringGeneric

    Gets the generic type or method declaring this type parameter.

    from TypeParameter
    getDeclaringType

    Gets the type containing this declaration, if any.

    from Declaration
    getFile

    Gets the file containing this element.

    from Element
    getFullyQualifiedName

    Gets the fully qualified name of this element, for example the fully qualified name of M on line 3 is N.C.M in

    from NamedElement
    getFullyQualifiedNameWithTypes

    Gets the fully qualified name of this declaration, including types, for example the fully qualified name with types of M on line 3 is N.C.M(int, string) in

    from Declaration
    getGeneric

    Gets the generic that defines this type parameter.

    from TypeParameter
    getIndex

    Gets the index of this type parameter. For example the index of U in Func<T,U> is 1.

    from TypeParameter
    getLabel

    Gets a unique string label for this element.

    from TypeParameter
    getLanguage

    Gets the “language” of this program element, as defined by the extension of the filename. For example, C# has language “cs”, and Visual Basic has language “vb”.

    from Element
    getLocation

    Gets the location of this element. Where an element has locations in source and assemblies, choose the source location. If there are multiple assembly locations, choose only one.

    from Element
    getName

    Gets the name of this element.

    from Type
    getNumberOfChildren

    Gets the number of children of this element.

    from Element
    getParent

    Gets the parent of this element, if any.

    from Element
    getPrimaryQlClasses

    Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs.

    from Element
    getQualifiedName

    Gets the fully qualified name of this element, for example the fully qualified name of M on line 3 is N.C.M in

    from NamedElement
    getQualifiedNameWithTypes

    DEPRECATED: Use getFullyQualifiedNameWithTypes instead.

    from Declaration
    getUnboundDeclaration

    Gets the unbound version of this declaration, that is, the declaration where all type arguments have been removed. For example, in

    from Type
    getUndecoratedName

    Gets the name of this type without additional syntax such as [] or *.

    from TypeParameter
    hasFullyQualifiedName

    Holds if this element has the fully qualified name qualifier.name.

    from Declaration
    hasFullyQualifiedName

    Holds if this member has name name and is defined in type type with namespace namespace.

    from Member
    hasModifier

    Holds if this declaration has name as a modifier.

    from Modifiable
    hasName

    Holds if this element has name ‘name’.

    from NamedElement
    hasQualifiedName

    DEPRECATED: Use hasFullyQualifiedName instead.

    from Declaration
    hasQualifiedName

    DEPRECATED: Use hasFullyQualifiedName instead.

    from Member
    hasUndecoratedName

    Holds if this element has undecorated name ‘name’.

    from Declaration
    isAbstract

    Holds if this declaration is abstract.

    from Modifiable
    isAsync

    Holds if this declaration is async.

    from Modifiable
    isCompilerGenerated

    Holds if this declaration has been generated by the compiler, for example implicit constructors or accessors.

    from Declaration
    isConst

    Holds if this declaration is const.

    from Modifiable
    isEffectivelyInternal

    Holds if this declaration is effectively internal. A declaration is considered effectively internal if it can only be referenced from the declaring assembly.

    from Modifiable
    isEffectivelyPrivate

    Holds if this declaration is effectively private. A declaration is considered effectively private if it can only be referenced from - the declaring and its nested types, similarly to private declarations, and - the enclosing types.

    from Modifiable
    isEffectivelyPublic

    Holds if this declaration is effectively public, meaning that it can be referenced outside the declaring assembly.

    from Modifiable
    isExtern

    Holds if this declaration is extern.

    from Modifiable
    isFile

    Holds if this declaration is file local.

    from Modifiable
    isImplicitlyConvertibleTo

    Holds if this type is implicitly convertible to that type.

    from Type
    isIn

    Holds if this type parameter is contravariant.

    from TypeParameter
    isInternal

    Holds if this declaration is internal.

    from Modifiable
    isNew

    Holds if this declaration has the modifier new.

    from Modifiable
    isOut

    Holds if this type parameter is covariant.

    from TypeParameter
    isPartial

    Holds if this declaration is partial.

    from Modifiable
    isPrivate

    Holds if this declaration is private.

    from Modifiable
    isProtected

    Holds if this declaration is protected.

    from Modifiable
    isPublic

    Holds if this declaration is public.

    from Modifiable
    isRefType

    Holds if this type is a reference type, or a type parameter that is a reference type.

    from TypeParameter
    isRequired

    Holds if this declaration has the modifier required.

    from Modifiable
    isSealed

    Holds if this declaration is sealed.

    from Modifiable
    isSourceDeclaration

    Holds if this declaration is unconstructed and in source code.

    from Declaration
    isStatic

    Holds if this declaration is static.

    from Modifiable
    isUnboundDeclaration

    Holds if this declaration is unbound.

    from Declaration
    isUnsafe

    Holds if this declaration is unsafe.

    from Modifiable
    isValueType

    Holds if this type is a value type, or a type parameter that is a value type.

    from TypeParameter
    matchesHandle

    Holds if other has the same metadata handle in the same assembly.

    from NamedElement
    toString

    Gets a textual representation of this element.

    from Declaration
    toStringWithTypes

    Gets the full textual representation of this element, including type information.

    from Element

    Charpred