From 998218716d1898922319374f742360c916f93532 Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Tue, 7 Apr 2020 20:39:57 +0300 Subject: [PATCH] IR: make lateinit lowering traverse local classes --- .../kotlin/backend/common/lower/LateinitLowering.kt | 8 ++++++++ .../codegen/box/properties/lateinit/localClass.kt | 2 -- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LateinitLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LateinitLowering.kt index 6add910fd96..66c40ee4c1b 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LateinitLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LateinitLowering.kt @@ -36,6 +36,10 @@ import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid class NullableFieldsForLateinitCreationLowering(val backendContext: CommonBackendContext) : DeclarationTransformer { + override fun lower(irFile: IrFile) { + runPostfix(true).toFileLoweringPass().lower(irFile) + } + override fun transformFlat(declaration: IrDeclaration): List? { if (declaration is IrField) { declaration.correspondingPropertySymbol?.owner?.let { property -> @@ -52,6 +56,10 @@ class NullableFieldsForLateinitCreationLowering(val backendContext: CommonBacken // Transform declarations class NullableFieldsDeclarationLowering(val backendContext: CommonBackendContext) : DeclarationTransformer { + override fun lower(irFile: IrFile) { + runPostfix(true).toFileLoweringPass().lower(irFile) + } + override fun transformFlat(declaration: IrDeclaration): List? { when (declaration) { is IrProperty -> { diff --git a/compiler/testData/codegen/box/properties/lateinit/localClass.kt b/compiler/testData/codegen/box/properties/lateinit/localClass.kt index 8acc53d2e64..9408c85507b 100644 --- a/compiler/testData/codegen/box/properties/lateinit/localClass.kt +++ b/compiler/testData/codegen/box/properties/lateinit/localClass.kt @@ -1,6 +1,4 @@ // WITH_RUNTIME -// IGNORE_BACKEND_FIR: JVM_IR -// IGNORE_BACKEND: JVM_IR, JS_IR import kotlin.UninitializedPropertyAccessException