Remove descriptors from LocalDeclarationslowering
This commit is contained in:
+6
-6
@@ -40,8 +40,8 @@ import org.jetbrains.kotlin.name.NameUtils
|
||||
import java.util.*
|
||||
|
||||
interface LocalNameProvider {
|
||||
fun localName(descriptor: DeclarationDescriptor): String =
|
||||
descriptor.name.asString()
|
||||
fun localName(declaration: IrDeclarationWithName): String =
|
||||
declaration.name.asString()
|
||||
|
||||
companion object {
|
||||
val DEFAULT = object : LocalNameProvider {}
|
||||
@@ -465,13 +465,13 @@ class LocalDeclarationsLowering(
|
||||
}
|
||||
}
|
||||
|
||||
private fun suggestLocalName(declaration: IrDeclaration): String {
|
||||
private fun suggestLocalName(declaration: IrDeclarationWithName): String {
|
||||
localFunctions[declaration]?.let {
|
||||
if (it.index >= 0)
|
||||
return "lambda-${it.index}"
|
||||
}
|
||||
|
||||
return localNameProvider.localName(declaration.descriptor)
|
||||
return localNameProvider.localName(declaration)
|
||||
}
|
||||
|
||||
private fun generateNameForLiftedDeclaration(
|
||||
@@ -481,7 +481,7 @@ class LocalDeclarationsLowering(
|
||||
Name.identifier(
|
||||
declaration.parentsWithSelf
|
||||
.takeWhile { it != newOwner }
|
||||
.toList().reversed().joinToString(separator = "$") { suggestLocalName(it as IrDeclaration) }
|
||||
.toList().reversed().joinToString(separator = "$") { suggestLocalName(it as IrDeclarationWithName) }
|
||||
)
|
||||
|
||||
private fun createLiftedDeclaration(localFunctionContext: LocalFunctionContext) {
|
||||
@@ -773,4 +773,4 @@ class LocalDeclarationsLowering(
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -89,7 +89,7 @@ class SharedVariablesLowering(val context: BackendContext) : FunctionLoweringPas
|
||||
}
|
||||
|
||||
private fun rewriteSharedVariables() {
|
||||
val transformedDescriptors = HashMap<IrValueSymbol, IrVariableSymbol>()
|
||||
val transformedSymbols = HashMap<IrValueSymbol, IrVariableSymbol>()
|
||||
|
||||
irFunction.transformChildrenVoid(object : IrElementTransformerVoid() {
|
||||
override fun visitVariable(declaration: IrVariable): IrStatement {
|
||||
@@ -99,7 +99,7 @@ class SharedVariablesLowering(val context: BackendContext) : FunctionLoweringPas
|
||||
|
||||
val newDeclaration = context.sharedVariablesManager.declareSharedVariable(declaration)
|
||||
newDeclaration.parent = irFunction
|
||||
transformedDescriptors[declaration.symbol] = newDeclaration.symbol
|
||||
transformedSymbols[declaration.symbol] = newDeclaration.symbol
|
||||
|
||||
return context.sharedVariablesManager.defineSharedValue(declaration, newDeclaration)
|
||||
}
|
||||
@@ -123,7 +123,7 @@ class SharedVariablesLowering(val context: BackendContext) : FunctionLoweringPas
|
||||
}
|
||||
|
||||
private fun getTransformedSymbol(oldSymbol: IrValueSymbol): IrVariableSymbol? =
|
||||
transformedDescriptors.getOrElse(oldSymbol) {
|
||||
transformedSymbols.getOrElse(oldSymbol) {
|
||||
assert(oldSymbol.owner !in sharedVariables) {
|
||||
"Shared variable is not transformed: ${oldSymbol.owner.dump()}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user