diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/PersistentImplicitReceiverStack.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/PersistentImplicitReceiverStack.kt index 6a893db1015..4619228c946 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/PersistentImplicitReceiverStack.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/PersistentImplicitReceiverStack.kt @@ -43,8 +43,14 @@ class PersistentImplicitReceiverStack private constructor( } override operator fun get(name: String?): ImplicitReceiverValue<*>? { - if (name == null) return stack.lastOrNull() - return indexesPerLabel[Name.identifier(name)].lastOrNull()?.let { stack[it] } + if (name == null) { + return stack.lastOrNull { + it !is ImplicitDispatchReceiverValue || !it.inDelegated + } + } + return indexesPerLabel[Name.identifier(name)].lastOrNull()?.let { stack[it] }?.takeIf { + it !is ImplicitDispatchReceiverValue || !it.inDelegated + } } override fun lastDispatchReceiver(): ImplicitDispatchReceiverValue? {