CodeQL library for Rust
codeql/rust-all 0.2.5-dev (changelog, source)
Search

Class Impl::Variant

A variant in an enum declaration.

For example:

enum E { A, B(i32), C { x: i32 } }
//       ^  ^^^^^^  ^^^^^^^^^^^^

Import path

import codeql.rust.elements.internal.VariantImpl

Direct supertypes

Indirect supertypes

Predicates

getEnum

Gets the enum that this variant belongs to.

getNumberOfFields

Gets the number of fields of this variant.

getStructField

Gets the record field named name, if any.

getTupleField

Gets the ith tuple field, if any.

isStruct

Holds if this variant uses struct fields.

isTuple

Holds if this variant uses tuple fields.

isUnit

Holds if this variant does not have a field list.

toStringImpl

INTERNAL: Do not use.

Inherited predicates

fromSource

Holds if this element is from source code.

from Locatable
getACfgNode

Gets a control flow node for this AST node, if any.

from AstNode
getAPrimaryQlClass

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

from Variant
getAnAttr

Gets any of the attrs of this variant.

from Variant
getAttr

Gets the indexth attr of this variant (0-based).

from Variant
getCanonicalPath

Gets the canonical path of this item, if any.

from Addressable
getCanonicalPath

Gets the canonical path of this item, if any.

from Addressable
getDiscriminant

Gets the discriminant of this variant, if it exists.

from Variant
getEnclosingBlock

Gets the block that encloses this node, if any.

from AstNode
getEnclosingCallable

Gets the immediately enclosing callable of this node, if any.

from AstNode
getEnclosingCfgScope

Gets the CFG scope that encloses this node, if any.

from AstNode
getFieldList

Gets the field list of this variant, if it exists.

from Variant
getFile

Gets the primary file where this element occurs.

from Locatable
getLocationfrom Locatable
getName

Gets the name of this variant, if it exists.

from Variant
getNumberOfAttrs

Gets the number of attrs of this variant.

from Variant
getParentNode

Gets the nearest enclosing parent of this node, which is also an AstNode, if any.

from AstNode
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
getVisibility

Gets the visibility of this variant, if it exists.

from Variant
hasCanonicalPath

Holds if this item has a canonical path.

from Addressable
hasDiscriminant

Holds if getDiscriminant() exists.

from Variant
hasEnclosingCfgScope

Holds if this node is inside a CFG scope.

from AstNode
hasFieldList

Holds if getFieldList() exists.

from Variant
hasName

Holds if getName() exists.

from Variant
hasVisibility

Holds if getVisibility() exists.

from Variant
isFromMacroExpansion

Holds if this node exists only as the result of a macro expansion.

from AstNode
isInMacroExpansion

Holds if this node is inside a macro expansion.

from AstNode
isUnknownfrom Element
resolve

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

from Element
toAbbreviatedString

INTERNAL: Do not use.

from Element
toString

Gets the string representation of this element.

from Element