Files
codeql/python/ql/test/library-tests/state_tracking/Lib.qll
2018-11-19 15:15:54 +00:00

32 lines
616 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")
}
}