CodeQL library for Swift
codeql/swift-all 2.0.4-dev (changelog, source)
Search

Module MakeImplCommon::CallContextSensitivity::PrunedViableImpl

This module is only parameterized so that we can refer to cached versions of the input predicates in CachedCallContextSensitivity.

Import path

import codeql.dataflow.internal.DataFlowImplCommon

Predicates

ccNone
ccSomeCall
getCallContextReturn

Gets the call context when returning from c to call.

instanceofCc
instanceofCcCall
instanceofCcNoCall
matchesCall
recordDataFlowCallSite

Holds if the call context call either improves virtual dispatch in callable or if it allows us to prune unreachable nodes in callable.

resolveCall

Resolves a call from call in cc to result, where result is restricted by relevantResolveTarget.

resolveReturn

Resolves a return from callable in cc to call.

viableImplCallContextReduced

Gets a viable run-time dispatch target for the call call in the context ctx. This is restricted to those calls for which a context makes a difference.

viableImplCallContextReducedReverse

Gets a viable call site for the return from callable in call context ctx. This is restricted to those callables and contexts for which the possible call sites are restricted.

viableImplNotCallContextReduced

Holds if call does not have a reduced set of dispatch targets in call context ctx.

viableImplNotCallContextReducedReverse

Holds if a return does not have a reduced set of viable call sites to return to in call context ctx.

Modules

Parameters