From 07a576ec79b18cae38164652f6a69244a1fc3267 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 28 Jan 2019 13:35:34 +0300 Subject: [PATCH] Supported enums in LocalDeclarationsLowering --- .../backend/common/lower/LocalDeclarationsLowering.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt index 06c7c80eed1..dfe9581e99c 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt @@ -87,6 +87,15 @@ class LocalDeclarationsLowering( is IrProperty -> LocalDeclarationsTransformer(memberDeclaration).lowerLocalDeclarations() is IrField -> LocalDeclarationsTransformer(memberDeclaration).lowerLocalDeclarations() is IrAnonymousInitializer -> LocalDeclarationsTransformer(memberDeclaration).lowerLocalDeclarations() + is IrEnumEntry -> { + // The responsibility of pulling up classes for enum entries is on EnumClassLowering. + // Moreover, EnumClassLowering needs information whether a enum entry has its own class or not. + val correspondingClass = memberDeclaration.correspondingClass + memberDeclaration.correspondingClass = null + LocalDeclarationsTransformer(memberDeclaration).lowerLocalDeclarations().also { + memberDeclaration.correspondingClass = correspondingClass + } + } // TODO: visit children as well else -> null }