FIR Java: support Kotlin extension overriding: at last, #KT-29937 Fixed

This commit is contained in:
Mikhail Glukhikh
2019-03-13 16:06:49 +03:00
parent d00d078b4f
commit e6bb920a1d
9 changed files with 93 additions and 26 deletions
@@ -0,0 +1,4 @@
public open class Inheritor : R|Second| {
public open operator function foo R|First|.(first: R|kotlin/String|, s: R|kotlin/Int|): R|kotlin/Unit|
}
@@ -0,0 +1,5 @@
interface First
open class Second {
open fun First.foo(s: String, i: Int) {}
}
@@ -0,0 +1,10 @@
FILE: Base.kt
public abstract interface First {
}
public open class Second {
public constructor(): super<R|kotlin/Any|>()
public open function foo R|First|.(s: R|kotlin/String|, i: R|kotlin/Int|): R|kotlin/Unit| {
}
}
@@ -0,0 +1,3 @@
public class Inheritor extends Second {
public void foo(First first, String s, int i) {}
}
@@ -0,0 +1,5 @@
class Tester : Inheritor(), First {
fun test() {
foo("abc", 456)
}
}
@@ -0,0 +1,9 @@
FILE: Test.kt
public final class Tester : R|Inheritor|, R|First| {
public constructor(): super<R|Inheritor|>()
public final function test(): R|kotlin/Unit| {
R|/Inheritor.foo|(String(abc), Int(456))
}
}