mirror of
https://github.com/github/codeql.git
synced 2026-04-17 21:14:02 +02:00
26 lines
770 B
Plaintext
26 lines
770 B
Plaintext
import csharp
|
|
import ControlFlow
|
|
import Common
|
|
import Internal
|
|
import Nodes
|
|
|
|
query predicate booleanNode(ElementNode e, BooleanSplit split) { split = e.getASplit() }
|
|
|
|
class MyFinallySplitControlFlowNode extends ElementNode {
|
|
MyFinallySplitControlFlowNode() {
|
|
exists(FinallySplitting::FinallySplitType type |
|
|
type = this.getASplit().(FinallySplit).getType()
|
|
|
|
|
not type instanceof SuccessorTypes::NormalSuccessor
|
|
)
|
|
}
|
|
|
|
TryStmt getTryStmt() { this.getElement() = FinallySplitting::getAFinallyDescendant(result) }
|
|
}
|
|
|
|
query predicate finallyNode(MyFinallySplitControlFlowNode f, TryStmt try) { try = f.getTryStmt() }
|
|
|
|
query predicate entryPoint(Callable c, SourceControlFlowElement cfn) {
|
|
c.getEntryPoint().getASuccessor().getElement() = cfn
|
|
}
|