CodeQL library for C#
codeql/csharp-all 4.0.1-dev (changelog, source)
Search

Class MakeImplCommon::CallContextSensitivity::PrunedViableImpl::Cc

A call context to restrict the targets of virtual dispatch and prune local flow.

There are four cases:

  • TAnyCallContext() : No restrictions on method flow.
  • TSpecificCall(CallSet calls, DispatchSet tgts, UnreachableSetOption unreachable) : Flow entered through a specific call that improves the set of viable dispatch targets for all of calls to the set of dispatch targets in tgts, and/or the specific call prunes unreachable nodes in the current callable as given by unreachable.
  • 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 codeql.dataflow.internal.DataFlowImplCommon

Direct supertypes

Predicates