Announcing Dotty 0.16.0-RC3

Today, we are excited to announce the 16th release of Dotty. The development of Dotty continues according to our schedule but today, Tuesday June the 11th, we are electrified as it is the first day of Scala Days 2019 which marks the 10th anniversary of Scala Days. With this release we are getting closer to the envelope of the new features that Dotty plans to offer :tada::partying_face:

You can learn more about the changes from the blog post:

Notable Changes

Language & Syntax

  • Use =>> for type lambdas #6558
  • Use ? for wildcards #6610
  • Rename implied to delegate #6649

Type System Improvements

  • Intersection based gadts #6398
  • Improve opaque types (simpler implementation strategy, disallowing opaque as a local modifier and more) #6567

Compiler Development

  • Implement Tuple operation directly in the compiler #6539
  • Add mini-phase to fix constructors for enums extending java.lang.Enum #6602
  • Remove dependency on scala-xml #5597
  • New typeclass derivation scheme #6531


Thank you to all the contributors who made this release possible :tada:

According to git shortlog -sn --no-merges 0.15.0-RC1..0.16.0-RC3 these are:

    88  Martin Odersky
    51  Anatolii
    48  Nicolas Stucki
    26  Guillaume Martres
    21  Miles Sabin
    19  Liu Fengyun
    12  Aleksander Boruch-Gruszecki
    11  Sébastien Doeraene
     8  Aggelos Biboudis
     4  Olivier Blanvillain
     3  Eugene Yokota
     1  Dale Wijnand
     1  Allan Renucci
     1  Olivier ROLAND

Reporting Bugs

If you encounter a bug, please open an issue! :pray:


Personally, I am most excited about the ability to write Java-compatible enums! Just extend java.lang.Enum, and it works!

enum A extends java.lang.Enum[A] {

enum B(val gravity: Double) extends java.lang.Enum[B] {
  case EARTH extends B(9.8)
  case JUPITER extends B(100)
  case MOON extends B(4.3)
  case Foo extends B(10)

See the test cases here: