File tree Expand file tree Collapse file tree 2 files changed +2
-40
lines changed
ruby/ql/lib/codeql/ruby/controlflow Expand file tree Collapse file tree 2 files changed +2
-40
lines changed Original file line number Diff line number Diff line change @@ -73,16 +73,14 @@ module SuccessorTypes {
73
73
}
74
74
75
75
/**
76
- * A conditional control flow successor. Either a Boolean successor (`BooleanSuccessor`),
77
- * an emptiness successor (`EmptinessSuccessor`), or a matching successor
78
- * (`MatchingSuccessor`)
76
+ * A conditional control flow successor. Either a Boolean successor (`BooleanSuccessor`)
77
+ * or a matching successor (`MatchingSuccessor`)
79
78
*/
80
79
class ConditionalSuccessor extends SuccessorType {
81
80
boolean value ;
82
81
83
82
ConditionalSuccessor ( ) {
84
83
this = CfgImpl:: TBooleanSuccessor ( value ) or
85
- this = CfgImpl:: TEmptinessSuccessor ( value ) or
86
84
this = CfgImpl:: TMatchingSuccessor ( value )
87
85
}
88
86
@@ -109,41 +107,6 @@ module SuccessorTypes {
109
107
*/
110
108
class BooleanSuccessor extends ConditionalSuccessor , CfgImpl:: TBooleanSuccessor { }
111
109
112
- /**
113
- * An emptiness control flow successor.
114
- *
115
- * For example, this program fragment:
116
- *
117
- * ```rb
118
- * for arg in args do
119
- * puts arg
120
- * end
121
- * puts "done";
122
- * ```
123
- *
124
- * has a control flow graph containing emptiness successors:
125
- *
126
- * ```
127
- * args
128
- * |
129
- * for------<-----
130
- * / \ \
131
- * / \ |
132
- * / \ |
133
- * / \ |
134
- * empty non-empty |
135
- * | \ |
136
- * puts "done" \ |
137
- * arg |
138
- * | |
139
- * puts arg |
140
- * \___/
141
- * ```
142
- */
143
- class EmptinessSuccessor extends ConditionalSuccessor , CfgImpl:: TEmptinessSuccessor {
144
- override string toString ( ) { if value = true then result = "empty" else result = "non-empty" }
145
- }
146
-
147
110
/**
148
111
* A matching control flow successor.
149
112
*
Original file line number Diff line number Diff line change @@ -1513,7 +1513,6 @@ private module Cached {
1513
1513
newtype TSuccessorType =
1514
1514
TSuccessorSuccessor ( ) or
1515
1515
TBooleanSuccessor ( boolean b ) { b in [ false , true ] } or
1516
- TEmptinessSuccessor ( boolean isEmpty ) { isEmpty in [ false , true ] } or
1517
1516
TMatchingSuccessor ( boolean isMatch ) { isMatch in [ false , true ] } or
1518
1517
TReturnSuccessor ( ) or
1519
1518
TBreakSuccessor ( ) or
You can’t perform that action at this time.
0 commit comments