Edit this page on GitHub

Dropped: DelayedInit

The special handling of the DelayedInit trait is no longer supported.

One consequence is that the App class, which used DelayedInit is now partially broken. You can still use App as a simple way to set up a main program. Example:

object HelloWorld extends App {
  println("Hello, world!")
}

However, the code is now run in the initializer of the object, which on some JVMs means that it will only be interpreted. So, better not use it for benchmarking! Also, if you want to access the command line arguments, you need to use an explicit main method for that.

object Hello:
  def main(args: Array[String]) =
    println(s"Hello, ${args(0)}")

On the other hand, Scala 3 offers a convenient alternative to such "program" objects with @main methods.