Fir2Ir: add fake overrides binding for script top level classes
This commit is contained in:
committed by
Space Team
parent
9adf24950a
commit
7866c63e49
@@ -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,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND_K2: JVM_IR
|
|
||||||
|
|
||||||
enum class Build { Debug, Release }
|
enum class Build { Debug, Release }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user