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

Class Impl::RefExpr

A reference expression. For example:

    let ref_const = &foo;
    let ref_mut = &mut foo;
    let raw_const: &mut i32 = &raw const foo;
    let raw_mut: &mut i32 = &raw mut foo;

Import path

import codeql.rust.elements.internal.RefExprImpl

Direct supertypes

Indirect supertypes

Predicates

getOperand

Gets the nth operand of this operation, if any.

getOperatorName

Gets the operator name of this operation, if it exists.

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 RefExpr
getASyntacticArgument

Gets a syntactic argument of this expression.

from InvocationExpr
getAnAttr

Gets any of the attrs of this reference expression.

from RefExpr
getAnOperand

Gets an operand of this operation.

from Operation
getAttr

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

from RefExpr
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
getExpr

Gets the expression of this reference expression, if it exists.

from RefExpr
getFile

Gets the primary file where this element occurs.

from Locatable
getLocationfrom Locatable
getNumberOfAttrs

Gets the number of attrs of this reference expression.

from RefExpr
getNumberOfOperands

Gets the number of operands of this operation.

from Operation
getNumberOfSyntacticArguments

Gets the number of syntactic arguments of this expression.

from InvocationExpr
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
getResolvedTarget

Gets the resolved target (function or tuple struct/variant), if any.

from InvocationExpr
getSyntacticArgument

Gets the argument at syntactic position pos of this expression.

from InvocationExpr
getSyntacticPositionalArgument

Gets the ith syntactical argument of this expression.

from Operation
getSyntacticReceiver

Gets the syntactic receiver of this expression, if any.

from InvocationExpr
hasEnclosingCfgScope

Holds if this node is inside a CFG scope.

from AstNode
hasExpr

Holds if getExpr() exists.

from RefExpr
isConst

Holds if this reference expression is const.

from RefExpr
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
isMut

Holds if this reference expression is mut.

from RefExpr
isOverloaded

Holds if this operation is overloaded to the method methodName of the trait trait.

from Operation
isRaw

Holds if this reference expression is raw.

from RefExpr
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