Highlights of the release
- Make truncation by characters in repl configurable #16167
- New (experimental for now) lazy vals implementation #15296
Other changes and fixes
Coverage
- Make coverage instrumentation more robust #16235
Default parameters
- Resolve overloading: keep track of prefix and indices of all default getters #16009
Experimentals
- Let accessors inherit @experimental annotations from accessed symbols #16099
Extension Methods
- Fix i14451 #16010
GADTs
Initialization
- Code refactoring of initialization checker #16066
Inline
- Refine checking for outer references #16122
Java interoperability
Opaque Types
- Disallow opaque type aliases of context functions #16041
Parser
- Align implementation with spec of soft modifiers #15961
Pattern Matching
- Fix redundancy (unreachability) warning #16179
Polyfunctions
- Avoid checking purity of Apply without symbols #16221
Reporting
- Expose reason for unchecked warning #16086
- Refine AsSeenFrom approximation scheme #15957
- Better output under -Ydetailed-stats #15950
- Fix crash in -Vprofile code #16007
- Name stripped of module suffix must not be empty #15597
- Fix InlineMatch pos for
summonFrom
#16025
Rewrites
- Rewrites are UTF-8 #15622
Scala-JS
- Fix the detection of inferred types of
= js.native
. #16184 - Do not elide fields required for Scala.js interop semantics. #16187
Scaladoc
- Update quick links for new ui #15912
- Avoid parsing code comment twice #16154
- Make footer text configurable #16064
- Add typography fallback fonts #16063
SemanticDB
- Emit SymbolInformation and Occurrence for anonymous class #15865
- Fix regression in type apply synthetics #16031
Transform
- Fix creating forwarders for simple alias givens #16193
- Only check for Scala2LocalSuffix in methods on Scala2x classes #16014
- Fix mapping TypeMaps over annotations #15948
- Peephole optimization to drop .apply from partially applied methods #16022
Typer
- Fix approximateOr of (A & Double) | Null #16241
- Create boxed environments only for references and function values #16136
- Fix higher-order unification incorrectly substituting tparams #16181
- Handle copies of constrained type lambdas when determining an implicit scope #16159
- Create message for missing arguments #16158
- Make singleton types subtypes of their refined type #16135
- Disallow overriding val parameters #16096
- Avoid crash where creator proxies are referenced indirectly #16098
- Refine estimation of default arguments in overloading resolution #15962
- Harden canAssign #15963
- Fix isSubType for static objects filling in type projections #15959
- Fix expected type of TupleXXL unapply #16248
- Drop lazy recursive application in approximateParent #16073
- Type match with a match type when a match type is expected #15599
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.2.1..3.2.2-RC1
these are:
83 Martin Odersky
24 Yichen Xu
23 Quentin Bernet
18 Michael Pollmeier
17 Dale Wijnand
8 Fengyun Liu
8 Paweł Marks
7 Guillaume Raffin
6 Som Snytt
6 Szymon Rodziewicz
5 Kacper Korban
4 Chris Kipp
3 Matt Bovel
3 Rikito Taniguchi
2 Ben Hutchison
2 Florian3k
2 Guillaume Martres
2 Jamie Thompson
2 João Costa
2 Julien Richard-Foy
2 Lukas Rytz
2 Sébastien Doeraene
1 Anton Sviridov
1 Gabriel Volpe
1 Liang Yan
1 Noah Rosamilia
1 Ondra Pelech
1 Seth Tisue
1 Tomasz Godzik
1 Vadim Chelyshov
1 nmc.borst
1 nmcb
1 olsdavis