From da342990649ee23e3c9c783d3c9a93902a3d3df1 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Wed, 8 Aug 2018 11:56:19 +0300 Subject: [PATCH] Temporary set public constructor visibility for lowered local declarations Allow to support callable reference in next commits --- .../backend/common/lower/LocalDeclarationsLowering.kt | 9 +++++++-- .../src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) 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 3a8e70ded66..e9f2ba61287 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 @@ -40,7 +40,12 @@ interface LocalNameProvider { } } -class LocalDeclarationsLowering(val context: BackendContext, val localNameProvider: LocalNameProvider = LocalNameProvider.DEFAULT) : DeclarationContainerLoweringPass { +class LocalDeclarationsLowering( + val context: BackendContext, + val localNameProvider: LocalNameProvider = LocalNameProvider.DEFAULT, + val loweredConstructorVisibility: Visibility = Visibilities.PRIVATE +) : + DeclarationContainerLoweringPass { private object DECLARATION_ORIGIN_FIELD_FOR_CAPTURED_VALUE : IrDeclarationOriginImpl("FIELD_FOR_CAPTURED_VALUE") {} @@ -626,7 +631,7 @@ class LocalDeclarationsLowering(val context: BackendContext, val localNameProvid newDescriptor.initialize( newValueParameters.map { it.descriptor as ValueParameterDescriptor }, - Visibilities.PRIVATE, + loweredConstructorVisibility, newTypeParameters ) newDescriptor.returnType = oldDescriptor.returnType diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt index 0d2f78741f1..4008a220829 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.backend.common.lower.* import org.jetbrains.kotlin.backend.common.runOnFilePostfix import org.jetbrains.kotlin.backend.jvm.lower.* import org.jetbrains.kotlin.descriptors.DeclarationDescriptor +import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.util.PatchDeclarationParentsVisitor import org.jetbrains.kotlin.ir.visitors.acceptVoid @@ -47,12 +48,14 @@ class JvmLower(val context: JvmBackendContext) { InnerClassConstructorCallsLowering(context).runOnFilePostfix(irFile) irFile.acceptVoid(PatchDeclarationParentsVisitor()) + LocalDeclarationsLowering( context, object : LocalNameProvider { override fun localName(descriptor: DeclarationDescriptor): String = NameUtils.sanitizeAsJavaIdentifier(super.localName(descriptor)) - } + }, + Visibilities.PUBLIC //TODO properly figure out visibility ).runOnFilePostfix(irFile) EnumClassLowering(context).runOnFilePostfix(irFile)