Files
kotlin-fork/compiler/testData/codegen/box/javaInterop/kt43217.kt
T
2020-11-10 06:48:07 +03:00

59 lines
1.1 KiB
Kotlin
Vendored

// TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: kt43217.kt
class A {
private val b =
object : DoubleExpression() {
override fun get(): Double {
return 0.0
}
}
val test: DoubleExpression = b
}
class C : DoubleExpression() {
override fun get() = 0.0
}
fun box(): String {
if (A().test.get() != 0.0) throw AssertionError("A().test.get() != 0.0")
if (C().get() != 0.0) throw AssertionError("C().get() != 0.0")
return "OK"
}
// FILE: DoubleExpression.java
import org.jetbrains.annotations.NotNull;
public abstract class DoubleExpression implements ObservableDouble {
@NotNull
@Override
public Object isEqualTo(double value) {
return null;
}
}
// FILE: ObservableValue.java
import org.jetbrains.annotations.NotNull;
public interface ObservableValue<T> {
@NotNull
T get();
@NotNull
default Object isEqualTo(@NotNull T value) {
return null;
}
}
// FILE: ObservableDouble.java
import org.jetbrains.annotations.NotNull;
public interface ObservableDouble extends ObservableValue<Double> {
@NotNull
Object isEqualTo(double value);
}