Closed as not planned
Closed as not planned
Description
This is the exact same bug as in Scala 2: scala/bug#12456
trait ScalaTrait {
def foo1: String
def foo2: String = "default foo value 2"
val val1: String
val val2: String = "default val value 2"
}
public abstract class JavaAbstractClass implements ScalaTrait {
public String javaFoo1() { return foo1(); }
public String javaFoo2() { return foo2(); }
public String javaVal1() { return val1(); }
public String javaVal2() { return val2(); }
}
import scala.util.Try
object ScalaClass extends JavaAbstractClass {
override def foo1: String = "implemented foo in scala 1"
override val val1: String = "implemented val in scala 1"
def main(args: Array[String]): Unit = {
println(Try(javaFoo1()))
println(Try(javaFoo2()))
println(Try(javaVal1()))
println(Try(javaVal2()))
}
}
problem
The program compiles fine, but an exception is thrown at runtime:
Success(implemented foo in scala 1)
Success(default foo value 2)
Success(implemented val in scala 1)
Exception in thread "main" java.lang.AbstractMethodError: Method ScalaClass$.val2()Ljava/lang/String; is abstract
at ScalaClass$.val2(ScalaClass.scala)
at JavaAbstractClass.javaVal2(JavaAbstractClass.java:6)
at ScalaClass$.$anonfun$main$4(ScalaClass.scala:12)
at scala.util.Try$.apply(Try.scala:210)
at ScalaClass$.main(ScalaClass.scala:12)
at ScalaClass.main(ScalaClass.scala)