CodeQL library for Swift
codeql/swift-all 6.2.1-dev (changelog, source)
Search

Class Impl::ParameterizedProtocolType

A sugar type of the form P<X> with P a protocol.

If P has primary associated type A, then T: P<X> is a shortcut for T: P where T.A == X.

Import path

import codeql.swift.elements.type.internal.ParameterizedProtocolTypeImpl

Direct supertypes

Indirect supertypes

Inherited predicates

getABaseType

Gets any base type of this type. Expands protocols added in extensions and expands type aliases. For example in the following code, B has base type A:

from Type
getADerivedType

Gets a type derived from this type. Expands type aliases, for example in the following code, B derives from type A.

from Type
getAPrimaryQlClass

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

from ParameterizedProtocolType
getAnArg

Gets any of the arguments of this parameterized protocol type.

from ParameterizedProtocolType
getArg

Gets the indexth argument of this parameterized protocol type (0-based).

from ParameterizedProtocolType
getBase

Gets the base of this parameterized protocol type.

from ParameterizedProtocolType
getCanonicalType

Gets the canonical type of this type.

from Type
getFullName

Gets the full name of this Type. For example in: swift struct A { struct B { // ... } } The name and full name of A is A. The name of B is B, but the full name of B is A.B.

from Type
getFullyUnresolvedfrom Element
getImmediateArg

Gets the indexth argument of this parameterized protocol type (0-based).

from ParameterizedProtocolType
getImmediateBase

Gets the base of this parameterized protocol type.

from ParameterizedProtocolType
getImmediateCanonicalType

Gets the canonical type of this type.

from Type
getName

Gets the name of this type.

from Type
getNumberOfArgs

Gets the number of arguments of this parameterized protocol type.

from ParameterizedProtocolType
getPrimaryQlClasses

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

from Element
getResolveStep

Gets the most immediate element that should substitute this element in the explicit AST, if any. Classes can override this to indicate this node should be in the “hidden” AST, mostly reserved for conversions and syntactic sugar nodes like parentheses.

from Element
getUnderlyingType

Gets this type after any type aliases have been resolved. For example in the following code, the underlying type of MyInt is Int: typealias MyInt = Int

from Type
isUnknown

Holds if this element is unknown.

from Element
resolve

Gets the element that should substitute this element in the explicit AST, applying getResolveStep transitively.

from Element
toString

Gets the string representation of this element.

from Element
toStringImpl

INTERNAL: Do not use.

from Type