Closed
Description
reproduction steps
using Scala 2.13.4, example:
case object Foo extends Product {
override final val productPrefix = "Foo"
}
println(Foo)
problem
Causes a runtime error in the class loader:
java.lang.ClassFormatError: Duplicate method name "productPrefix" with signature "()Ljava.lang.String;" in class file Playground$Foo$
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at sbt.internal.ManagedClassLoader.findClass(ManagedClassLoader.java:98)
at sbt.internal.BottomClassLoader.lambda$findClass$0(BottomClassLoader.java:56)
at sbt.internal.ClassLoadingLock.withLock(ClassLoadingLock.java:28)
at sbt.internal.BottomClassLoader.findClass(BottomClassLoader.java:51)
at sbt.internal.BottomClassLoader.loadClass(BottomClassLoader.java:66)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at Playground$.delayedEndpoint$Playground$1(main.scala:7)
...
Possibly related: #8663