diff --git a/compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.kt b/compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.kt index ed1ff5ce405..711f14d1426 100644 --- a/compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.kt +++ b/compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.kt @@ -4,8 +4,8 @@ open class Base { class Derived : Base() { inner class InnerDerived : Inner() { - inner class VeryInner : Inner() { - inner class VeryVeryInner : Inner() + inner class VeryInner : Inner() { + inner class VeryVeryInner : Inner() } } } diff --git a/compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.txt b/compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.txt index 08b3b0affe3..67021dccdf9 100644 --- a/compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.txt +++ b/compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.txt @@ -24,12 +24,12 @@ FILE: innerClassHierarchy.kt public final inner class VeryInner : R|Base.Inner| { public constructor(): R|Derived.InnerDerived.VeryInner| { - super() + this@R|/Derived|.super() } public final inner class VeryVeryInner : R|Base.Inner| { public constructor(): R|Derived.InnerDerived.VeryInner.VeryVeryInner| { - super() + this@R|/Derived|.super() } } 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 c42ed9d41a2..4aaeb9210c0 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 @@ -208,11 +208,10 @@ class FirTowerResolverSession internal constructor( val scope = constructorClassSymbol.fir.unsubstitutedScope(session, components.scopeSession) 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) -> + for ((implicitReceiverValue, depth) in implicitReceiversUsableAsValues.drop(1)) { processLevel( implicitReceiverValue.toMemberScopeTowerLevel(), - info.copy(name = constructorClassSymbol.fir.name), TowerGroup.Member + info.copy(name = constructorClassSymbol.fir.name), TowerGroup.Implicit(depth) ) } } else {