CodeQL library for Java
codeql/java-all 0.3.2 (changelog, source)
Search

Class CallContext

A call context to restrict the targets of virtual dispatch, prune local flow, and match the call sites of flow into a method with flow out of a method.

There are four cases:

  • TAnyCallContext() : No restrictions on method flow.
  • TSpecificCall(DataFlowCall call) : Flow entered through the given call. This call improves the set of viable dispatch targets for at least one method call in the current callable or helps prune unreachable nodes in the current callable.
  • TSomeCall() : Flow entered through a parameter. The originating call does not improve the set of dispatch targets for any method call in the current callable and was therefore not recorded.
  • TReturn(Callable c, DataFlowCall call) : Flow reached call from c and this dispatch target of call implies a reduced set of dispatch origins to which data may flow if it should reach a return statement.

Import path

import semmle.code.java.dataflow.internal.DataFlowImplCommon

Direct supertypes

Known direct subtypes

    Predicates

    relevantFor

    Holds if this call context is relevant for callable.

    toString