[IR] Made currentDeclarationParent nullable
This commit is contained in:
+1
-1
@@ -99,7 +99,7 @@ abstract class IrElementTransformerVoidWithContext : IrElementTransformerVoid()
|
||||
protected val currentScope get() = scopeStack.peek()
|
||||
protected val parentScope get() = if (scopeStack.size < 2) null else scopeStack[scopeStack.size - 2]
|
||||
protected val allScopes get() = scopeStack
|
||||
protected val currentDeclarationParent get() = allScopes.last { it.irElement is IrDeclarationParent }.irElement as IrDeclarationParent
|
||||
protected val currentDeclarationParent get() = scopeStack.lastOrNull { it.irElement is IrDeclarationParent }?.irElement as? IrDeclarationParent
|
||||
|
||||
fun printScopeStack() {
|
||||
scopeStack.forEach { println(it.scope.scopeOwner) }
|
||||
|
||||
+1
-1
@@ -118,7 +118,7 @@ private class AddContinuationLowering(private val context: JvmBackendContext) :
|
||||
irBlock {
|
||||
+generateContinuationClassForLambda(
|
||||
info,
|
||||
currentDeclarationParent,
|
||||
currentDeclarationParent ?: error("No current declaration parent at ${expression.dump()}"),
|
||||
(currentFunction?.irElement as? IrFunction)?.isInline == true
|
||||
)
|
||||
val constructor = info.constructor
|
||||
|
||||
+1
-1
@@ -137,7 +137,7 @@ internal class CallableReferenceLowering(private val context: JvmBackendContext)
|
||||
origin = if (isLambda) JvmLoweredDeclarationOrigin.LAMBDA_IMPL else JvmLoweredDeclarationOrigin.FUNCTION_REFERENCE_IMPL
|
||||
name = SpecialNames.NO_NAME_PROVIDED
|
||||
}.apply {
|
||||
parent = currentDeclarationParent
|
||||
parent = currentDeclarationParent ?: error("No current declaration parent at ${irFunctionReference.dump()}")
|
||||
superTypes += superType
|
||||
if (samSuperType == null)
|
||||
superTypes += functionSuperClass.typeWith(parameterTypes)
|
||||
|
||||
+2
-2
@@ -83,7 +83,7 @@ internal class InlineCallableReferenceToLambdaPhase(val context: JvmBackendConte
|
||||
returnType = field.type
|
||||
isSuspend = false
|
||||
}.apply {
|
||||
parent = currentDeclarationParent
|
||||
parent = currentDeclarationParent ?: error("No current declaration parent at ${expression.dump()}")
|
||||
val boundReceiver = expression.dispatchReceiver ?: expression.extensionReceiver
|
||||
|
||||
val receiver =
|
||||
@@ -140,7 +140,7 @@ internal class InlineCallableReferenceToLambdaPhase(val context: JvmBackendConte
|
||||
returnType = referencedFunction.returnType
|
||||
isSuspend = referencedFunction.isSuspend
|
||||
}.apply {
|
||||
parent = currentDeclarationParent
|
||||
parent = currentDeclarationParent!!
|
||||
for ((index, argumentType) in argumentTypes.withIndex()) {
|
||||
addValueParameter {
|
||||
name = Name.identifier("p$index")
|
||||
|
||||
Reference in New Issue
Block a user