-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
For the following code, it can run normally:
object Main {
val a = null.asInstanceOf[Nothing]
def main(args: Array[String]): Unit = {
}
}
But NullPointerException will only be thrown when using a:
object Main {
val a = null.asInstanceOf[Nothing]
def main(args: Array[String]): Unit = {
a
}
}
sbt:dotty-simple> run
[info] Compiling 1 Scala source to /home/glavo/IdeaProjects/dotty/test/target/scala-0.8/classes ...
[info] Done compiling.
[info] Packaging /home/glavo/IdeaProjects/dotty/test/target/scala-0.8/dotty-simple_0.8-0.1.0.jar ...
[info] Done packaging.
[info] Running Main
[error] (run-main-6) java.lang.NullPointerException
[error] java.lang.NullPointerException
[error] at Main$.a(Main.scala:2)
[error] at Main$.main(Main.scala:4)
[error] at Main.main(Main.scala)
[error] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] at java.lang.reflect.Method.invoke(Method.java:498)
[error] at sbt.Run.invokeMain(Run.scala:93)
[error] at sbt.Run.run0(Run.scala:87)
[error] at sbt.Run.execute$1(Run.scala:65)
[error] at sbt.Run.$anonfun$run$4(Run.scala:77)
[error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] at sbt.util.InterfaceUtil$$anon$1.get(InterfaceUtil.scala:10)
[error] at sbt.TrapExit$App.run(TrapExit.scala:252)
[error] at java.lang.Thread.run(Thread.java:748)
[error] java.lang.RuntimeException: Nonzero exit code: 1
[error] at sbt.Run$.executeTrapExit(Run.scala:124)
[error] at sbt.Run.run(Run.scala:77)
[error] at sbt.Defaults$.$anonfun$bgRunTask$5(Defaults.scala:1172)
[error] at sbt.Defaults$.$anonfun$bgRunTask$5$adapted(Defaults.scala:1167)
[error] at sbt.internal.BackgroundThreadPool.$anonfun$run$1(DefaultBackgroundJobService.scala:366)
[error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] at scala.util.Try$.apply(Try.scala:209)
[error] at sbt.internal.BackgroundThreadPool$BackgroundRunnable.run(DefaultBackgroundJobService.scala:289)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] at java.lang.Thread.run(Thread.java:748)
[error] (Compile / run) Nonzero exit code: 1
[error] Total time: 1 s, completed 2018-4-29 12:40:42
I think NullPointerException or ClassCastException should be thrown when the conversion happens
Metadata
Metadata
Assignees
Labels
No labels