Closed
Description
With Scala 2.12.4 the following works:
class DynImpl extends Dynamic {
def applyDynamic(name: String)(args: Any*)(implicit implicitArg: String = "foo"): String =
s"method '$name' called with arguments ${args.mkString("'", "', '", "'")} and implicit argument '$implicitArg'"
}
object Main {
def main(args:Array[String]): Unit = {
val d = new DynImpl
println(d.some())
println(d.ints(1, 2, 3))
println(d.strings("a", "b", "c"))
}
}
The exact same code with Dotty (0.6 or latest) fails with:
sbt: [error] (run-main-d5) java.lang.NoClassDefFoundError: scala/$repeated$
sbt: java.lang.NoClassDefFoundError: scala/$repeated$
at Main$.main(main.scala:10)
at Main.main(main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
Caused by: java.lang.ClassNotFoundException: scala.$repeated$
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at Main$.main(main.scala:10)
at Main.main(main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)