From e560a67a89ce24cbde9e05551e25c93841950203 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 9 Dec 2019 15:01:54 +0300 Subject: [PATCH] [FIR] Resolve this reference in delegating constructors --- .../body/resolve/FirExpressionsResolveTransformer.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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