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) {
for (statement in script.statements) {
if (statement is FirDeclaration) {
val irDeclaration = statement.accept(this@Fir2IrVisitor, null) as IrDeclaration
irScript.statements.add(irDeclaration)
val irStatement = if (statement is FirDeclaration) {
when {
statement is FirClass -> {
(statement.accept(this@Fir2IrVisitor, null) as IrClass).also {
converter.bindFakeOverridesInClass(it)
}
}
else -> {
statement.accept(this@Fir2IrVisitor, null) as? IrDeclaration
}
}
} else {
val irStatement = statement.toIrStatement()!!
irScript.statements.add(irStatement)
statement.toIrStatement()
}
irScript.statements.add(irStatement!!)
}
}
declarationStorage.leaveScope(irScript)
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_K2: JVM_IR
package script.long.name.inside.packag
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_K2: JVM_IR
enum class Build { Debug, Release }