Migrate to Scala 3
Created by: mario-bucev
Note: targets the scala-3.x
branch.
Notable changes:
-
implicit val
are replaced by the newgiven
/using
feature. It more or less works the same as before, except thatgiven
instances must be explicitly brought in scope.- For instance, in Scala 2,
import symbols._
would also bring the implicitSymbols
instance in scope. Withgiven
/using
, thegiven
instance can be brought withimport symbols.given
- For instance, in Scala 2,
- Early-initializer (e.g.
new { val program: p.type = p } extends XYZ
) are replaced by defining local classes overriding the fields in the early-initializer (e.g.class Impl(override val program: p.type) extends XYZ; new Impl(p)
)