Files
codeql/csharp/ql/consistency-queries/VariableCaptureConsistency.ql
2024-02-26 09:53:30 +01:00

18 lines
784 B
Plaintext

import csharp
import semmle.code.csharp.dataflow.internal.DataFlowPrivate::VariableCapture::Flow::ConsistencyChecks
private import semmle.code.csharp.dataflow.internal.DataFlowPrivate::VariableCapture::Flow::ConsistencyChecks as ConsistencyChecks
private import semmle.code.csharp.controlflow.BasicBlocks
private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl
query predicate uniqueEnclosingCallable(BasicBlock bb, string msg) {
ConsistencyChecks::uniqueEnclosingCallable(bb, msg) and
getNodeCfgScope(bb.getFirstNode()) instanceof Callable
}
query predicate consistencyOverview(string msg, int n) { none() }
query predicate uniqueCallableLocation(Callable c, string msg) {
ConsistencyChecks::uniqueCallableLocation(c, msg) and
count(c.getBody()) = 1
}