3.0.2
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
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! 🙏