File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed
java/ql/lib/semmle/code/java/dataflow/internal Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -194,12 +194,14 @@ predicate simpleAstFlowStep(Expr e1, Expr e2) {
194
194
// In the following three cases only record patterns need this flow edge, leading from the bound instanceof
195
195
// or switch tested expression to a record pattern that will read its fields. Simple binding patterns are
196
196
// handled via VariableAssign.getSource instead.
197
+ // We only consider unique patterns because cases that declare multiple patterns are not allowed to declare
198
+ // any identifiers, so can't participate in dataflow.
197
199
exists ( SwitchExpr se |
198
- e1 = se .getExpr ( ) and e2 = se .getACase ( ) .( PatternCase ) .getPattern ( ) .asRecordPattern ( )
200
+ e1 = se .getExpr ( ) and e2 = se .getACase ( ) .( PatternCase ) .getUniquePattern ( ) .asRecordPattern ( )
199
201
)
200
202
or
201
203
exists ( SwitchStmt ss |
202
- e1 = ss .getExpr ( ) and e2 = ss .getACase ( ) .( PatternCase ) .getPattern ( ) .asRecordPattern ( )
204
+ e1 = ss .getExpr ( ) and e2 = ss .getACase ( ) .( PatternCase ) .getUniquePattern ( ) .asRecordPattern ( )
203
205
)
204
206
or
205
207
exists ( InstanceOfExpr ioe | e1 = ioe .getExpr ( ) and e2 = ioe .getPattern ( ) .asRecordPattern ( ) )
You can’t perform that action at this time.
0 commit comments