diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt index c2624236092..e6f92ee896c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt @@ -355,10 +355,12 @@ fun BodyResolveComponents.typeFromCallee(access: T): FirReso } is FirSuperReference -> { val labelName = newCallee.labelName - val implicitReceiver = implicitReceiverStack[labelName] as? ImplicitDispatchReceiverValue + val implicitReceiver = + if (labelName != null) implicitReceiverStack[labelName] as? ImplicitDispatchReceiverValue + else implicitReceiverStack.lastDispatchReceiver() val resolvedTypeRef = - if (implicitReceiver != null) implicitReceiver.boundSymbol.phasedFir.superTypeRefs.singleOrNull() as? FirResolvedTypeRef - else newCallee.superTypeRef as? FirResolvedTypeRef + newCallee.superTypeRef as? FirResolvedTypeRef + ?: implicitReceiver?.boundSymbol?.phasedFir?.superTypeRefs?.singleOrNull() as? FirResolvedTypeRef resolvedTypeRef ?: buildErrorTypeRef { source = newCallee.source diagnostic = ConeUnresolvedNameError(Name.identifier("super"))