Skip to content

NoClassDefFoundError: scala/$repeated$ when using varargs and default arguments #4073

Closed
@max-leuthaeuser

Description

@max-leuthaeuser

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)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions