Files
codeql/python/ql/test/library-tests/state_tracking/Lib.qll
2020-03-20 16:35:37 +01:00

19 lines
571 B
Plaintext

import python
import semmle.python.dataflow.StateTracking
predicate callTo(CallNode call, string name) { call.getFunction().(NameNode).getId() = name }
class Initialized extends TrackableState {
Initialized() { this = "initialized" }
override predicate startsAt(ControlFlowNode f) { callTo(f, "initialize") }
}
class Frobnicated extends TrackableState {
Frobnicated() { this = "frobnicated" }
override predicate startsAt(ControlFlowNode f) { callTo(f, "frobnicate") }
override predicate endsAt(ControlFlowNode f) { callTo(f, "defrobnicate") }
}