[FIR] Resolve statuses of supertypes for all non-source classes
Previously we forced computation only for java and precompiled classes, assuming, that binary class can not extend source class, but it's not true in two cases: 1. Classpath substitution: class with same name declared in library and the source (more rare case) 2. Metadata compilation: depends-on dependcies are passed in binary format, so `expect class` may be a binary one and corresponding `actual class` may be a source. So if some class in `common` module extend this expect class, actual class will be substituted instead of it ^KT-65669 Fixed
This commit is contained in:
committed by
Space Team
parent
9219a8f485
commit
84f0f6e099
@@ -0,0 +1,27 @@
|
||||
// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6
|
||||
// KT-65822: JS targets are ignored, as they doesn't support source-binary-source dependencies
|
||||
// IGNORE_BACKEND_K2: WASM
|
||||
// Reason: KT-65794
|
||||
// IGNORE_NATIVE: cacheMode=STATIC_EVERYWHERE && target=linux_x64
|
||||
// ISSUE: KT-65669
|
||||
|
||||
// MODULE: a
|
||||
// FILE: a.kt
|
||||
abstract class Base {
|
||||
open fun foo() {}
|
||||
}
|
||||
|
||||
open class Derived : Base()
|
||||
|
||||
// MODULE: b(a)
|
||||
// FILE: first.kt
|
||||
class Impl : Derived() {
|
||||
override fun foo() {}
|
||||
}
|
||||
|
||||
// FILE: second.kt
|
||||
abstract class Base {
|
||||
open fun foo() {}
|
||||
}
|
||||
|
||||
fun box(): String = "OK"
|
||||
Reference in New Issue
Block a user