@@ -3,6 +3,8 @@ private import codeql.controlflow.Cfg as CfgShared
33private import codeql.Locations
44
55module 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
8256module 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