82255d5ee8
Add tests for fake overrides with focus on java interoperability Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
71 lines
1.1 KiB
Kotlin
Vendored
71 lines
1.1 KiB
Kotlin
Vendored
// FIR_IDENTICAL
|
|
// TARGET_BACKEND: JVM
|
|
|
|
// FILE: Java1.java
|
|
public class Java1 {
|
|
private int a = 0;
|
|
|
|
public int getA(){
|
|
return 1;
|
|
}
|
|
public void setA(int t){
|
|
a = 100;
|
|
};
|
|
|
|
private boolean b = true;
|
|
public boolean isB(){
|
|
return b;
|
|
};
|
|
public void setB(boolean t){
|
|
b = t;
|
|
};
|
|
}
|
|
|
|
// FILE: Java2.java
|
|
public interface Java2 {
|
|
Object a = "1";
|
|
Object getA();
|
|
void setA(Object t);
|
|
|
|
boolean b = true;
|
|
boolean isB();
|
|
}
|
|
|
|
// FILE: 1.kt
|
|
|
|
abstract class A : Java1(), Java2
|
|
|
|
class B : Java1(), Java2 {
|
|
override fun setA(t: Any?) { }
|
|
}
|
|
|
|
abstract class C : Java1(), KotlinInterface
|
|
|
|
class D(override var a: Any, override val b: Boolean) : Java1(), KotlinInterface
|
|
|
|
interface KotlinInterface {
|
|
var a : Any
|
|
val b : Boolean
|
|
}
|
|
fun test(a: A, b: B, c: C, d: D){
|
|
a.a
|
|
a.setA(3)
|
|
a.setA("")
|
|
a.isB
|
|
a.isB = false
|
|
b.a
|
|
b.setA(3)
|
|
b.setA("")
|
|
b.isB
|
|
b.isB = false
|
|
c.a
|
|
c.b
|
|
c.isB
|
|
c.a = 1
|
|
c.isB = false
|
|
d.a
|
|
d.b
|
|
d.isB
|
|
d.a = 1
|
|
d.isB = false
|
|
} |