CodeQL library for Java/Kotlin
codeql/java-all 0.9.2-dev (changelog, source)
Search

Class Sem::Guard

A guard in the range analysis.

Import path

import semmle.code.java.dataflow.RangeAnalysis

Direct supertypes

Indirect supertypes

Predicates

asExpr

Gets the guard as an expression, if any.

Inherited predicates

appliesTypeTest

Holds if this guard tests whether testedExpr has type testedType.

from Guard
controls

Holds if this guard evaluating to branch directly or indirectly controls the block controlled. That is, the evaluation of controlled is dominated by this guard evaluating to branch.

from Guard
directlyControls

Holds if this guard evaluating to branch directly controls the block controlled. That is, the true- or false-successor of this guard (as given by branch) dominates controlled.

from Guard
getAPrimaryQlClass

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

from Top
getBasicBlock

Gets the basic block containing this guard or the basic block that tests the applicability of this switch case – for a pattern case this is the case statement itself; for a non-pattern case this is the most recent pattern case or the top of the switch block if there is none.

from Guard
getEnclosingCallable

Gets the immediately enclosing callable whose body contains this guard.

from Guard
getEnclosingStmt

Gets the statement containing this guard.

from Guard
getFile

Gets the file associated with this element.

from Top
getLocation

Gets the source location for this element.

from Top
getNumberOfCommentLines

Gets the number of comment lines that this element ranges over.

from Top
getNumberOfLinesOfCode

Gets the number of lines of code that this element ranges over.

from Top
getPrimaryQlClasses

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

from Top
getTotalNumberOfLines

Gets the total number of lines that this element ranges over, including lines of code, comment and whitespace-only lines.

from Top
hasBranchEdge

Holds if the evaluation of this guard to branch corresponds to the edge from bb1 to bb2.

from Guard
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.

from Top
isEquality

Holds if this guard is an equality test between e1 and e2. The test can be either ==, !=, .equals, or a switch case. If the test is negated, that is !=, then polarity is false, otherwise polarity is true.

from Guard
toString

Gets a textual representation of this element.

from Top