Skip to content

Commit edc465e

Browse files
committed
unified: Add more capture tests
1 parent b348803 commit edc465e

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

‎unified/ql/test/library-tests/dataflow/accessors_local.swift‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,21 @@ func t7() {
5454
y = source("t7.1")
5555
sink(x) // $ hasValueFlow=t7.1
5656
}
57+
58+
func t8() {
59+
var x: String { source("t8.1") }
60+
let closure = {
61+
sink(x) // $ hasValueFlow=t8.1
62+
}
63+
closure()
64+
}
65+
66+
func t9() {
67+
var y: String = "safe"
68+
var x: String { y }
69+
let closure = {
70+
sink(x) // $ hasValueFlow=t9.1
71+
}
72+
y = source("t9.1")
73+
closure()
74+
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ edges
4141
| accessors_local.swift:54:5:54:5 | y | accessors_local.swift:52:21:52:21 | y | provenance | |
4242
| accessors_local.swift:54:5:54:5 | y | accessors_local.swift:55:10:55:10 | x | provenance | |
4343
| accessors_local.swift:54:9:54:22 | source(...) | accessors_local.swift:54:5:54:5 | y | provenance | |
44+
| accessors_local.swift:59:21:59:34 | source(...) | accessors_local.swift:61:14:61:14 | x | provenance | |
45+
| accessors_local.swift:72:5:72:5 | y | accessors_local.swift:73:5:73:11 | closure [y] | provenance | |
46+
| accessors_local.swift:72:9:72:22 | source(...) | accessors_local.swift:72:5:72:5 | y | provenance | |
47+
| accessors_local.swift:73:5:73:11 | closure [y] | accessors_local.swift:70:14:70:14 | x | provenance | |
4448
| accessors_static.swift:8:32:8:45 | source(...) | accessors_static.swift:10:10:10:12 | ... .x | provenance | |
4549
| accessors_static.swift:18:19:18:32 | source(...) | accessors_static.swift:21:10:21:12 | ... .x | provenance | |
4650
| accessors_static.swift:27:19:27:32 | source(...) | accessors_static.swift:31:10:31:12 | ... .x | provenance | |
@@ -569,6 +573,12 @@ nodes
569573
| accessors_local.swift:54:5:54:5 | y | semmle.label | y |
570574
| accessors_local.swift:54:9:54:22 | source(...) | semmle.label | source(...) |
571575
| accessors_local.swift:55:10:55:10 | x | semmle.label | x |
576+
| accessors_local.swift:59:21:59:34 | source(...) | semmle.label | source(...) |
577+
| accessors_local.swift:61:14:61:14 | x | semmle.label | x |
578+
| accessors_local.swift:70:14:70:14 | x | semmle.label | x |
579+
| accessors_local.swift:72:5:72:5 | y | semmle.label | y |
580+
| accessors_local.swift:72:9:72:22 | source(...) | semmle.label | source(...) |
581+
| accessors_local.swift:73:5:73:11 | closure [y] | semmle.label | closure [y] |
572582
| accessors_static.swift:8:32:8:45 | source(...) | semmle.label | source(...) |
573583
| accessors_static.swift:10:10:10:12 | ... .x | semmle.label | ... .x |
574584
| accessors_static.swift:18:19:18:32 | source(...) | semmle.label | source(...) |
@@ -1185,6 +1195,8 @@ testFailures
11851195
| accessors_local.swift:39:20:39:27 | newValue | accessors_local.swift:38:15:38:28 | source(...) | accessors_local.swift:39:20:39:27 | newValue | $@ | accessors_local.swift:38:15:38:28 | source(...) | source(...) |
11861196
| accessors_local.swift:47:10:47:10 | x | accessors_local.swift:45:21:45:34 | source(...) | accessors_local.swift:47:10:47:10 | x | $@ | accessors_local.swift:45:21:45:34 | source(...) | source(...) |
11871197
| accessors_local.swift:55:10:55:10 | x | accessors_local.swift:54:9:54:22 | source(...) | accessors_local.swift:55:10:55:10 | x | $@ | accessors_local.swift:54:9:54:22 | source(...) | source(...) |
1198+
| accessors_local.swift:61:14:61:14 | x | accessors_local.swift:59:21:59:34 | source(...) | accessors_local.swift:61:14:61:14 | x | $@ | accessors_local.swift:59:21:59:34 | source(...) | source(...) |
1199+
| accessors_local.swift:70:14:70:14 | x | accessors_local.swift:72:9:72:22 | source(...) | accessors_local.swift:70:14:70:14 | x | $@ | accessors_local.swift:72:9:72:22 | source(...) | source(...) |
11881200
| accessors_static.swift:10:10:10:12 | ... .x | accessors_static.swift:8:32:8:45 | source(...) | accessors_static.swift:10:10:10:12 | ... .x | $@ | accessors_static.swift:8:32:8:45 | source(...) | source(...) |
11891201
| accessors_static.swift:21:10:21:12 | ... .x | accessors_static.swift:18:19:18:32 | source(...) | accessors_static.swift:21:10:21:12 | ... .x | $@ | accessors_static.swift:18:19:18:32 | source(...) | source(...) |
11901202
| accessors_static.swift:31:10:31:12 | ... .x | accessors_static.swift:27:19:27:32 | source(...) | accessors_static.swift:31:10:31:12 | ... .x | $@ | accessors_static.swift:27:19:27:32 | source(...) | source(...) |

0 commit comments

Comments
 (0)