github scala/scala3 3.0.2

latest releases: 3.5.1, 3.5.2-RC1, 3.3.4-RC4...
3 years ago

Notable Changes

Language & syntax

  • Don't insert semicolons in conditions unless indented #12801
  • Add escape hatch Selectable.WithoutPreciseParameterTypes #12268
  • Add Matchable to the parents of Null in explicit nulls #12697

Scaladoc

  • Add no links warning setting to scaladoc #12936
  • Search for methods also by type signature #12375

Metaprogramming

  • Map opaque types in arguments of inlined calls to proxies #12922
  • Don't forget side effects in prefixes of inlined function calls #12842
  • Drop "no inlines with opaques" implementation restriction #12815
  • Detect abstract inline method calls after inlining #12777
  • Fix implicit ValueOf synthesis #12615

Other improvements

  • Add Scala 3 batch commands for Windows #13006
  • Fix #12981: show diagnostics levels (warn | error) in REPL #13000
  • Use WeakHashSet instead of HashSet for hash-consing types #12935
  • Balance And/Or types when forming lubs and glbs #12928
  • Restricts isInstanceOf[Null] checks #12905
  • Add support for shallow capture sets #12875
  • Drop implementation restriction for polymorphic functions #12863
  • Preserve hard unions in more situations #12654
  • Better support type-heavy pattern matches #12549

Other bug fixes

  • Fix #13046: override is a valid identifier in Java, not a keyword #13048
  • Don't emit Java generic signatures for constructors #13047
  • Exhaustivity warnings on nested case classes #13030
  • Refine overriding pairs in RefChecks #12982
  • Let annotations on parameters see preceding type parameters #12980
  • Retain transparent flag on exports #12978
  • Widen unions before finding members #12925
  • ProtoTypes#normalizedCompatible: keep more constraints #12924
  • Detect provisional superclasses and recompute them in Typer #12912
  • Properly handle self-types in reflection member lookup #12893
  • Use Java rules for member lookup in .java sources #12884
  • Hide problematic static forwarders #12860
  • When checking tp1 <:< tycon2[args2], widen tp1 to reveal application #12846
  • Skip contexts for implicit search when resolving imports #12816
  • Insert conversions also on selections wrapped in type applications #12719
  • Emit generic signature for static forwarders to nullary methods #12710
  • Always generate a partial function from a lambda #12670
  • Fix #12572: Ignore default accessor bridges in non-native JS classes. #12657
  • Do not update source positions once initizlized #13201
  • Pick right type parameters for opaqueToBounds in TreeUnpickler #13206
  • Avoid crash by relaxing TyperState assertion #13150

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.0.1..3.0.2 these are:

    94  Martin Odersky
    60  Liu Fengyun
    47  Kacper Korban
    28  Filip Zybała
    18  Andrzej Ratajczak
    17  Guillaume Martres
    15  Jamie Thompson
    10  bjornregnell
     9  tanishiking
     8  Dylan Halperin
     8  Anatolii Kmetiuk
     8  Tom Grigg
     7  Paweł Marks
     5  Som Snytt
     5  changvvb
     5  Michał Pałka
     5  Krzysztof Romanowski
     4  Aleksander Boruch-Gruszecki
     4  Sébastien Doeraene
     4  Nicolas Stucki
     3  Phil
     3  Magnolia.K
     2  xuwei-k
     2  Ben Plommer
     2  Florian Schmaus
     2  Lukas Rytz
     2  Maciej Gorywoda
     2  Markus Sutter
     2  Roman Kotelnikov
     2  Stéphane Micheloud
     2  noti0na1
     2  vincenzobaz
     1  Ondrej Lhotak
     1  KazuyaMiayshita
     1  odersky
     1  Julian Mendez
     1  Anton Sviridov
     1  GavinRay97
     1  EnzeXing
     1  Tomas Mikula
     1  Tomasz Godzik
     1  Vaastav Arora
     1  Vadim Chelyshov
     1  Will Sargent
     1  Zofia Bartyzel
     1  Dale Wijnand
     1  Bjorn Regnell
     1  dmitrii.naumenko
     1  Adrien Piquerez
     1  Meriam Lachkar
     1  Martin
     1  Olivier Blanvillain
     1  Lorenzo Gabriele

Reporting Bugs

If you encounter a bug, please open an issue! 🙏

Don't miss a new scala3 release

NewReleases is sending notifications on new releases.