@@ -159,42 +159,44 @@ private predicate stringConstCaseCompare(
159
159
branch = true and
160
160
exists ( CfgNodes:: ExprNodes:: CaseExprCfgNode case |
161
161
case .getValue ( ) = testedNode and
162
- exists ( CfgNodes:: ExprNodes:: WhenClauseCfgNode branchNode |
163
- branchNode = case .getBranch ( _) and
164
- guard = branchNode .getPattern ( _) and
165
- // For simplicity, consider patterns that contain only string literals or arrays of string literals
166
- forall ( ExprCfgNode pattern | pattern = branchNode .getPattern ( _) |
167
- // when "foo"
168
- // when "foo", "bar"
169
- pattern instanceof ExprNodes:: StringLiteralCfgNode
170
- or
171
- exists ( CfgNodes:: ExprNodes:: SplatExprCfgNode splat | splat = pattern |
172
- // when *["foo", "bar"]
173
- forex ( ExprCfgNode elem |
174
- elem = splat .getOperand ( ) .( ExprNodes:: ArrayLiteralCfgNode ) .getAnArgument ( )
175
- |
176
- elem instanceof ExprNodes:: StringLiteralCfgNode
177
- )
162
+ (
163
+ exists ( CfgNodes:: ExprNodes:: WhenClauseCfgNode branchNode |
164
+ branchNode = case .getBranch ( _) and
165
+ guard = branchNode .getPattern ( _) and
166
+ // For simplicity, consider patterns that contain only string literals or arrays of string literals
167
+ forall ( ExprCfgNode pattern | pattern = branchNode .getPattern ( _) |
168
+ // when "foo"
169
+ // when "foo", "bar"
170
+ pattern instanceof ExprNodes:: StringLiteralCfgNode
178
171
or
179
- // when *some_var
180
- // when *SOME_CONST
181
- exists ( ExprNodes :: ArrayLiteralCfgNode arr |
182
- isArrayConstant ( splat .getOperand ( ) , arr ) and
183
- forall ( ExprCfgNode elem | elem = arr . getAnArgument ( ) |
172
+ exists ( CfgNodes :: ExprNodes :: SplatExprCfgNode splat | splat = pattern |
173
+ // when *["foo", "bar"]
174
+ forex ( ExprCfgNode elem |
175
+ elem = splat .getOperand ( ) . ( ExprNodes :: ArrayLiteralCfgNode ) . getAnArgument ( )
176
+ |
184
177
elem instanceof ExprNodes:: StringLiteralCfgNode
185
178
)
179
+ or
180
+ // when *some_var
181
+ // when *SOME_CONST
182
+ exists ( ExprNodes:: ArrayLiteralCfgNode arr |
183
+ isArrayConstant ( splat .getOperand ( ) , arr ) and
184
+ forall ( ExprCfgNode elem | elem = arr .getAnArgument ( ) |
185
+ elem instanceof ExprNodes:: StringLiteralCfgNode
186
+ )
187
+ )
186
188
)
187
189
)
188
190
)
189
- )
190
- or
191
- // in "foo"
192
- exists (
193
- CfgNodes :: ExprNodes :: InClauseCfgNode branchNode , ExprNodes :: StringLiteralCfgNode pattern
194
- |
195
- branchNode = case . getBranch ( _ ) and
196
- pattern = branchNode . getPattern ( ) and
197
- guard = pattern
191
+ or
192
+ // in "foo"
193
+ exists (
194
+ CfgNodes :: ExprNodes :: InClauseCfgNode branchNode , ExprNodes :: StringLiteralCfgNode pattern
195
+ |
196
+ branchNode = case . getBranch ( _ ) and
197
+ pattern = branchNode . getPattern ( ) and
198
+ guard = pattern
199
+ )
198
200
)
199
201
)
200
202
}
0 commit comments