Temporary set public constructor visibility for lowered local declarations
Allow to support callable reference in next commits
This commit is contained in:
+7
-2
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user