48 lines
881 B
Kotlin
Vendored
48 lines
881 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// FILE: implicitNotNullOnDelegatedImplementation.kt
|
|
interface IFoo {
|
|
fun foo(): String
|
|
}
|
|
|
|
class K1 : JFoo()
|
|
|
|
class K2 : JFoo() {
|
|
override fun foo() = super.foo()
|
|
}
|
|
|
|
class K3 : JUnrelatedFoo(), IFoo
|
|
|
|
class K4 : JUnrelatedFoo(), IFoo {
|
|
override fun foo() = super.foo()
|
|
}
|
|
|
|
class TestJFoo : IFoo by JFoo() {
|
|
// nullability assertion in 'foo()'
|
|
}
|
|
|
|
class TestK1 : IFoo by K1() {
|
|
// nullability assertion in 'foo()'
|
|
}
|
|
|
|
class TestK2 : IFoo by K2() {
|
|
// no nullability assertion in 'foo()'
|
|
}
|
|
|
|
class TestK3 : IFoo by K3() {
|
|
// no nullability assertion in 'foo()'
|
|
}
|
|
|
|
class TestK4 : IFoo by K4() {
|
|
// nullability assertion in 'foo()'
|
|
}
|
|
|
|
|
|
// FILE: JFoo.java
|
|
public class JFoo implements IFoo {
|
|
public String foo() { return null; }
|
|
}
|
|
|
|
// FILE: JUnrelatedFoo.java
|
|
public class JUnrelatedFoo {
|
|
public String foo() { return null; }
|
|
} |