An instruction corresponding to the implicit declaration of the variable
lv
in case clause cc
and its assignment of the value switchExpr
from
the guard. This only occurs in case clauses in a type switch statement
which declares a variable in its guard.
For example, consider this type switch statement:
switch y := x.(type) {
case Type1:
f(y)
...
}
The y
inside the case clause is actually a local variable with type
Type1
that is implicitly declared at the top of the case clause. In
default clauses and case clauses which list more than one type, the type
of the implicitly declared variable is the type of switchExpr
.
Import path
import semmle.go.controlflow.IR
Direct supertypes
Indirect supertypes
Fields
Predicates
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 |
toString | Gets a textual representation of this control flow node. |
writes | Holds if this instruction updates variable or constant |
Inherited predicates
dominatesNode | Holds if this node dominates | 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 | 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 | 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 | 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 | from Instruction |
readsElement | Holds if this instruction reads the value of element | from Instruction |
readsField | Holds if this instruction reads the value of field | from Instruction |
readsMethod | Holds if this instruction looks up method | from Instruction |
writesElement | Holds if this instruction updates the value of element | from Instruction |
writesField | Holds if this instruction updates the value of field | from Instruction |