File tree Expand file tree Collapse file tree 1 file changed +8
-6
lines changed
java/ql/lib/semmle/code/java/controlflow Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -111,11 +111,14 @@ private PatternCase getClosestPrecedingPatternCase(SwitchCase case) {
111
111
* test or guard failing and proceeding to then consider subsequent cases.
112
112
*/
113
113
private predicate isNonFallThroughPredecessor ( SwitchCase sc , ControlFlowNode pred ) {
114
- pred .( Expr ) .getParent * ( ) = sc .getSelectorExpr ( )
115
- or
116
- pred .( Expr ) .getParent * ( ) = getClosestPrecedingPatternCase ( sc ) .getGuard ( )
117
- or
118
- pred = getClosestPrecedingPatternCase ( sc )
114
+ pred = sc .getControlFlowNode ( ) .getAPredecessor ( ) and
115
+ (
116
+ pred .( Expr ) .getParent * ( ) = sc .getSelectorExpr ( )
117
+ or
118
+ pred .( Expr ) .getParent * ( ) = getClosestPrecedingPatternCase ( sc ) .getGuard ( )
119
+ or
120
+ pred = getClosestPrecedingPatternCase ( sc )
121
+ )
119
122
}
120
123
121
124
/**
@@ -230,7 +233,6 @@ class Guard extends ExprParent {
230
233
not sc instanceof PatternCase and
231
234
branch = true and
232
235
bb2 .getFirstNode ( ) = sc .getControlFlowNode ( ) and
233
- pred = sc .getControlFlowNode ( ) .getAPredecessor ( ) and
234
236
isNonFallThroughPredecessor ( sc , pred ) and
235
237
bb1 = pred .getBasicBlock ( )
236
238
)
You can’t perform that action at this time.
0 commit comments