Minor. Clean up code
This commit is contained in:
+19
-19
@@ -126,7 +126,7 @@ class LocalDeclarationsLowering(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class LocalFunctionContext(override val declaration: IrFunction) : LocalContextWithClosureAsParameters() {
|
private class LocalFunctionContext(override val declaration: IrSimpleFunction) : LocalContextWithClosureAsParameters() {
|
||||||
lateinit var closure: Closure
|
lateinit var closure: Closure
|
||||||
|
|
||||||
override lateinit var transformedDeclaration: IrSimpleFunction
|
override lateinit var transformedDeclaration: IrSimpleFunction
|
||||||
@@ -185,17 +185,17 @@ class LocalDeclarationsLowering(
|
|||||||
collectLocalDeclarations()
|
collectLocalDeclarations()
|
||||||
if (localFunctions.isEmpty() && localClasses.isEmpty()) return listOf(memberDeclaration)
|
if (localFunctions.isEmpty() && localClasses.isEmpty()) return listOf(memberDeclaration)
|
||||||
|
|
||||||
collectClosures()
|
collectClosureForLocalDeclarations()
|
||||||
|
|
||||||
transformDeclarations()
|
transformDeclarations()
|
||||||
|
|
||||||
rewriteDeclarations()
|
rewriteDeclarations()
|
||||||
|
|
||||||
val rewrittenDeclarations = collectRewrittenDeclarations()
|
return collectRewrittenDeclarations().apply {
|
||||||
rewrittenDeclarations.forEach {
|
forEach { newDeclaration ->
|
||||||
it.patchDeclarationParents(memberDeclaration.parent)
|
newDeclaration.patchDeclarationParents(memberDeclaration.parent)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return rewrittenDeclarations
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun collectRewrittenDeclarations(): ArrayList<IrDeclaration> =
|
private fun collectRewrittenDeclarations(): ArrayList<IrDeclaration> =
|
||||||
@@ -415,7 +415,7 @@ class LocalDeclarationsLowering(
|
|||||||
|
|
||||||
assert(constructorsCallingSuper.any()) { "Expected at least one constructor calling super; class: $irClass" }
|
assert(constructorsCallingSuper.any()) { "Expected at least one constructor calling super; class: $irClass" }
|
||||||
|
|
||||||
localClassContext.capturedValueToField.forEach { capturedValue, field ->
|
localClassContext.capturedValueToField.forEach { (capturedValue, field) ->
|
||||||
val startOffset = irClass.startOffset
|
val startOffset = irClass.startOffset
|
||||||
val endOffset = irClass.endOffset
|
val endOffset = irClass.endOffset
|
||||||
irClass.declarations.add(field)
|
irClass.declarations.add(field)
|
||||||
@@ -513,7 +513,7 @@ class LocalDeclarationsLowering(
|
|||||||
)
|
)
|
||||||
|
|
||||||
private fun createLiftedDeclaration(localFunctionContext: LocalFunctionContext) {
|
private fun createLiftedDeclaration(localFunctionContext: LocalFunctionContext) {
|
||||||
val oldDeclaration = localFunctionContext.declaration as IrSimpleFunction
|
val oldDeclaration = localFunctionContext.declaration
|
||||||
|
|
||||||
val memberOwner = memberDeclaration.parent
|
val memberOwner = memberDeclaration.parent
|
||||||
val newDescriptor = WrappedSimpleFunctionDescriptor(oldDeclaration.descriptor)
|
val newDescriptor = WrappedSimpleFunctionDescriptor(oldDeclaration.descriptor)
|
||||||
@@ -574,7 +574,7 @@ class LocalDeclarationsLowering(
|
|||||||
val p = capturedValue.owner
|
val p = capturedValue.owner
|
||||||
IrValueParameterImpl(
|
IrValueParameterImpl(
|
||||||
p.startOffset, p.endOffset, BOUND_VALUE_PARAMETER, IrValueParameterSymbolImpl(parameterDescriptor),
|
p.startOffset, p.endOffset, BOUND_VALUE_PARAMETER, IrValueParameterSymbolImpl(parameterDescriptor),
|
||||||
suggestNameForCapturedValue(p), i, p.type, null, false, false
|
suggestNameForCapturedValue(p), i, p.type, null, isCrossinline = false, isNoinline = false
|
||||||
).also {
|
).also {
|
||||||
parameterDescriptor.bind(it)
|
parameterDescriptor.bind(it)
|
||||||
it.parent = newDeclaration
|
it.parent = newDeclaration
|
||||||
@@ -663,9 +663,9 @@ class LocalDeclarationsLowering(
|
|||||||
name,
|
name,
|
||||||
fieldType,
|
fieldType,
|
||||||
visibility,
|
visibility,
|
||||||
true,
|
isFinal = true,
|
||||||
false,
|
isExternal = false,
|
||||||
false
|
isStatic = false
|
||||||
).also {
|
).also {
|
||||||
descriptor.bind(it)
|
descriptor.bind(it)
|
||||||
it.parent = parent
|
it.parent = parent
|
||||||
@@ -706,14 +706,14 @@ class LocalDeclarationsLowering(
|
|||||||
declaration.name
|
declaration.name
|
||||||
|
|
||||||
|
|
||||||
private fun collectClosures() {
|
private fun collectClosureForLocalDeclarations() {
|
||||||
val annotator = ClosureAnnotator(memberDeclaration)
|
val annotator = ClosureAnnotator(memberDeclaration)
|
||||||
|
|
||||||
localFunctions.forEach { declaration, context ->
|
localFunctions.forEach { (declaration, context) ->
|
||||||
context.closure = annotator.getFunctionClosure(declaration)
|
context.closure = annotator.getFunctionClosure(declaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
localClasses.forEach { declaration, context ->
|
localClasses.forEach { (declaration, context) ->
|
||||||
context.closure = annotator.getClassClosure(declaration)
|
context.closure = annotator.getClassClosure(declaration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -725,8 +725,8 @@ class LocalDeclarationsLowering(
|
|||||||
element.acceptChildrenVoid(this)
|
element.acceptChildrenVoid(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitFunction(declaration: IrFunction) {
|
override fun visitSimpleFunction(declaration: IrSimpleFunction) {
|
||||||
declaration.acceptChildrenVoid(this)
|
super.visitSimpleFunction(declaration)
|
||||||
|
|
||||||
if (declaration.visibility == Visibilities.LOCAL) {
|
if (declaration.visibility == Visibilities.LOCAL) {
|
||||||
val localFunctionContext = LocalFunctionContext(declaration)
|
val localFunctionContext = LocalFunctionContext(declaration)
|
||||||
@@ -740,7 +740,7 @@ class LocalDeclarationsLowering(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitConstructor(declaration: IrConstructor) {
|
override fun visitConstructor(declaration: IrConstructor) {
|
||||||
declaration.acceptChildrenVoid(this)
|
super.visitConstructor(declaration)
|
||||||
|
|
||||||
assert(declaration.visibility != Visibilities.LOCAL)
|
assert(declaration.visibility != Visibilities.LOCAL)
|
||||||
|
|
||||||
@@ -750,7 +750,7 @@ class LocalDeclarationsLowering(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitClass(declaration: IrClass) {
|
override fun visitClass(declaration: IrClass) {
|
||||||
declaration.acceptChildrenVoid(this)
|
super.visitClass(declaration)
|
||||||
|
|
||||||
if (declaration.isInner) return
|
if (declaration.isInner) return
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user