mirror of
https://github.com/github/codeql.git
synced 2026-04-30 11:15:13 +02:00
Add test case for local class declaration in field initializer
This commit is contained in:
committed by
Chris Smowton
parent
4ceb2f13c4
commit
394ec56d9d
20
java/ql/test/kotlin/library-tests/classes/DB-CHECK.expected
Normal file
20
java/ql/test/kotlin/library-tests/classes/DB-CHECK.expected
Normal file
@@ -0,0 +1,20 @@
|
||||
[INVALID_KEY_SET] predicate isLocalClassOrInterface(@classorinterface typeid, @localtypedeclstmt parent): The key set {typeid} does not functionally determine all fields.
|
||||
Here is a pair of tuples that agree on the key set but differ at index 1:
|
||||
Tuple 1 in row 13: (1044,1050)
|
||||
Tuple 2 in row 14: (1044,1075)
|
||||
Relevant element: Tuple 1: typeid=1044
|
||||
Full ID for 1044: @"class;L"
|
||||
Relevant element: Tuple 2: typeid=1044
|
||||
Full ID for 1044: @"class;L"
|
||||
[INVALID_KEY_SET] predicate stmts(@stmt id, int kind, @stmtparent parent, int idx, @callable bodydecl): The key set {parent, idx} does not functionally determine all fields.
|
||||
Here is a pair of tuples that agree on the key set but differ at index 0:
|
||||
Tuple 1 in row 223: (1047,0,1046,0,1046)
|
||||
Tuple 2 in row 233: (1072,0,1046,0,1046)
|
||||
Relevant element: Tuple 1: parent=1046
|
||||
Full ID for 1046: @"callable;(1044).<init>()(17)". The ID may expand to @"callable;{@"class;L"}.<init>(){@"type;void"}"
|
||||
Relevant element: Tuple 2: parent=1046
|
||||
Full ID for 1046: @"callable;(1044).<init>()(17)". The ID may expand to @"callable;{@"class;L"}.<init>(){@"type;void"}"
|
||||
Relevant element: Tuple 1: bodydecl=1046
|
||||
Full ID for 1046: @"callable;(1044).<init>()(17)". The ID may expand to @"callable;{@"class;L"}.<init>(){@"type;void"}"
|
||||
Relevant element: Tuple 2: bodydecl=1046
|
||||
Full ID for 1046: @"callable;(1044).<init>()(17)". The ID may expand to @"callable;{@"class;L"}.<init>(){@"type;void"}"
|
||||
File diff suppressed because it is too large
Load Diff
@@ -37,6 +37,9 @@
|
||||
| generic_anonymous.kt:0:0:0:0 | Generic_anonymousKt | Generic_anonymousKt | final, public |
|
||||
| generic_anonymous.kt:1:1:9:1 | Generic | Generic | final, private |
|
||||
| generic_anonymous.kt:3:19:5:3 | new Object(...) { ... } | <anonymous class> | final, private |
|
||||
| localClassField.kt:1:1:11:1 | A | A | final, public |
|
||||
| localClassField.kt:3:9:3:19 | L | A$L | final, private |
|
||||
| localClassField.kt:8:9:8:19 | L | A$L | final, private |
|
||||
| local_anonymous.kt:3:1:36:1 | Class1 | LocalAnonymous.Class1 | final, public |
|
||||
| local_anonymous.kt:5:16:7:9 | new Object(...) { ... } | <anonymous class> | final, private |
|
||||
| local_anonymous.kt:11:9:11:24 | | Class1$ | final, private |
|
||||
|
||||
@@ -36,6 +36,9 @@ superCall
|
||||
| classes.kt:129:17:131:17 | super(...) |
|
||||
| generic_anonymous.kt:1:1:9:1 | super(...) |
|
||||
| generic_anonymous.kt:3:19:5:3 | super(...) |
|
||||
| localClassField.kt:1:1:11:1 | super(...) |
|
||||
| localClassField.kt:3:9:3:19 | super(...) |
|
||||
| localClassField.kt:8:9:8:19 | super(...) |
|
||||
| local_anonymous.kt:3:1:36:1 | super(...) |
|
||||
| local_anonymous.kt:5:16:7:9 | super(...) |
|
||||
| local_anonymous.kt:11:9:11:24 | super(...) |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
| classes.kt:118:9:123:9 | class ... | classes.kt:118:9:123:9 | | classes.kt:117:5:124:5 | fn2 | classes.kt:109:1:136:1 | C1 |
|
||||
| classes.kt:119:13:121:13 | class ... | classes.kt:119:13:121:13 | Local2 | classes.kt:118:9:123:9 | localFn | classes.kt:109:1:136:1 | C1 |
|
||||
| classes.kt:129:17:131:17 | class ... | classes.kt:129:17:131:17 | Local3 | classes.kt:128:13:133:13 | fn | classes.kt:127:16:134:9 | new Object(...) { ... } |
|
||||
| localClassField.kt:3:9:3:19 | class ... | localClassField.kt:3:9:3:19 | L | localClassField.kt:1:1:11:1 | A | localClassField.kt:1:1:11:1 | A |
|
||||
| localClassField.kt:3:9:3:19 | class ... | localClassField.kt:8:9:8:19 | L | localClassField.kt:1:1:11:1 | A | localClassField.kt:1:1:11:1 | A |
|
||||
| localClassField.kt:8:9:8:19 | class ... | localClassField.kt:3:9:3:19 | L | localClassField.kt:1:1:11:1 | A | localClassField.kt:1:1:11:1 | A |
|
||||
| localClassField.kt:8:9:8:19 | class ... | localClassField.kt:8:9:8:19 | L | localClassField.kt:1:1:11:1 | A | localClassField.kt:1:1:11:1 | A |
|
||||
| local_anonymous.kt:11:9:11:24 | class ... | local_anonymous.kt:11:9:11:24 | | local_anonymous.kt:10:5:13:5 | fn2 | local_anonymous.kt:3:1:36:1 | Class1 |
|
||||
| local_anonymous.kt:25:9:25:27 | class ... | local_anonymous.kt:25:9:25:27 | LocalClass | local_anonymous.kt:24:5:27:5 | fn5 | local_anonymous.kt:3:1:36:1 | Class1 |
|
||||
|
||||
11
java/ql/test/kotlin/library-tests/classes/localClassField.kt
Normal file
11
java/ql/test/kotlin/library-tests/classes/localClassField.kt
Normal file
@@ -0,0 +1,11 @@
|
||||
class A {
|
||||
val x = if (true) {
|
||||
class L { }
|
||||
L()
|
||||
} else {}
|
||||
|
||||
val y = if (true) {
|
||||
class L { }
|
||||
L()
|
||||
} else {}
|
||||
}
|
||||
@@ -49,6 +49,9 @@
|
||||
| file://<external>/SuperChain2.class:0:0:0:0 | SuperChain2<T5,String> | file://<external>/SuperChain1.class:0:0:0:0 | SuperChain1<T5,String> |
|
||||
| generic_anonymous.kt:1:1:9:1 | Generic | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| generic_anonymous.kt:3:19:5:3 | new Object(...) { ... } | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| localClassField.kt:1:1:11:1 | A | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| localClassField.kt:3:9:3:19 | L | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| localClassField.kt:8:9:8:19 | L | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| local_anonymous.kt:3:1:36:1 | Class1 | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| local_anonymous.kt:5:16:7:9 | new Object(...) { ... } | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| local_anonymous.kt:11:9:11:24 | | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
|
||||
Reference in New Issue
Block a user