From f7968e1b6176254f494552c9c3891ca2c824c37f Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Fri, 17 Nov 2017 15:49:43 +0100 Subject: [PATCH] Fix inner class lowering: don't try to process nested classes on processing outer --- .../kotlin/backend/jvm/lower/InnerClassesLowering.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/InnerClassesLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/InnerClassesLowering.kt index d0134415da3..9d5427d4c18 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/InnerClassesLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/InnerClassesLowering.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.backend.common.ClassLoweringPass import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrConstructor import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl @@ -124,6 +125,12 @@ class InnerClassesLowering(val context: JvmBackendContext) : ClassLoweringPass { private fun lowerOuterThisReferences() { irClass.transformChildrenVoid(object : IrElementTransformerVoid() { + + + override fun visitClass(declaration: IrClass): IrStatement = + //TODO: maybe add another transformer that skips specified elements + declaration + override fun visitGetValue(expression: IrGetValue): IrExpression { expression.transformChildrenVoid(this)