mirror of
https://github.com/github/codeql.git
synced 2026-04-29 10:45:15 +02:00
Kotlin: Fix non-nested local class extraction
This commit is contained in:
@@ -574,8 +574,8 @@ open class KotlinFileExtractor(
|
||||
|
||||
break
|
||||
} else if (parent is IrFile) {
|
||||
if (innerClass != null) {
|
||||
// We don't have to extract file class containers for classes
|
||||
if (innerClass != null && !innerClass.isLocal) {
|
||||
// We don't have to extract file class containers for classes except for local classes
|
||||
break
|
||||
}
|
||||
if (this.filePath != parent.path) {
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
| Top which doesn't have exactly 1 toString |
|
||||
@@ -10,12 +10,24 @@ classes.kt:
|
||||
# 158| 2: [Method] fn1
|
||||
# 158| 3: [TypeAccess] Unit
|
||||
# 158| 5: [BlockStmt] { ... }
|
||||
# 159| 0: [LocalTypeDeclStmt] class ...
|
||||
# 159| 0: [LocalClass] X
|
||||
# 159| 1: [Constructor] X
|
||||
# 159| 5: [BlockStmt] { ... }
|
||||
# 159| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 159| 1: [BlockStmt] { ... }
|
||||
# 162| 3: [Method] fn2
|
||||
# 162| 3: [TypeAccess] Object
|
||||
# 162| 5: [BlockStmt] { ... }
|
||||
# 162| 0: [ReturnStmt] return ...
|
||||
# 162| 0: [StmtExpr] <Stmt>
|
||||
# 162| 0: [BlockStmt] { ... }
|
||||
# 162| 0: [LocalTypeDeclStmt] class ...
|
||||
# 162| 0: [AnonymousClass,LocalClass] new Object(...) { ... }
|
||||
# 162| 1: [Constructor]
|
||||
# 162| 5: [BlockStmt] { ... }
|
||||
# 162| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 162| 1: [BlockStmt] { ... }
|
||||
# 162| 1: [ExprStmt] <Expr>;
|
||||
# 162| 0: [ClassInstanceExpr] new (...)
|
||||
# 162| -3: [TypeAccess] Object
|
||||
@@ -570,16 +582,6 @@ classes.kt:
|
||||
# 153| 0: [ClassInstanceExpr] new Cl01(...)
|
||||
# 153| -3: [TypeAccess] Cl01
|
||||
# 153| 0: [TypeAccess] U1
|
||||
# 159| 27: [Class] X
|
||||
# 159| 1: [Constructor] X
|
||||
# 159| 5: [BlockStmt] { ... }
|
||||
# 159| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 159| 1: [BlockStmt] { ... }
|
||||
# 162| 28: [Class]
|
||||
# 162| 1: [Constructor]
|
||||
# 162| 5: [BlockStmt] { ... }
|
||||
# 162| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 162| 1: [BlockStmt] { ... }
|
||||
generic_anonymous.kt:
|
||||
# 0| [CompilationUnit] generic_anonymous
|
||||
# 0| 1: [Class] Generic_anonymousKt
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
| classes.kt:85:16:85:25 | new Object(...) { ... } | classes.kt:85:16:85:25 | new (...) | | classes.kt:85:16:85:25 | Object | classes.kt:85:16:85:25 | class ... |
|
||||
| classes.kt:89:16:89:44 | new Interface3<Integer>(...) { ... } | classes.kt:89:16:89:44 | new (...) | | classes.kt:89:16:89:44 | Interface3<Integer> | classes.kt:89:16:89:44 | class ... |
|
||||
| classes.kt:127:16:134:9 | new Object(...) { ... } | classes.kt:127:16:134:9 | new (...) | | classes.kt:127:16:134:9 | Object | classes.kt:127:16:134:9 | class ... |
|
||||
| classes.kt:162:13:162:22 | new Object(...) { ... } | classes.kt:162:13:162:22 | new (...) | | classes.kt:162:13:162:22 | Object | classes.kt:162:13:162:22 | class ... |
|
||||
| generic_anonymous.kt:3:19:5:3 | new Object(...) { ... } | generic_anonymous.kt:3:19:5:3 | new (...) | | generic_anonymous.kt:3:19:5:3 | Object | generic_anonymous.kt:3:19:5:3 | class ... |
|
||||
| generic_anonymous.kt:26:13:26:37 | new Object(...) { ... } | generic_anonymous.kt:26:13:26:37 | new (...) | | generic_anonymous.kt:26:13:26:37 | Object | generic_anonymous.kt:26:13:26:37 | class ... |
|
||||
| generic_anonymous.kt:27:13:27:37 | new Object(...) { ... } | generic_anonymous.kt:27:13:27:37 | new (...) | | generic_anonymous.kt:27:13:27:37 | Object | generic_anonymous.kt:27:13:27:37 | class ... |
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
| classes.kt:141:13:145:13 | Cl1 | Cl0$Cl1 | final, private |
|
||||
| classes.kt:150:1:156:1 | Cl00 | Cl00 | final, public |
|
||||
| classes.kt:151:5:155:5 | Cl01 | Cl00$Cl01 | final, public |
|
||||
| classes.kt:159:5:159:14 | X | X | final, private |
|
||||
| classes.kt:162:13:162:22 | | | final, private |
|
||||
| classes.kt:159:5:159:14 | X | ClassesKt$X | final, private |
|
||||
| classes.kt:162:13:162:22 | new Object(...) { ... } | <anonymous class> | final, private |
|
||||
| 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 |
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
| 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(...) { ... } |
|
||||
| classes.kt:140:9:146:9 | class ... | classes.kt:140:9:146:9 | | classes.kt:139:5:147:5 | func1 | classes.kt:138:1:148:1 | Cl0 |
|
||||
| classes.kt:141:13:145:13 | class ... | classes.kt:141:13:145:13 | Cl1 | classes.kt:140:9:146:9 | func2 | classes.kt:138:1:148:1 | Cl0 |
|
||||
| classes.kt:159:5:159:14 | class ... | classes.kt:159:5:159:14 | X | classes.kt:158:1:160:1 | fn1 | classes.kt:0:0:0:0 | ClassesKt |
|
||||
| generic_anonymous.kt:25:9:31:9 | class ... | generic_anonymous.kt:25:9:31:9 | | generic_anonymous.kt:24:5:32:5 | func1 | generic_anonymous.kt:15:1:33:1 | Outer |
|
||||
| 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: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 |
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
| classes.kt:150:1:156:1 | Cl00 | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| classes.kt:151:5:155:5 | Cl01 | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| classes.kt:159:5:159:14 | X | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| classes.kt:162:13:162:22 | | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| classes.kt:162:13:162:22 | new Object(...) { ... } | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| file://<external>/C1$<no name provided>$Local3.class:0:0:0:0 | Local3<Integer> | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| file://<external>/C1$Local1.class:0:0:0:0 | Local1<Integer> | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
| file://<external>/C1$Local2.class:0:0:0:0 | Local2<Integer> | file://<external>/Object.class:0:0:0:0 | Object |
|
||||
|
||||
Reference in New Issue
Block a user