@@ -3,6 +3,8 @@ private import codeql.controlflow.Cfg as CfgShared
3
3
private import codeql.Locations
4
4
5
5
module Completion {
6
+ import codeql.controlflow.SuccessorType
7
+
6
8
private newtype TCompletion =
7
9
TSimpleCompletion ( ) or
8
10
TBooleanCompletion ( boolean b ) { b in [ false , true ] } or
@@ -25,7 +27,7 @@ module Completion {
25
27
26
28
override predicate isValidFor ( AstNode e ) { not any ( Completion c ) .isValidForSpecific ( e ) }
27
29
28
- override NormalSuccessor getAMatchingSuccessorType ( ) { any ( ) }
30
+ override DirectSuccessor getAMatchingSuccessorType ( ) { any ( ) }
29
31
}
30
32
31
33
class BooleanCompletion extends NormalCompletion , TBooleanCompletion {
@@ -49,34 +51,6 @@ module Completion {
49
51
50
52
override ReturnSuccessor getAMatchingSuccessorType ( ) { any ( ) }
51
53
}
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
- }
80
54
}
81
55
82
56
module CfgScope {
@@ -127,7 +101,7 @@ private module Implementation implements CfgShared::InputSig<Location> {
127
101
last ( scope .( CompositeAction ) , e , c )
128
102
}
129
103
130
- predicate successorTypeIsSimple ( SuccessorType t ) { t instanceof NormalSuccessor }
104
+ predicate successorTypeIsSimple ( SuccessorType t ) { t instanceof DirectSuccessor }
131
105
132
106
predicate successorTypeIsCondition ( SuccessorType t ) { t instanceof BooleanSuccessor }
133
107
0 commit comments