Adjust class label generation to handle classes in field initializers

This commit is contained in:
Tamas Vajk
2022-05-05 12:45:59 +02:00
committed by Chris Smowton
parent 394ec56d9d
commit 857a74cf14
4 changed files with 894 additions and 2710 deletions

View File

@@ -1018,6 +1018,9 @@ open class KotlinUsesExtractor(
is IrFunction -> {
"{${useFunction<DbMethod>(parent)}}.$cls"
}
is IrField -> {
"{${useField(parent)}}.$cls"
}
else -> {
if (pkg.isEmpty()) cls else "$pkg.$cls"
}

View File

@@ -1,20 +0,0 @@
[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

View File

@@ -3,8 +3,6 @@
| 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 |