diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolver.kt index 6145a82100f..e732a02715c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolver.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.resolve.calls.tower import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents import org.jetbrains.kotlin.fir.resolve.calls.* -import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol class FirTowerResolver( diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolverSession.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolverSession.kt index 5c8a17105a3..c42ed9d41a2 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolverSession.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolverSession.kt @@ -206,20 +206,21 @@ class FirTowerResolverSession internal constructor( private suspend fun runResolverForDelegatingConstructorCall(info: CallInfo, constructorClassSymbol: FirClassSymbol<*>) { val scope = constructorClassSymbol.fir.unsubstitutedScope(session, components.scopeSession) - // Search for non-inner constructors only - processLevel( - scope.toScopeTowerLevel(), - info, TowerGroup.Implicit(0) - ) - // Search for inner constructors only - if (constructorClassSymbol is FirRegularClassSymbol) { + if (constructorClassSymbol is FirRegularClassSymbol && constructorClassSymbol.fir.isInner) { + // Search for inner constructors only // 1 because we search for inner constructor in outer class implicitReceiversUsableAsValues.getOrNull(1)?.let { (implicitReceiverValue) -> processLevel( implicitReceiverValue.toMemberScopeTowerLevel(), - info.copy(name = constructorClassSymbol.fir.name), TowerGroup.Implicit(1) + info.copy(name = constructorClassSymbol.fir.name), TowerGroup.Member ) } + } else { + // Search for non-inner constructors only + processLevel( + scope.toScopeTowerLevel(), + info, TowerGroup.Member + ) } }