[FIR2IR] Properly calculate overridden functions for lazy fake overrides

For detailed explanation see the comment to `computeBaseSymbolsWithContainingClass`
  function in `FakeOverrideGenerator.kt`

^KT-65592
This commit is contained in:
Dmitriy Novozhilov
2024-02-20 14:01:23 +02:00
committed by Space Team
parent 1761c8eb25
commit e431a96897
13 changed files with 219 additions and 26 deletions
@@ -0,0 +1,43 @@
// TARGET_BACKEND: JVM_IR
// ISSUE: KT-65592
// FILE: A.java
public interface A {
String f();
}
// FILE: AImpl.java
import org.jetbrains.annotations.NotNull;
public class AImpl implements A {
@Override
@NotNull
public String f() {
return "OK";
}
}
// FILE: B.kt
interface B : A
// FILE: BImpl.kt
open class BImpl : AImpl(), B
// FILE: C.java
public interface C extends B { }
// FILE: CImpl.java
public class CImpl extends BImpl implements C { }
// FILE: D.java
public interface D extends C { }
// FILE: DImpl.java
public class DImpl extends CImpl implements D { }
// FILE: box.kt
class Z : DImpl(), D
fun box(): String {
return Z().f()
}