Closed
Description
Compiler version
3.1.2
Minimized code
Taken from the docs
// in file HelloYou.scala
object HelloYou extends App {
if (args.size == 0)
println("Hello, you")
else
println("Hello, " + args(0))
}
Compile with scalac HelloYou.scala
then run with scala HelloYou Spam
Output
Compilation succeeds, but running scala HelloYou Spam
crashes:
CLICK TO EXPAND
➜ scala HelloYou Spam
java.lang.NullPointerException
at java.base/java.lang.reflect.Array.getLength(Native Method)
at scala.collection.ArrayOps$.size$extension(ArrayOps.scala:202)
at Hello$.<clinit>(Hello.scala:2)
at Hello.main(Hello.scala)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at dotty.tools.runner.RichClassLoader$.run$extension$$anonfun$1(ScalaClassLoader.scala:36)
at dotty.tools.runner.ScalaClassLoader$.asContext(ScalaClassLoader.scala:80)
at dotty.tools.runner.RichClassLoader$.dotty$tools$runner$RichClassLoader$$$asContext$extension(ScalaClassLoader.scala:18)
at dotty.tools.runner.RichClassLoader$.run$extension(ScalaClassLoader.scala:36)
at dotty.tools.runner.CommonRunner.run(ObjectRunner.scala:23)
at dotty.tools.runner.CommonRunner.run$(ObjectRunner.scala:13)
at dotty.tools.runner.ObjectRunner$.run(ObjectRunner.scala:48)
at dotty.tools.runner.CommonRunner.runAndCatch(ObjectRunner.scala:30)
at dotty.tools.runner.CommonRunner.runAndCatch$(ObjectRunner.scala:13)
at dotty.tools.runner.ObjectRunner$.runAndCatch(ObjectRunner.scala:48)
at dotty.tools.MainGenericRunner$.run$1(MainGenericRunner.scala:212)
at dotty.tools.MainGenericRunner$.main(MainGenericRunner.scala:267)
at dotty.tools.MainGenericRunner.main(MainGenericRunner.scala)
Expectation
scala HelloYou Spam
should work correctly and print Hello, Spam
.
Works as expected when compiled and run with Scala 2.