Fir2Ir: add fake overrides binding for script top level classes

This commit is contained in:
Ilya Chernikov
2023-05-25 16:40:30 +02:00
committed by Space Team
parent 9adf24950a
commit 7866c63e49
3 changed files with 13 additions and 7 deletions
@@ -213,13 +213,21 @@ class Fir2IrVisitor(
} }
conversionScope.withParent(irScript) { conversionScope.withParent(irScript) {
for (statement in script.statements) { for (statement in script.statements) {
if (statement is FirDeclaration) { val irStatement = if (statement is FirDeclaration) {
val irDeclaration = statement.accept(this@Fir2IrVisitor, null) as IrDeclaration when {
irScript.statements.add(irDeclaration) statement is FirClass -> {
(statement.accept(this@Fir2IrVisitor, null) as IrClass).also {
converter.bindFakeOverridesInClass(it)
}
}
else -> {
statement.accept(this@Fir2IrVisitor, null) as? IrDeclaration
}
}
} else { } else {
val irStatement = statement.toIrStatement()!! statement.toIrStatement()
irScript.statements.add(irStatement)
} }
irScript.statements.add(irStatement!!)
} }
} }
declarationStorage.leaveScope(irScript) declarationStorage.leaveScope(irScript)
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_K2: JVM_IR
package script.long.name.inside.packag package script.long.name.inside.packag
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_K2: JVM_IR
enum class Build { Debug, Release } enum class Build { Debug, Release }