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
- Parse
native
in Java bytecode as@native
#16232
Opaque Types
- Disallow opaque type aliases of context functions #16041
Overloading
- Fix curried overloading resolution for polymorphic methods #16485
Parser
- Align implementation with spec of soft modifiers #15961
Pattern Matching
- Fix redundancy (unreachability) warning #16179
- Teach
SpaceEngine
that generic tuples are irrefutable #16051 - Fix exhaustivity warning #16168
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 forsummonFrom
#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
andOccurrence
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 Scala 2.x classes #16014 - Fix mapping
TypeMap
s 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
- Compute completions at
typerPhase
#16371 - Only include accessible base classes in
orDominator
#16477
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
these are:
86 Martin Odersky
24 Yichen Xu
23 Quentin Bernet
19 Dale Wijnand
18 Michael Pollmeier
13 Paweł Marks
8 Fengyun Liu
7 Guillaume Raffin
7 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