blob: 942bed1bcd3309c05c540e4eee5fcf42fe8bef75 [file] [log] [blame]
// 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);
}