Files
kotlin-fork/compiler/testData/diagnostics/tests/syntheticExtensions/javaProperties/KotlinOverridesJava.kt
T
Dmitry Petrov ef72c594c4 KT-1934 & KT-10197:
Naive approximation for fake overriding signature:
use upper bound for flexible types.
Check delegation errors.
2015-12-09 17:43:47 +03:00

53 lines
1.3 KiB
Kotlin
Vendored

// FILE: KotlinFile.kt
abstract class KotlinClass : JavaClass(), KotlinInterface, JavaInterface {
override fun getSomething1(): Int = 1
override fun getSomething3(): String = ""
override fun setSomething4(value: String) {}
override fun getSomething5(): String = ""
}
interface KotlinInterface {
public fun getSomething1(): Int
public fun getSomething4(): String
}
fun foo(k: KotlinClass) {
useInt(k.getSomething1())
useInt(k.something1)
useInt(k.getSomething2())
useInt(k.something2)
useString(k.getSomething3())
useString(k.something3)
k.setSomething4("")
k.something4 += ""
k.setSomething4(<!NULL_FOR_NONNULL_TYPE!>null<!>)
k.something4 = <!NULL_FOR_NONNULL_TYPE!>null<!>
useString(k.getSomething5())
useString(k.something5)
k.setSomething5(1)
k.something5 = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>
}
fun useInt(<!UNUSED_PARAMETER!>i<!>: Int) {}
fun useString(<!UNUSED_PARAMETER!>i<!>: String) {}
// FILE: JavaClass.java
public class JavaClass {
public int getSomething1() { return 1; }
public int getSomething2() { return 1; }
public Object getSomething3() { return null; }
}
// FILE: JavaInterface.java
public interface JavaInterface {
String getSomething4();
void setSomething4(String value);
Object getSomething5();
void setSomething5(Object value);
}