Switch LocalFunctionLowering to LocalDeclarationLowering
This commit is contained in:
+10
-2
@@ -38,7 +38,15 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.parentsWithSelf
|
|||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class LocalDeclarationsLowering(val context: BackendContext) : DeclarationContainerLoweringPass {
|
interface LocalNameProvider {
|
||||||
|
fun localName(descriptor: DeclarationDescriptor): String =
|
||||||
|
descriptor.name.asString()
|
||||||
|
companion object {
|
||||||
|
val DEFAULT = object : LocalNameProvider {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class LocalDeclarationsLowering(val context: BackendContext, val localNameProvider: LocalNameProvider = LocalNameProvider.DEFAULT) : 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") {}
|
||||||
@@ -430,7 +438,7 @@ class LocalDeclarationsLowering(val context: BackendContext) : DeclarationContai
|
|||||||
return "lambda-${it.index}"
|
return "lambda-${it.index}"
|
||||||
}
|
}
|
||||||
|
|
||||||
return descriptor.name.asString()
|
return localNameProvider.localName(descriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun generateNameForLiftedDeclaration(descriptor: DeclarationDescriptor,
|
private fun generateNameForLiftedDeclaration(descriptor: DeclarationDescriptor,
|
||||||
|
|||||||
@@ -16,15 +16,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.jvm
|
package org.jetbrains.kotlin.backend.jvm
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.lower.KCallableNamePropertyLowering
|
|
||||||
import org.jetbrains.kotlin.backend.common.lower.LateinitLowering
|
|
||||||
import org.jetbrains.kotlin.backend.common.lower.LocalFunctionsLowering
|
|
||||||
import org.jetbrains.kotlin.backend.common.lower.SharedVariablesLowering
|
|
||||||
import org.jetbrains.kotlin.backend.common.lower.TailrecLowering
|
|
||||||
import org.jetbrains.kotlin.backend.common.lower.*
|
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.ir.declarations.IrFile
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
|
import org.jetbrains.kotlin.name.NameUtils
|
||||||
|
|
||||||
class JvmLower(val context: JvmBackendContext) {
|
class JvmLower(val context: JvmBackendContext) {
|
||||||
fun lower(irFile: IrFile) {
|
fun lower(irFile: IrFile) {
|
||||||
@@ -44,7 +41,11 @@ class JvmLower(val context: JvmBackendContext) {
|
|||||||
SharedVariablesLowering(context).runOnFilePostfix(irFile)
|
SharedVariablesLowering(context).runOnFilePostfix(irFile)
|
||||||
InnerClassesLowering(context).runOnFilePostfix(irFile)
|
InnerClassesLowering(context).runOnFilePostfix(irFile)
|
||||||
InnerClassConstructorCallsLowering(context).runOnFilePostfix(irFile)
|
InnerClassConstructorCallsLowering(context).runOnFilePostfix(irFile)
|
||||||
LocalFunctionsLowering(context).runOnFilePostfix(irFile)
|
LocalDeclarationsLowering(context,
|
||||||
|
object : LocalNameProvider {
|
||||||
|
override fun localName(descriptor: DeclarationDescriptor): String =
|
||||||
|
NameUtils.sanitizeAsJavaIdentifier(super.localName(descriptor))
|
||||||
|
}).runOnFilePostfix(irFile)
|
||||||
EnumClassLowering(context).runOnFilePostfix(irFile)
|
EnumClassLowering(context).runOnFilePostfix(irFile)
|
||||||
ObjectClassLowering(context).runOnFilePostfix(irFile)
|
ObjectClassLowering(context).runOnFilePostfix(irFile)
|
||||||
InitializersLowering(context).runOnFilePostfix(irFile)
|
InitializersLowering(context).runOnFilePostfix(irFile)
|
||||||
|
|||||||
Reference in New Issue
Block a user