CodeQL library for Go
codeql/go-all 1.1.2-dev (changelog, source)
Search

Class ControlFlow::ConditionGuardNode

A control-flow node recording the fact that a certain expression has a known Boolean value at this point in the program.

Import path

import semmle.go.controlflow.ControlFlowGraph

Direct supertypes

Indirect supertypes

Fields

Predicates

dominates

Holds if this guard dominates basic block bb, that is, the guard is known to hold at bb.

ensures

Holds if this guard ensures that the result of nd is b.

ensuresEq

Holds if this guard ensures that i = j holds.

ensuresLeq

Holds if this guard ensures that lesser <= greater + bias holds.

ensuresNeq

Holds if this guard ensures that i != j holds.

getCondition

Gets the condition whose outcome the guard concerns.

getRoot

Gets the innermost function or file to which this node belongs.

hasLocationInfo

Holds if this element is at the specified location. The location spans column startcolumn of line startline to column endcolumn of line endline in file filepath. For more information, see Locations.

toString

Gets a textual representation of this control flow node.

Inherited predicates

dominatesNode

Holds if this node dominates dominee in the control-flow graph.

from Node
getAPredecessor

Gets a node that directly precedes this one in the control-flow graph.

from Node
getASuccessor

Gets a node that directly follows this one in the control-flow graph.

from Node
getBasicBlock

Gets the basic block to which this node belongs.

from Node
getBoolValue

Gets the Boolean value of the result of this instruction, if it can be determined.

from Instruction
getExactValue

Gets the string representation of the exact value of the result of this instruction, if any.

from Instruction
getFile

Gets the file to which this node belongs.

from Node
getFloatValue

Gets the float value of the result of this instruction, if it can be determined.

from Instruction
getInsnKind

Gets a textual representation of the kind of this instruction.

from Instruction
getIntValue

Gets the int value of the result of this instruction, if it can be determined.

from Instruction
getNumericValue

Gets either getFloatValue or getIntValue

from Instruction
getResultType

Gets the type of the result of this instruction, if any.

from Instruction
getStringValue

Gets the string value of the result of this instruction, if it can be determined.

from Instruction
hasComplexValue

Holds if the complex value of the result of this instruction has real part real and imaginary part imag.

from Instruction
isBranch

Holds if this is a node with more than one successor.

from Node
isConst

Holds if the result of this instruction is known at compile time.

from Instruction
isEntryNode

Holds if this node is the (unique) entry node of a function or file.

from Node
isExitNode

Holds if this node is the (unique) exit node of a function or file.

from Node
isFirstNodeOf

Holds if this is the first control-flow node in subtree.

from Node
isJoin

Holds if this is a node with more than one predecessor.

from Node
isPlatformIndependentConstant

Holds if the result of this instruction is known at compile time, and is guaranteed not to depend on the platform where it is evaluated.

from Instruction
reads

Holds if this instruction reads the value of variable or constant v.

from Instruction
readsElement

Holds if this instruction reads the value of element index on the value of base.

from Instruction
readsField

Holds if this instruction reads the value of field f on the value of base.

from Instruction
readsMethod

Holds if this instruction looks up method m on the value of receiver.

from Instruction
writes

Holds if this instruction updates variable or constant v to the value of rhs.

from Instruction
writesElement

Holds if this instruction updates the value of element index on the value of base.

from Instruction
writesField

Holds if this instruction updates the value of field f on the value of base.

from Instruction

Charpred