Skip to content

Commit 3178aa1

Browse files
committed
unified: Dont show ExprPattern in path
1 parent 6c71400 commit 3178aa1

2 files changed

Lines changed: 15 additions & 34 deletions

File tree

‎unified/ql/lib/codeql/unified/internal/dataflow/DataFlowInstantiation.qll‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,10 @@ module DataFlowInput implements InputSig<Location> {
153153
// Misc
154154
//
155155
additional predicate nodeIsVisible(Node node) {
156-
node instanceof TValueNode
156+
exists(Expr e |
157+
node = TValueNode(e) and
158+
not e instanceof ExprPattern
159+
)
157160
or
158161
node instanceof TStrictlyIncomingValue
159162
or

‎unified/ql/test/library-tests/dataflow/test.expected‎

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -42,53 +42,45 @@ edges
4242
| enums.swift:7:13:7:35 | ... .case1(...) [case1.0] | enums.swift:7:9:7:9 | e [case1.0] | provenance | |
4343
| enums.swift:7:21:7:34 | source(...) | enums.swift:7:13:7:35 | ... .case1(...) [case1.0] | provenance | |
4444
| enums.swift:9:12:9:12 | e [case1.0] | enums.swift:10:10:10:23 | ... .case1(...) [case1.0] | provenance | |
45-
| enums.swift:10:10:10:23 | ... .case1(...) [case1.0] | enums.swift:10:18:10:22 | ExprPattern | provenance | |
46-
| enums.swift:10:18:10:22 | ExprPattern | enums.swift:10:22:10:22 | x | provenance | |
45+
| enums.swift:10:10:10:23 | ... .case1(...) [case1.0] | enums.swift:10:22:10:22 | x | provenance | |
4746
| enums.swift:10:22:10:22 | x | enums.swift:11:14:11:14 | x | provenance | |
4847
| enums.swift:18:9:18:9 | e [case1.0] | enums.swift:20:12:20:12 | e [case1.0] | provenance | |
4948
| enums.swift:18:13:18:35 | ... .case1(...) [case1.0] | enums.swift:18:9:18:9 | e [case1.0] | provenance | |
5049
| enums.swift:18:21:18:34 | source(...) | enums.swift:18:13:18:35 | ... .case1(...) [case1.0] | provenance | |
5150
| enums.swift:20:12:20:12 | e [case1.0] | enums.swift:21:10:21:22 | ... .case1(...) [case1.0] | provenance | |
52-
| enums.swift:21:10:21:22 | ... .case1(...) [case1.0] | enums.swift:21:17:21:21 | ExprPattern | provenance | |
53-
| enums.swift:21:17:21:21 | ExprPattern | enums.swift:21:21:21:21 | x | provenance | |
51+
| enums.swift:21:10:21:22 | ... .case1(...) [case1.0] | enums.swift:21:21:21:21 | x | provenance | |
5452
| enums.swift:21:21:21:21 | x | enums.swift:22:14:22:14 | x | provenance | |
5553
| enums.swift:35:9:35:9 | e [case2.0] | enums.swift:36:12:36:12 | e [case2.0] | provenance | |
5654
| enums.swift:35:9:35:9 | e [case2.0] | enums.swift:43:12:43:12 | e [case2.0] | provenance | |
5755
| enums.swift:35:13:35:35 | ... .case2(...) [case2.0] | enums.swift:35:9:35:9 | e [case2.0] | provenance | |
5856
| enums.swift:35:21:35:34 | source(...) | enums.swift:35:13:35:35 | ... .case2(...) [case2.0] | provenance | |
5957
| enums.swift:36:12:36:12 | e [case2.0] | enums.swift:39:10:39:23 | ... .case2(...) [case2.0] | provenance | |
60-
| enums.swift:39:10:39:23 | ... .case2(...) [case2.0] | enums.swift:39:18:39:22 | ExprPattern | provenance | |
61-
| enums.swift:39:18:39:22 | ExprPattern | enums.swift:39:22:39:22 | x | provenance | |
58+
| enums.swift:39:10:39:23 | ... .case2(...) [case2.0] | enums.swift:39:22:39:22 | x | provenance | |
6259
| enums.swift:39:22:39:22 | x | enums.swift:40:14:40:14 | x | provenance | |
6360
| enums.swift:43:12:43:12 | e [case2.0] | enums.swift:44:10:44:23 | ... .case2(...) [case2.0] | provenance | |
64-
| enums.swift:44:10:44:23 | ... .case2(...) [case2.0] | enums.swift:44:18:44:22 | ExprPattern | provenance | |
65-
| enums.swift:44:18:44:22 | ExprPattern | enums.swift:44:22:44:22 | x | provenance | |
61+
| enums.swift:44:10:44:23 | ... .case2(...) [case2.0] | enums.swift:44:22:44:22 | x | provenance | |
6662
| enums.swift:44:22:44:22 | x | enums.swift:45:14:45:14 | x | provenance | |
6763
| enums.swift:52:9:52:13 | opt_x [some.0] | enums.swift:53:19:53:23 | opt_x [some.0] | provenance | |
6864
| enums.swift:52:17:52:45 | ... .some(...) [some.0] | enums.swift:52:9:52:13 | opt_x [some.0] | provenance | |
6965
| enums.swift:52:31:52:44 | source(...) | enums.swift:52:17:52:45 | ... .some(...) [some.0] | provenance | |
70-
| enums.swift:53:11:53:15 | ... .some(...) [some.0] | enums.swift:53:11:53:15 | ExprPattern | provenance | |
71-
| enums.swift:53:11:53:15 | ExprPattern | enums.swift:53:15:53:15 | x | provenance | |
66+
| enums.swift:53:11:53:15 | ... .some(...) [some.0] | enums.swift:53:15:53:15 | x | provenance | |
7267
| enums.swift:53:15:53:15 | x | enums.swift:54:10:54:10 | x | provenance | |
7368
| enums.swift:53:19:53:23 | opt_x [some.0] | enums.swift:53:11:53:15 | ... .some(...) [some.0] | provenance | |
7469
| enums.swift:58:9:58:13 | opt_x [some.0] | enums.swift:59:15:59:19 | opt_x [some.0] | provenance | |
7570
| enums.swift:58:17:58:45 | ... .some(...) [some.0] | enums.swift:58:9:58:13 | opt_x [some.0] | provenance | |
7671
| enums.swift:58:31:58:44 | source(...) | enums.swift:58:17:58:45 | ... .some(...) [some.0] | provenance | |
77-
| enums.swift:59:11:59:19 | ... .some(...) [some.0] | enums.swift:59:11:59:19 | ExprPattern | provenance | |
78-
| enums.swift:59:11:59:19 | ExprPattern | enums.swift:59:15:59:19 | opt_x | provenance | |
72+
| enums.swift:59:11:59:19 | ... .some(...) [some.0] | enums.swift:59:15:59:19 | opt_x | provenance | |
7973
| enums.swift:59:15:59:19 | opt_x | enums.swift:60:10:60:14 | opt_x | provenance | |
8074
| enums.swift:59:15:59:19 | opt_x [some.0] | enums.swift:59:11:59:19 | ... .some(...) [some.0] | provenance | |
8175
| enums.swift:68:9:68:9 | e [foo.0] | enums.swift:69:12:69:12 | e [foo.0] | provenance | |
8276
| enums.swift:68:9:68:9 | e [foo.0] | enums.swift:77:12:77:12 | e [foo.0] | provenance | |
8377
| enums.swift:68:13:68:48 | ... .foo(...) [foo.0] | enums.swift:68:9:68:9 | e [foo.0] | provenance | |
8478
| enums.swift:68:34:68:47 | source(...) | enums.swift:68:13:68:48 | ... .foo(...) [foo.0] | provenance | |
8579
| enums.swift:69:12:69:12 | e [foo.0] | enums.swift:70:10:70:20 | ... .foo(...) [foo.0] | provenance | |
86-
| enums.swift:70:10:70:20 | ... .foo(...) [foo.0] | enums.swift:70:15:70:19 | ExprPattern | provenance | |
87-
| enums.swift:70:15:70:19 | ExprPattern | enums.swift:70:19:70:19 | x | provenance | |
80+
| enums.swift:70:10:70:20 | ... .foo(...) [foo.0] | enums.swift:70:19:70:19 | x | provenance | |
8881
| enums.swift:70:19:70:19 | x | enums.swift:71:14:71:14 | x | provenance | |
8982
| enums.swift:77:12:77:12 | e [foo.0] | enums.swift:78:10:78:23 | ... .foo(...) [foo.0] | provenance | |
90-
| enums.swift:78:10:78:23 | ... .foo(...) [foo.0] | enums.swift:78:18:78:22 | ExprPattern | provenance | |
91-
| enums.swift:78:18:78:22 | ExprPattern | enums.swift:78:22:78:22 | x | provenance | |
83+
| enums.swift:78:10:78:23 | ... .foo(...) [foo.0] | enums.swift:78:22:78:22 | x | provenance | |
9284
| enums.swift:78:22:78:22 | x | enums.swift:79:14:79:14 | x | provenance | |
9385
| implicit-self.swift:16:9:16:12 | [post] self [x] | implicit-self.swift:17:14:17:17 | self [x] | provenance | |
9486
| implicit-self.swift:16:9:16:14 | ... .x | implicit-self.swift:16:9:16:12 | [post] self [x] | provenance | |
@@ -244,8 +236,7 @@ edges
244236
| test.swift:192:20:192:52 | throwingIdentity(...) | test.swift:192:15:192:52 | try? ... [some.0] | provenance | |
245237
| test.swift:192:37:192:51 | source(...) | test.swift:182:25:182:25 | s | provenance | |
246238
| test.swift:192:37:192:51 | source(...) | test.swift:192:20:192:52 | throwingIdentity(...) | provenance | |
247-
| test.swift:193:8:193:14 | ... .some(...) [some.0] | test.swift:193:8:193:14 | ExprPattern | provenance | |
248-
| test.swift:193:8:193:14 | ExprPattern | test.swift:193:12:193:14 | opt | provenance | |
239+
| test.swift:193:8:193:14 | ... .some(...) [some.0] | test.swift:193:12:193:14 | opt | provenance | |
249240
| test.swift:193:12:193:14 | opt | test.swift:194:14:194:16 | opt | provenance | |
250241
| test.swift:193:12:193:14 | opt [some.0] | test.swift:193:8:193:14 | ... .some(...) [some.0] | provenance | |
251242
| test.swift:196:15:196:47 | throwingIdentity(...) | test.swift:196:10:196:47 | try! ... | provenance | |
@@ -260,8 +251,7 @@ edges
260251
| test.swift:201:26:201:63 | asyncThrowingIdentity(...) | test.swift:201:20:201:63 | await ... | provenance | |
261252
| test.swift:201:48:201:62 | source(...) | test.swift:184:30:184:30 | s | provenance | |
262253
| test.swift:201:48:201:62 | source(...) | test.swift:201:26:201:63 | asyncThrowingIdentity(...) | provenance | |
263-
| test.swift:202:8:202:14 | ... .some(...) [some.0] | test.swift:202:8:202:14 | ExprPattern | provenance | |
264-
| test.swift:202:8:202:14 | ExprPattern | test.swift:202:12:202:14 | opt | provenance | |
254+
| test.swift:202:8:202:14 | ... .some(...) [some.0] | test.swift:202:12:202:14 | opt | provenance | |
265255
| test.swift:202:12:202:14 | opt | test.swift:203:14:203:16 | opt | provenance | |
266256
| test.swift:202:12:202:14 | opt [some.0] | test.swift:202:8:202:14 | ... .some(...) [some.0] | provenance | |
267257
| test.swift:205:21:205:58 | asyncThrowingIdentity(...) | test.swift:205:10:205:58 | try! ... | provenance | |
@@ -273,8 +263,7 @@ edges
273263
| test.swift:209:13:209:27 | source(...) | test.swift:209:9:209:9 | x | provenance | |
274264
| test.swift:210:10:210:10 | x | test.swift:210:10:210:20 | TypeCastExpr | provenance | |
275265
| test.swift:211:10:211:10 | x | test.swift:211:10:211:21 | TypeCastExpr | provenance | |
276-
| test.swift:212:8:212:12 | ... .some(...) [some.0] | test.swift:212:8:212:12 | ExprPattern | provenance | |
277-
| test.swift:212:8:212:12 | ExprPattern | test.swift:212:12:212:12 | y | provenance | |
266+
| test.swift:212:8:212:12 | ... .some(...) [some.0] | test.swift:212:12:212:12 | y | provenance | |
278267
| test.swift:212:12:212:12 | y | test.swift:213:14:213:14 | y | provenance | |
279268
| test.swift:212:16:212:16 | x | test.swift:212:16:212:27 | TypeCastExpr [some.0] | provenance | |
280269
| test.swift:212:16:212:27 | TypeCastExpr [some.0] | test.swift:212:8:212:12 | ... .some(...) [some.0] | provenance | |
@@ -338,43 +327,37 @@ nodes
338327
| enums.swift:7:21:7:34 | source(...) | semmle.label | source(...) |
339328
| enums.swift:9:12:9:12 | e [case1.0] | semmle.label | e [case1.0] |
340329
| enums.swift:10:10:10:23 | ... .case1(...) [case1.0] | semmle.label | ... .case1(...) [case1.0] |
341-
| enums.swift:10:18:10:22 | ExprPattern | semmle.label | ExprPattern |
342330
| enums.swift:10:22:10:22 | x | semmle.label | x |
343331
| enums.swift:11:14:11:14 | x | semmle.label | x |
344332
| enums.swift:18:9:18:9 | e [case1.0] | semmle.label | e [case1.0] |
345333
| enums.swift:18:13:18:35 | ... .case1(...) [case1.0] | semmle.label | ... .case1(...) [case1.0] |
346334
| enums.swift:18:21:18:34 | source(...) | semmle.label | source(...) |
347335
| enums.swift:20:12:20:12 | e [case1.0] | semmle.label | e [case1.0] |
348336
| enums.swift:21:10:21:22 | ... .case1(...) [case1.0] | semmle.label | ... .case1(...) [case1.0] |
349-
| enums.swift:21:17:21:21 | ExprPattern | semmle.label | ExprPattern |
350337
| enums.swift:21:21:21:21 | x | semmle.label | x |
351338
| enums.swift:22:14:22:14 | x | semmle.label | x |
352339
| enums.swift:35:9:35:9 | e [case2.0] | semmle.label | e [case2.0] |
353340
| enums.swift:35:13:35:35 | ... .case2(...) [case2.0] | semmle.label | ... .case2(...) [case2.0] |
354341
| enums.swift:35:21:35:34 | source(...) | semmle.label | source(...) |
355342
| enums.swift:36:12:36:12 | e [case2.0] | semmle.label | e [case2.0] |
356343
| enums.swift:39:10:39:23 | ... .case2(...) [case2.0] | semmle.label | ... .case2(...) [case2.0] |
357-
| enums.swift:39:18:39:22 | ExprPattern | semmle.label | ExprPattern |
358344
| enums.swift:39:22:39:22 | x | semmle.label | x |
359345
| enums.swift:40:14:40:14 | x | semmle.label | x |
360346
| enums.swift:43:12:43:12 | e [case2.0] | semmle.label | e [case2.0] |
361347
| enums.swift:44:10:44:23 | ... .case2(...) [case2.0] | semmle.label | ... .case2(...) [case2.0] |
362-
| enums.swift:44:18:44:22 | ExprPattern | semmle.label | ExprPattern |
363348
| enums.swift:44:22:44:22 | x | semmle.label | x |
364349
| enums.swift:45:14:45:14 | x | semmle.label | x |
365350
| enums.swift:52:9:52:13 | opt_x [some.0] | semmle.label | opt_x [some.0] |
366351
| enums.swift:52:17:52:45 | ... .some(...) [some.0] | semmle.label | ... .some(...) [some.0] |
367352
| enums.swift:52:31:52:44 | source(...) | semmle.label | source(...) |
368353
| enums.swift:53:11:53:15 | ... .some(...) [some.0] | semmle.label | ... .some(...) [some.0] |
369-
| enums.swift:53:11:53:15 | ExprPattern | semmle.label | ExprPattern |
370354
| enums.swift:53:15:53:15 | x | semmle.label | x |
371355
| enums.swift:53:19:53:23 | opt_x [some.0] | semmle.label | opt_x [some.0] |
372356
| enums.swift:54:10:54:10 | x | semmle.label | x |
373357
| enums.swift:58:9:58:13 | opt_x [some.0] | semmle.label | opt_x [some.0] |
374358
| enums.swift:58:17:58:45 | ... .some(...) [some.0] | semmle.label | ... .some(...) [some.0] |
375359
| enums.swift:58:31:58:44 | source(...) | semmle.label | source(...) |
376360
| enums.swift:59:11:59:19 | ... .some(...) [some.0] | semmle.label | ... .some(...) [some.0] |
377-
| enums.swift:59:11:59:19 | ExprPattern | semmle.label | ExprPattern |
378361
| enums.swift:59:15:59:19 | opt_x | semmle.label | opt_x |
379362
| enums.swift:59:15:59:19 | opt_x [some.0] | semmle.label | opt_x [some.0] |
380363
| enums.swift:60:10:60:14 | opt_x | semmle.label | opt_x |
@@ -383,12 +366,10 @@ nodes
383366
| enums.swift:68:34:68:47 | source(...) | semmle.label | source(...) |
384367
| enums.swift:69:12:69:12 | e [foo.0] | semmle.label | e [foo.0] |
385368
| enums.swift:70:10:70:20 | ... .foo(...) [foo.0] | semmle.label | ... .foo(...) [foo.0] |
386-
| enums.swift:70:15:70:19 | ExprPattern | semmle.label | ExprPattern |
387369
| enums.swift:70:19:70:19 | x | semmle.label | x |
388370
| enums.swift:71:14:71:14 | x | semmle.label | x |
389371
| enums.swift:77:12:77:12 | e [foo.0] | semmle.label | e [foo.0] |
390372
| enums.swift:78:10:78:23 | ... .foo(...) [foo.0] | semmle.label | ... .foo(...) [foo.0] |
391-
| enums.swift:78:18:78:22 | ExprPattern | semmle.label | ExprPattern |
392373
| enums.swift:78:22:78:22 | x | semmle.label | x |
393374
| enums.swift:79:14:79:14 | x | semmle.label | x |
394375
| implicit-self.swift:16:9:16:12 | [post] self [x] | semmle.label | [post] self [x] |
@@ -588,7 +569,6 @@ nodes
588569
| test.swift:192:20:192:52 | throwingIdentity(...) | semmle.label | throwingIdentity(...) |
589570
| test.swift:192:37:192:51 | source(...) | semmle.label | source(...) |
590571
| test.swift:193:8:193:14 | ... .some(...) [some.0] | semmle.label | ... .some(...) [some.0] |
591-
| test.swift:193:8:193:14 | ExprPattern | semmle.label | ExprPattern |
592572
| test.swift:193:12:193:14 | opt | semmle.label | opt |
593573
| test.swift:193:12:193:14 | opt [some.0] | semmle.label | opt [some.0] |
594574
| test.swift:194:14:194:16 | opt | semmle.label | opt |
@@ -604,7 +584,6 @@ nodes
604584
| test.swift:201:26:201:63 | asyncThrowingIdentity(...) | semmle.label | asyncThrowingIdentity(...) |
605585
| test.swift:201:48:201:62 | source(...) | semmle.label | source(...) |
606586
| test.swift:202:8:202:14 | ... .some(...) [some.0] | semmle.label | ... .some(...) [some.0] |
607-
| test.swift:202:8:202:14 | ExprPattern | semmle.label | ExprPattern |
608587
| test.swift:202:12:202:14 | opt | semmle.label | opt |
609588
| test.swift:202:12:202:14 | opt [some.0] | semmle.label | opt [some.0] |
610589
| test.swift:203:14:203:16 | opt | semmle.label | opt |
@@ -618,7 +597,6 @@ nodes
618597
| test.swift:211:10:211:10 | x | semmle.label | x |
619598
| test.swift:211:10:211:21 | TypeCastExpr | semmle.label | TypeCastExpr |
620599
| test.swift:212:8:212:12 | ... .some(...) [some.0] | semmle.label | ... .some(...) [some.0] |
621-
| test.swift:212:8:212:12 | ExprPattern | semmle.label | ExprPattern |
622600
| test.swift:212:12:212:12 | y | semmle.label | y |
623601
| test.swift:212:16:212:16 | x | semmle.label | x |
624602
| test.swift:212:16:212:27 | TypeCastExpr [some.0] | semmle.label | TypeCastExpr [some.0] |

0 commit comments

Comments
 (0)