JVM_IR KT-42020 special IdSignature for some fake override members

This commit is contained in:
Dmitry Petrov
2020-12-14 11:53:13 +03:00
parent 12cfba9ca9
commit b0f6461fa9
22 changed files with 1487 additions and 20 deletions
@@ -0,0 +1,67 @@
// IGNORE_BACKEND_FIR: ANY
// ^ TODO decide if we want to fix KT-42020 for FIR as well
open class Base<T> {
fun foo(x: T) {}
fun foo(y: String) {}
val T.bar get() = 1
val String.bar get() = 2
}
open class Derived : Base<String>()
class Derived2 : Derived()
fun test(b: Base<String>, d: Derived, d2: Derived2) {
b.foo(x = "")
b.foo(y = "")
d.foo(x = "")
d.foo(y = "")
d2.foo(x = "")
d2.foo(y = "")
}
open class BaseXY<X, Y> {
fun foo(x: X, y: String) {}
fun foo(x: String, y: Y) {}
}
class DerivedXY : BaseXY<String, String>()
fun outerFun() {
open class LocalBase<T> {
fun foo(x: T) {}
fun foo(y: String) {}
val T.bar get() = 1
val String.bar get() = 2
}
open class LocalDerived : LocalBase<String>()
class LocalDerived2 : LocalDerived()
fun test(b: LocalBase<String>, d: LocalDerived, d2: LocalDerived2) {
b.foo(x = "")
b.foo(y = "")
d.foo(x = "")
d.foo(y = "")
d2.foo(x = "")
d2.foo(y = "")
}
}
open class Outer<T> {
open inner class Inner {
fun foo(x: T) {}
fun foo(y: String) {}
}
}
class OuterDerived : Outer<String>() {
inner class InnerDerived : Inner()
}