Skip to content

Commit cd8093c

Browse files
Kotlin: test context parameter setters
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent ce8a701 commit cd8093c

3 files changed

Lines changed: 21 additions & 9 deletions

File tree

java/ql/test-kotlin2/library-tests/context-parameters/test.expected

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,18 @@ parameters
33
| test.kt:8:1:8:45 | logged | test.kt:8:12:8:24 | value | 1 | String |
44
| test.kt:12:5:12:28 | getLogged | test.kt:10:9:10:22 | logger | 1 | Logger |
55
| test.kt:12:5:12:28 | getLogged | test.kt:11:5:11:10 | <this> | 0 | String |
6+
| test.kt:13:5:15:5 | setLogged | test.kt:10:9:10:22 | logger | 1 | Logger |
7+
| test.kt:13:5:15:5 | setLogged | test.kt:11:5:11:10 | <this> | 0 | String |
8+
| test.kt:13:5:15:5 | setLogged | test.kt:13:9:13:13 | value | 2 | String |
69
calls
7-
| test.kt:15:5:15:21 | logged(...) | test.kt:14:43:16:1 | invoke | test.kt:8:1:8:45 | logged | test.kt:15:5:15:21 | TestKt | 2 |
8-
| test.kt:15:5:15:28 | getLogged(...) | test.kt:14:43:16:1 | invoke | test.kt:12:5:12:28 | getLogged | test.kt:15:5:15:28 | TestKt | 2 |
10+
| test.kt:18:17:18:33 | logged(...) | test.kt:17:43:21:1 | invoke | test.kt:8:1:8:45 | logged | test.kt:18:17:18:33 | TestKt | 2 |
11+
| test.kt:18:17:18:40 | getLogged(...) | test.kt:17:43:21:1 | invoke | test.kt:12:5:12:28 | getLogged | test.kt:18:17:18:40 | TestKt | 2 |
12+
| test.kt:19:5:19:27 | setLogged(...) | test.kt:17:43:21:1 | invoke | test.kt:13:5:15:5 | setLogged | test.kt:19:5:19:27 | TestKt | 3 |
913
arguments
10-
| test.kt:15:5:15:21 | logged(...) | 0 | test.kt:0:0:0:0 | p0 |
11-
| test.kt:15:5:15:21 | logged(...) | 1 | test.kt:15:12:15:20 | "message" |
12-
| test.kt:15:5:15:28 | getLogged(...) | 0 | test.kt:15:5:15:21 | logged(...) |
13-
| test.kt:15:5:15:28 | getLogged(...) | 1 | test.kt:0:0:0:0 | p0 |
14+
| test.kt:18:17:18:33 | logged(...) | 0 | test.kt:0:0:0:0 | p0 |
15+
| test.kt:18:17:18:33 | logged(...) | 1 | test.kt:18:24:18:32 | "message" |
16+
| test.kt:18:17:18:40 | getLogged(...) | 0 | test.kt:18:17:18:33 | logged(...) |
17+
| test.kt:18:17:18:40 | getLogged(...) | 1 | test.kt:0:0:0:0 | p0 |
18+
| test.kt:19:5:19:27 | setLogged(...) | 0 | test.kt:19:5:19:12 | "target" |
19+
| test.kt:19:5:19:27 | setLogged(...) | 1 | test.kt:0:0:0:0 | p0 |
20+
| test.kt:19:5:19:27 | setLogged(...) | 2 | test.kt:19:23:19:27 | value |

java/ql/test-kotlin2/library-tests/context-parameters/test.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,14 @@ context(logger: Logger)
88
fun logged(value: String) = logger.log(value)
99

1010
context(logger: Logger)
11-
val String.logged: String
11+
var String.logged: String
1212
get() = logger.log(this)
13+
set(value) {
14+
logger.log(value)
15+
}
1316

1417
fun use(logger: Logger) = context(logger) {
15-
logged("message").logged
18+
val value = logged("message").logged
19+
"target".logged = value
20+
value
1621
}

java/ql/test-kotlin2/library-tests/context-parameters/test.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import java
22

3-
predicate isContextCallable(Callable c) { c.getName() = ["logged", "getLogged"] }
3+
predicate isContextCallable(Callable c) { c.getName() = ["logged", "getLogged", "setLogged"] }
44

55
query predicate parameters(Callable callable, Parameter parameter, int index, string parameterType) {
66
isContextCallable(callable) and

0 commit comments

Comments
 (0)