[LL FIR] fix lazy resolution of member-property statuses for local classes

Previously, statuses of superclass which are not local was not ignored

Sometimes it worked in the IDE by calling lazyResolveToPhase
which is a violation of the lazy resolution contract

^KT-54890
This commit is contained in:
Ilya Kirillov
2022-12-01 16:45:36 +01:00
parent 1550a37b17
commit c66fbf5c0e
8 changed files with 79 additions and 51 deletions
@@ -0,0 +1,23 @@
FILE: a.kt
public final fun main(): R|kotlin/Unit| {
local final class Local : R|B| {
public constructor(): R|Local| {
super<R|B|>()
}
protected final override val message: R|kotlin/String| = String(expression expected)
protected get(): R|kotlin/String|
}
}
FILE: b.kt
public abstract class B : R|kotlin/Any| {
public constructor(): R|B| {
super<R|kotlin/Any|>()
}
protected abstract val message: R|kotlin/String|
protected get(): R|kotlin/String|
}
@@ -0,0 +1,11 @@
// FILE: a.kt
fun main() {
class Local : B() {
override val message = "expression expected"
}
}
// FILE: b.kt
abstract class B {
protected abstract val message: String
}