Temporary set public constructor visibility for lowered local declarations

Allow to support callable reference in next commits
This commit is contained in:
Mikhael Bogdanov
2018-08-08 11:56:19 +03:00
parent fdc15b053d
commit da34299064
2 changed files with 11 additions and 3 deletions
@@ -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 : private object DECLARATION_ORIGIN_FIELD_FOR_CAPTURED_VALUE :
IrDeclarationOriginImpl("FIELD_FOR_CAPTURED_VALUE") {} IrDeclarationOriginImpl("FIELD_FOR_CAPTURED_VALUE") {}
@@ -626,7 +631,7 @@ class LocalDeclarationsLowering(val context: BackendContext, val localNameProvid
newDescriptor.initialize( newDescriptor.initialize(
newValueParameters.map { it.descriptor as ValueParameterDescriptor }, newValueParameters.map { it.descriptor as ValueParameterDescriptor },
Visibilities.PRIVATE, loweredConstructorVisibility,
newTypeParameters newTypeParameters
) )
newDescriptor.returnType = oldDescriptor.returnType newDescriptor.returnType = oldDescriptor.returnType
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.backend.common.lower.*
import org.jetbrains.kotlin.backend.common.runOnFilePostfix import org.jetbrains.kotlin.backend.common.runOnFilePostfix
import org.jetbrains.kotlin.backend.jvm.lower.* import org.jetbrains.kotlin.backend.jvm.lower.*
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.declarations.IrFile
import org.jetbrains.kotlin.ir.util.PatchDeclarationParentsVisitor import org.jetbrains.kotlin.ir.util.PatchDeclarationParentsVisitor
import org.jetbrains.kotlin.ir.visitors.acceptVoid import org.jetbrains.kotlin.ir.visitors.acceptVoid
@@ -47,12 +48,14 @@ class JvmLower(val context: JvmBackendContext) {
InnerClassConstructorCallsLowering(context).runOnFilePostfix(irFile) InnerClassConstructorCallsLowering(context).runOnFilePostfix(irFile)
irFile.acceptVoid(PatchDeclarationParentsVisitor()) irFile.acceptVoid(PatchDeclarationParentsVisitor())
LocalDeclarationsLowering( LocalDeclarationsLowering(
context, context,
object : LocalNameProvider { object : LocalNameProvider {
override fun localName(descriptor: DeclarationDescriptor): String = override fun localName(descriptor: DeclarationDescriptor): String =
NameUtils.sanitizeAsJavaIdentifier(super.localName(descriptor)) NameUtils.sanitizeAsJavaIdentifier(super.localName(descriptor))
} },
Visibilities.PUBLIC //TODO properly figure out visibility
).runOnFilePostfix(irFile) ).runOnFilePostfix(irFile)
EnumClassLowering(context).runOnFilePostfix(irFile) EnumClassLowering(context).runOnFilePostfix(irFile)