Skip to content

Commit 3e5ed9e

Browse files
committed
Actions: Use shared SuccessorType.
1 parent 86d1078 commit 3e5ed9e

File tree

1 file changed

+4
-30
lines changed
  • actions/ql/lib/codeql/actions/controlflow/internal

1 file changed

+4
-30
lines changed

actions/ql/lib/codeql/actions/controlflow/internal/Cfg.qll

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ private import codeql.controlflow.Cfg as CfgShared
33
private import codeql.Locations
44

55
module Completion {
6+
import codeql.controlflow.SuccessorType
7+
68
private newtype TCompletion =
79
TSimpleCompletion() or
810
TBooleanCompletion(boolean b) { b in [false, true] } or
@@ -25,7 +27,7 @@ module Completion {
2527

2628
override predicate isValidFor(AstNode e) { not any(Completion c).isValidForSpecific(e) }
2729

28-
override NormalSuccessor getAMatchingSuccessorType() { any() }
30+
override DirectSuccessor getAMatchingSuccessorType() { any() }
2931
}
3032

3133
class BooleanCompletion extends NormalCompletion, TBooleanCompletion {
@@ -49,34 +51,6 @@ module Completion {
4951

5052
override ReturnSuccessor getAMatchingSuccessorType() { any() }
5153
}
52-
53-
cached
54-
private newtype TSuccessorType =
55-
TNormalSuccessor() or
56-
TBooleanSuccessor(boolean b) { b in [false, true] } or
57-
TReturnSuccessor()
58-
59-
class SuccessorType extends TSuccessorType {
60-
string toString() { none() }
61-
}
62-
63-
class NormalSuccessor extends SuccessorType, TNormalSuccessor {
64-
override string toString() { result = "successor" }
65-
}
66-
67-
class BooleanSuccessor extends SuccessorType, TBooleanSuccessor {
68-
boolean value;
69-
70-
BooleanSuccessor() { this = TBooleanSuccessor(value) }
71-
72-
override string toString() { result = value.toString() }
73-
74-
boolean getValue() { result = value }
75-
}
76-
77-
class ReturnSuccessor extends SuccessorType, TReturnSuccessor {
78-
override string toString() { result = "return" }
79-
}
8054
}
8155

8256
module CfgScope {
@@ -127,7 +101,7 @@ private module Implementation implements CfgShared::InputSig<Location> {
127101
last(scope.(CompositeAction), e, c)
128102
}
129103

130-
predicate successorTypeIsSimple(SuccessorType t) { t instanceof NormalSuccessor }
104+
predicate successorTypeIsSimple(SuccessorType t) { t instanceof DirectSuccessor }
131105

132106
predicate successorTypeIsCondition(SuccessorType t) { t instanceof BooleanSuccessor }
133107

0 commit comments

Comments
 (0)