diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index 540e76b41e5..77b3b30f5fa 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -459,7 +459,13 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) : val symbol: FirClassSymbol<*> = when (val reference = delegatedConstructorCall.calleeReference) { is FirThisReference -> { typeArguments = emptyList() - reference.boundSymbol as? FirClassSymbol<*> ?: return delegatedConstructorCall.compose() + if (reference.boundSymbol == null) { + implicitReceiverStack.lastDispatchReceiver()?.boundSymbol?.also { + reference.replaceBoundSymbol(it) + } ?: return delegatedConstructorCall.compose() + } else { + reference.boundSymbol!! as FirClassSymbol<*> + } } is FirSuperReference -> { // TODO: unresolved supertype