FIR: Fix overrides binding for Java inheritor

`overriddenMembers` contract requires original (non-enhanced) function
See other usages

Ignored tests have been working accidentally

^KT-43289 Open
This commit is contained in:
Denis Zharkov
2020-11-10 22:08:54 +03:00
parent 855af08f7c
commit 4c9a4548f2
18 changed files with 66 additions and 72 deletions
@@ -1,57 +0,0 @@
// FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*;
public class A {
public void foo(@DefaultNull Integer i) {}
public void bar(@DefaultNull Integer a) {}
public void bam(@DefaultNull Integer a) {}
public void baz(@DefaultValue("42") Integer a) {}
}
// FILE: AInt.java
import kotlin.annotations.jvm.internal.*;
public interface AInt {
public void foo(@DefaultValue("42") Integer i) {}
public void bar(@DefaultNull Integer a) {}
}
// FILE: B.java
import kotlin.annotations.jvm.internal.*;
public class B extends A {
public void foo(Integer i) {}
public void bar(@DefaultValue("42") Integer a) {}
public void bam(@DefaultNull @DefaultValue("42") Integer a) {}
}
// FILE: C.java
public class C extends A implements AInt {
}
// FILE: test.kt
fun test(b: B, c: C) {
b.<!INAPPLICABLE_CANDIDATE!>foo<!>()
b.foo(5)
b.bar()
b.bar(5)
b.bam()
b.bam(5)
c.foo()
c.foo(5)
c.bar()
c.bar(5)
c.bam()
c.bam(5)
c.baz()
c.baz(42)
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: A.java
// ANDROID_ANNOTATIONS
@@ -87,14 +87,14 @@ fun main() {
d.<!INAPPLICABLE_CANDIDATE!>first<!>()
bd.<!INAPPLICABLE_CANDIDATE!>first<!>()
e.<!INAPPLICABLE_CANDIDATE!>first<!>()
e.first()
val g = G()
g.<!INAPPLICABLE_CANDIDATE!>foo<!>()
g.foo()
g.foo("ok")
val m = M()
m.<!INAPPLICABLE_CANDIDATE!>foo<!>()
m.foo()
}