Skip to content

Commit 1cc99d5

Browse files
committed
unified: Add test for explicitly-named setter parameter
This was already handled in the AST mapping, but no QL test was added initially
1 parent b084467 commit 1cc99d5

2 files changed

Lines changed: 67 additions & 49 deletions

File tree

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ func t4() {
4141
C().x = source("t4.1")
4242
}
4343

44+
func t4a() {
45+
class C {
46+
var x: String {
47+
get {}
48+
set(v) { sink(v) } // $ hasValueFlow=t4a.1
49+
}
50+
}
51+
C().x = source("t4a.1")
52+
}
53+
4454
func t5() {
4555
class C {
4656
var x: String {

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

Lines changed: 57 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,28 @@ edges
66
| accessors_instance.swift:38:13:38:15 | newValue | accessors_instance.swift:38:24:38:31 | newValue | provenance | |
77
| accessors_instance.swift:41:5:41:9 | ... .x | accessors_instance.swift:38:13:38:15 | newValue | provenance | |
88
| accessors_instance.swift:41:13:41:26 | source(...) | accessors_instance.swift:41:5:41:9 | ... .x | provenance | |
9-
| accessors_instance.swift:47:19:47:32 | source(...) | accessors_instance.swift:52:11:52:13 | ... .x | provenance | |
10-
| accessors_instance.swift:48:13:48:15 | newValue | accessors_instance.swift:48:24:48:31 | newValue | provenance | |
11-
| accessors_instance.swift:52:5:52:7 | ... .x | accessors_instance.swift:48:13:48:15 | newValue | provenance | |
12-
| accessors_instance.swift:52:11:52:13 | ... .x | accessors_instance.swift:52:5:52:7 | ... .x | provenance | |
13-
| accessors_instance.swift:57:25:57:38 | source(...) | accessors_instance.swift:60:18:60:23 | ... .x | provenance | |
14-
| accessors_instance.swift:57:25:57:38 | source(...) | accessors_instance.swift:61:18:61:18 | x | provenance | |
15-
| accessors_instance.swift:69:25:69:28 | self [field] | accessors_instance.swift:69:25:69:34 | ... .field | provenance | |
16-
| accessors_instance.swift:73:5:73:5 | [post] c [field] | accessors_instance.swift:74:10:74:10 | c [field] | provenance | |
17-
| accessors_instance.swift:73:5:73:11 | ... .field | accessors_instance.swift:73:5:73:5 | [post] c [field] | provenance | |
18-
| accessors_instance.swift:73:15:73:28 | source(...) | accessors_instance.swift:73:5:73:11 | ... .field | provenance | |
19-
| accessors_instance.swift:74:10:74:10 | c [field] | accessors_instance.swift:69:25:69:28 | self [field] | provenance | |
20-
| accessors_instance.swift:74:10:74:10 | c [field] | accessors_instance.swift:74:10:74:12 | ... .x | provenance | |
21-
| accessors_instance.swift:83:32:83:36 | field | accessors_instance.swift:83:19:83:28 | otherField | provenance | |
22-
| accessors_instance.swift:87:5:87:5 | [post] c [field] | accessors_instance.swift:88:5:88:5 | c [field] | provenance | |
23-
| accessors_instance.swift:87:5:87:11 | ... .field | accessors_instance.swift:87:5:87:5 | [post] c [field] | provenance | |
24-
| accessors_instance.swift:87:15:87:28 | source(...) | accessors_instance.swift:87:5:87:11 | ... .field | provenance | |
25-
| accessors_instance.swift:88:5:88:5 | c [field] | accessors_instance.swift:83:32:83:36 | field | provenance | |
26-
| accessors_instance.swift:88:5:88:5 | c [field] | accessors_instance.swift:89:10:89:10 | c [otherField] | provenance | |
27-
| accessors_instance.swift:89:10:89:10 | c [otherField] | accessors_instance.swift:89:10:89:21 | ... .otherField | provenance | |
9+
| accessors_instance.swift:48:17:48:17 | v | accessors_instance.swift:48:27:48:27 | v | provenance | |
10+
| accessors_instance.swift:51:5:51:9 | ... .x | accessors_instance.swift:48:17:48:17 | v | provenance | |
11+
| accessors_instance.swift:51:13:51:27 | source(...) | accessors_instance.swift:51:5:51:9 | ... .x | provenance | |
12+
| accessors_instance.swift:57:19:57:32 | source(...) | accessors_instance.swift:62:11:62:13 | ... .x | provenance | |
13+
| accessors_instance.swift:58:13:58:15 | newValue | accessors_instance.swift:58:24:58:31 | newValue | provenance | |
14+
| accessors_instance.swift:62:5:62:7 | ... .x | accessors_instance.swift:58:13:58:15 | newValue | provenance | |
15+
| accessors_instance.swift:62:11:62:13 | ... .x | accessors_instance.swift:62:5:62:7 | ... .x | provenance | |
16+
| accessors_instance.swift:67:25:67:38 | source(...) | accessors_instance.swift:70:18:70:23 | ... .x | provenance | |
17+
| accessors_instance.swift:67:25:67:38 | source(...) | accessors_instance.swift:71:18:71:18 | x | provenance | |
18+
| accessors_instance.swift:79:25:79:28 | self [field] | accessors_instance.swift:79:25:79:34 | ... .field | provenance | |
19+
| accessors_instance.swift:83:5:83:5 | [post] c [field] | accessors_instance.swift:84:10:84:10 | c [field] | provenance | |
20+
| accessors_instance.swift:83:5:83:11 | ... .field | accessors_instance.swift:83:5:83:5 | [post] c [field] | provenance | |
21+
| accessors_instance.swift:83:15:83:28 | source(...) | accessors_instance.swift:83:5:83:11 | ... .field | provenance | |
22+
| accessors_instance.swift:84:10:84:10 | c [field] | accessors_instance.swift:79:25:79:28 | self [field] | provenance | |
23+
| accessors_instance.swift:84:10:84:10 | c [field] | accessors_instance.swift:84:10:84:12 | ... .x | provenance | |
24+
| accessors_instance.swift:93:32:93:36 | field | accessors_instance.swift:93:19:93:28 | otherField | provenance | |
25+
| accessors_instance.swift:97:5:97:5 | [post] c [field] | accessors_instance.swift:98:5:98:5 | c [field] | provenance | |
26+
| accessors_instance.swift:97:5:97:11 | ... .field | accessors_instance.swift:97:5:97:5 | [post] c [field] | provenance | |
27+
| accessors_instance.swift:97:15:97:28 | source(...) | accessors_instance.swift:97:5:97:11 | ... .field | provenance | |
28+
| accessors_instance.swift:98:5:98:5 | c [field] | accessors_instance.swift:93:32:93:36 | field | provenance | |
29+
| accessors_instance.swift:98:5:98:5 | c [field] | accessors_instance.swift:99:10:99:10 | c [otherField] | provenance | |
30+
| accessors_instance.swift:99:10:99:10 | c [otherField] | accessors_instance.swift:99:10:99:21 | ... .otherField | provenance | |
2831
| accessors_local.swift:7:21:7:34 | source(...) | accessors_local.swift:8:10:8:10 | x | provenance | |
2932
| accessors_local.swift:15:15:15:28 | source(...) | accessors_local.swift:17:10:17:10 | x | provenance | |
3033
| accessors_local.swift:22:15:22:28 | source(...) | accessors_local.swift:25:10:25:10 | x | provenance | |
@@ -514,29 +517,33 @@ nodes
514517
| accessors_instance.swift:38:24:38:31 | newValue | semmle.label | newValue |
515518
| accessors_instance.swift:41:5:41:9 | ... .x | semmle.label | ... .x |
516519
| accessors_instance.swift:41:13:41:26 | source(...) | semmle.label | source(...) |
517-
| accessors_instance.swift:47:19:47:32 | source(...) | semmle.label | source(...) |
518-
| accessors_instance.swift:48:13:48:15 | newValue | semmle.label | newValue |
519-
| accessors_instance.swift:48:24:48:31 | newValue | semmle.label | newValue |
520-
| accessors_instance.swift:52:5:52:7 | ... .x | semmle.label | ... .x |
521-
| accessors_instance.swift:52:11:52:13 | ... .x | semmle.label | ... .x |
522-
| accessors_instance.swift:57:25:57:38 | source(...) | semmle.label | source(...) |
523-
| accessors_instance.swift:60:18:60:23 | ... .x | semmle.label | ... .x |
524-
| accessors_instance.swift:61:18:61:18 | x | semmle.label | x |
525-
| accessors_instance.swift:69:25:69:28 | self [field] | semmle.label | self [field] |
526-
| accessors_instance.swift:69:25:69:34 | ... .field | semmle.label | ... .field |
527-
| accessors_instance.swift:73:5:73:5 | [post] c [field] | semmle.label | [post] c [field] |
528-
| accessors_instance.swift:73:5:73:11 | ... .field | semmle.label | ... .field |
529-
| accessors_instance.swift:73:15:73:28 | source(...) | semmle.label | source(...) |
530-
| accessors_instance.swift:74:10:74:10 | c [field] | semmle.label | c [field] |
531-
| accessors_instance.swift:74:10:74:12 | ... .x | semmle.label | ... .x |
532-
| accessors_instance.swift:83:19:83:28 | otherField | semmle.label | otherField |
533-
| accessors_instance.swift:83:32:83:36 | field | semmle.label | field |
534-
| accessors_instance.swift:87:5:87:5 | [post] c [field] | semmle.label | [post] c [field] |
535-
| accessors_instance.swift:87:5:87:11 | ... .field | semmle.label | ... .field |
536-
| accessors_instance.swift:87:15:87:28 | source(...) | semmle.label | source(...) |
537-
| accessors_instance.swift:88:5:88:5 | c [field] | semmle.label | c [field] |
538-
| accessors_instance.swift:89:10:89:10 | c [otherField] | semmle.label | c [otherField] |
539-
| accessors_instance.swift:89:10:89:21 | ... .otherField | semmle.label | ... .otherField |
520+
| accessors_instance.swift:48:17:48:17 | v | semmle.label | v |
521+
| accessors_instance.swift:48:27:48:27 | v | semmle.label | v |
522+
| accessors_instance.swift:51:5:51:9 | ... .x | semmle.label | ... .x |
523+
| accessors_instance.swift:51:13:51:27 | source(...) | semmle.label | source(...) |
524+
| accessors_instance.swift:57:19:57:32 | source(...) | semmle.label | source(...) |
525+
| accessors_instance.swift:58:13:58:15 | newValue | semmle.label | newValue |
526+
| accessors_instance.swift:58:24:58:31 | newValue | semmle.label | newValue |
527+
| accessors_instance.swift:62:5:62:7 | ... .x | semmle.label | ... .x |
528+
| accessors_instance.swift:62:11:62:13 | ... .x | semmle.label | ... .x |
529+
| accessors_instance.swift:67:25:67:38 | source(...) | semmle.label | source(...) |
530+
| accessors_instance.swift:70:18:70:23 | ... .x | semmle.label | ... .x |
531+
| accessors_instance.swift:71:18:71:18 | x | semmle.label | x |
532+
| accessors_instance.swift:79:25:79:28 | self [field] | semmle.label | self [field] |
533+
| accessors_instance.swift:79:25:79:34 | ... .field | semmle.label | ... .field |
534+
| accessors_instance.swift:83:5:83:5 | [post] c [field] | semmle.label | [post] c [field] |
535+
| accessors_instance.swift:83:5:83:11 | ... .field | semmle.label | ... .field |
536+
| accessors_instance.swift:83:15:83:28 | source(...) | semmle.label | source(...) |
537+
| accessors_instance.swift:84:10:84:10 | c [field] | semmle.label | c [field] |
538+
| accessors_instance.swift:84:10:84:12 | ... .x | semmle.label | ... .x |
539+
| accessors_instance.swift:93:19:93:28 | otherField | semmle.label | otherField |
540+
| accessors_instance.swift:93:32:93:36 | field | semmle.label | field |
541+
| accessors_instance.swift:97:5:97:5 | [post] c [field] | semmle.label | [post] c [field] |
542+
| accessors_instance.swift:97:5:97:11 | ... .field | semmle.label | ... .field |
543+
| accessors_instance.swift:97:15:97:28 | source(...) | semmle.label | source(...) |
544+
| accessors_instance.swift:98:5:98:5 | c [field] | semmle.label | c [field] |
545+
| accessors_instance.swift:99:10:99:10 | c [otherField] | semmle.label | c [otherField] |
546+
| accessors_instance.swift:99:10:99:21 | ... .otherField | semmle.label | ... .otherField |
540547
| accessors_local.swift:7:21:7:34 | source(...) | semmle.label | source(...) |
541548
| accessors_local.swift:8:10:8:10 | x | semmle.label | x |
542549
| accessors_local.swift:15:15:15:28 | source(...) | semmle.label | source(...) |
@@ -1132,8 +1139,8 @@ nodes
11321139
| test.swift:273:30:273:45 | source(...) | semmle.label | source(...) |
11331140
| test.swift:274:10:274:12 | f(...) | semmle.label | f(...) |
11341141
subpaths
1135-
| accessors_instance.swift:74:10:74:10 | c [field] | accessors_instance.swift:69:25:69:28 | self [field] | accessors_instance.swift:69:25:69:34 | ... .field | accessors_instance.swift:74:10:74:12 | ... .x |
1136-
| accessors_instance.swift:88:5:88:5 | c [field] | accessors_instance.swift:83:32:83:36 | field | accessors_instance.swift:83:19:83:28 | otherField | accessors_instance.swift:89:10:89:10 | c [otherField] |
1142+
| accessors_instance.swift:84:10:84:10 | c [field] | accessors_instance.swift:79:25:79:28 | self [field] | accessors_instance.swift:79:25:79:34 | ... .field | accessors_instance.swift:84:10:84:12 | ... .x |
1143+
| accessors_instance.swift:98:5:98:5 | c [field] | accessors_instance.swift:93:32:93:36 | field | accessors_instance.swift:93:19:93:28 | otherField | accessors_instance.swift:99:10:99:10 | c [otherField] |
11371144
| accessors_local.swift:45:9:45:9 | y | accessors_local.swift:46:21:46:21 | y | accessors_local.swift:46:21:46:21 | y | accessors_local.swift:47:10:47:10 | x |
11381145
| accessors_local.swift:54:5:54:5 | y | accessors_local.swift:52:21:52:21 | y | accessors_local.swift:52:21:52:21 | y | accessors_local.swift:55:10:55:10 | x |
11391146
| calls.swift:31:17:31:30 | source(...) | calls.swift:28:19:28:19 | x | calls.swift:29:16:29:24 | ... + ... | calls.swift:31:10:31:31 | target(...) |
@@ -1158,11 +1165,12 @@ testFailures
11581165
| accessors_instance.swift:21:10:21:14 | ... .x | accessors_instance.swift:18:19:18:32 | source(...) | accessors_instance.swift:21:10:21:14 | ... .x | $@ | accessors_instance.swift:18:19:18:32 | source(...) | source(...) |
11591166
| accessors_instance.swift:31:10:31:14 | ... .x | accessors_instance.swift:27:19:27:32 | source(...) | accessors_instance.swift:31:10:31:14 | ... .x | $@ | accessors_instance.swift:27:19:27:32 | source(...) | source(...) |
11601167
| accessors_instance.swift:38:24:38:31 | newValue | accessors_instance.swift:41:13:41:26 | source(...) | accessors_instance.swift:38:24:38:31 | newValue | $@ | accessors_instance.swift:41:13:41:26 | source(...) | source(...) |
1161-
| accessors_instance.swift:48:24:48:31 | newValue | accessors_instance.swift:47:19:47:32 | source(...) | accessors_instance.swift:48:24:48:31 | newValue | $@ | accessors_instance.swift:47:19:47:32 | source(...) | source(...) |
1162-
| accessors_instance.swift:60:18:60:23 | ... .x | accessors_instance.swift:57:25:57:38 | source(...) | accessors_instance.swift:60:18:60:23 | ... .x | $@ | accessors_instance.swift:57:25:57:38 | source(...) | source(...) |
1163-
| accessors_instance.swift:61:18:61:18 | x | accessors_instance.swift:57:25:57:38 | source(...) | accessors_instance.swift:61:18:61:18 | x | $@ | accessors_instance.swift:57:25:57:38 | source(...) | source(...) |
1164-
| accessors_instance.swift:74:10:74:12 | ... .x | accessors_instance.swift:73:15:73:28 | source(...) | accessors_instance.swift:74:10:74:12 | ... .x | $@ | accessors_instance.swift:73:15:73:28 | source(...) | source(...) |
1165-
| accessors_instance.swift:89:10:89:21 | ... .otherField | accessors_instance.swift:87:15:87:28 | source(...) | accessors_instance.swift:89:10:89:21 | ... .otherField | $@ | accessors_instance.swift:87:15:87:28 | source(...) | source(...) |
1168+
| accessors_instance.swift:48:27:48:27 | v | accessors_instance.swift:51:13:51:27 | source(...) | accessors_instance.swift:48:27:48:27 | v | $@ | accessors_instance.swift:51:13:51:27 | source(...) | source(...) |
1169+
| accessors_instance.swift:58:24:58:31 | newValue | accessors_instance.swift:57:19:57:32 | source(...) | accessors_instance.swift:58:24:58:31 | newValue | $@ | accessors_instance.swift:57:19:57:32 | source(...) | source(...) |
1170+
| accessors_instance.swift:70:18:70:23 | ... .x | accessors_instance.swift:67:25:67:38 | source(...) | accessors_instance.swift:70:18:70:23 | ... .x | $@ | accessors_instance.swift:67:25:67:38 | source(...) | source(...) |
1171+
| accessors_instance.swift:71:18:71:18 | x | accessors_instance.swift:67:25:67:38 | source(...) | accessors_instance.swift:71:18:71:18 | x | $@ | accessors_instance.swift:67:25:67:38 | source(...) | source(...) |
1172+
| accessors_instance.swift:84:10:84:12 | ... .x | accessors_instance.swift:83:15:83:28 | source(...) | accessors_instance.swift:84:10:84:12 | ... .x | $@ | accessors_instance.swift:83:15:83:28 | source(...) | source(...) |
1173+
| accessors_instance.swift:99:10:99:21 | ... .otherField | accessors_instance.swift:97:15:97:28 | source(...) | accessors_instance.swift:99:10:99:21 | ... .otherField | $@ | accessors_instance.swift:97:15:97:28 | source(...) | source(...) |
11661174
| accessors_local.swift:8:10:8:10 | x | accessors_local.swift:7:21:7:34 | source(...) | accessors_local.swift:8:10:8:10 | x | $@ | accessors_local.swift:7:21:7:34 | source(...) | source(...) |
11671175
| accessors_local.swift:17:10:17:10 | x | accessors_local.swift:15:15:15:28 | source(...) | accessors_local.swift:17:10:17:10 | x | $@ | accessors_local.swift:15:15:15:28 | source(...) | source(...) |
11681176
| accessors_local.swift:25:10:25:10 | x | accessors_local.swift:22:15:22:28 | source(...) | accessors_local.swift:25:10:25:10 | x | $@ | accessors_local.swift:22:15:22:28 | source(...) | source(...) |

0 commit comments

Comments
 (0)