Open
Description
Compiler version
3.2.0-RC1-bin-20220604-13ce496-NIGHTLY
Minimized code
//> using scala "3.2.0-RC1-bin-20220604-13ce496-NIGHTLY"
//> using platform "js"
//> using option "-coverage-out:."
@main def main = ()
Output
Referring to non-existent class java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent method java.io.FileWriter.write(java.lang.String)void
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent method java.io.FileWriter.write(int)void
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent method java.io.FileWriter.flush()void
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.io.FileWriter
called from private scala.runtime.coverage.Invoker$.$anonfun$2(java.lang.String)java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent method java.io.FileWriter.flush()void
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent method java.io.FileWriter.write(int)void
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent method java.io.FileWriter.write(java.lang.String)void
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.io.FileWriter
called from private scala.runtime.coverage.Invoker$.$anonfun$2(java.lang.String)java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.io.File
called from scala.runtime.coverage.Invoker$.measurementFile(java.lang.String)java.io.File
called from private scala.runtime.coverage.Invoker$.$anonfun$2(java.lang.String)java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.io.File
called from scala.runtime.coverage.Invoker$.measurementFile(java.lang.String)java.io.File
called from private scala.runtime.coverage.Invoker$.$anonfun$2(java.lang.String)java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.io.File
called from scala.runtime.coverage.Invoker$.measurementFile(java.lang.String)java.io.File
called from private scala.runtime.coverage.Invoker$.$anonfun$2(java.lang.String)java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent method constructor java.io.File.<init>(java.lang.String,java.lang.String)void
called from scala.runtime.coverage.Invoker$.measurementFile(java.lang.String)java.io.File
called from private scala.runtime.coverage.Invoker$.$anonfun$2(java.lang.String)java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.io.FileWriter
called from private scala.runtime.coverage.Invoker$.$anonfun$2(java.lang.String)java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent method constructor java.io.FileWriter.<init>(java.io.File,boolean)void
called from private scala.runtime.coverage.Invoker$.$anonfun$2(java.lang.String)java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.io.File
called from private scala.runtime.coverage.Invoker$.$anonfun$2(java.lang.String)java.io.FileWriter
called from scala.runtime.coverage.Invoker$.invoked(int,java.lang.String)void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
scala.runtime.coverage.Invoker$
coverage$package$
Referring to non-existent class java.security.SecureRandom
called from private java.util.UUID$.csprng$lzycompute()java.util.Random
called from private java.util.UUID$.csprng()java.util.Random
called from java.util.UUID$.randomUUID()java.util.UUID
called from static java.util.UUID.randomUUID()java.util.UUID
called from constructor scala.runtime.coverage.Invoker$.<init>()void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
java.util.UUID$
coverage$package$
Referring to non-existent class java.security.SecureRandom
called from private java.util.UUID$.csprng$lzycompute()java.util.Random
called from private java.util.UUID$.csprng()java.util.Random
called from java.util.UUID$.randomUUID()java.util.UUID
called from static java.util.UUID.randomUUID()java.util.UUID
called from constructor scala.runtime.coverage.Invoker$.<init>()void
called from coverage$package$.main()void
called from static main.main([java.lang.String)void
called from core module module initializers
involving instantiated classes:
java.util.UUID$
coverage$package$
Not showing 179 more linking errors
Exception in thread "main" org.scalajs.linker.interface.LinkingException: There were linking errors
at org.scalajs.linker.frontend.BaseLinker.reportErrors$1(BaseLinker.scala:91)
at org.scalajs.linker.frontend.BaseLinker.$anonfun$analyze$5(BaseLinker.scala:100)
at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:467)
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:597)
at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:194)
[error] Error linking Scala.js
Expectation
Scoverage for Scala 2 is supported on Scala.js, so it should be on Scala 3 as well.
This is complicated by two things:
- The use of UUID. See:
- Varying APIs for filesystem access in JavaScript runtimes. See:
Either these changes need to be ported to Dotty, or I wonder if a better solution might be to shell out to the Scala 2 runtime with for3Use2_13
.