3.5.1
Highlights of the release
- Add sources of synthetic classes to sources jar #20904
Other changes and fixes
Annotations
- Preventing compilation of a
@tailrec
method when it does not rewrite, but an inner method does #20143 - #20145 - bugfix when a return tailrec is called inside a val def. #20652
Backend
- Fix EnclosingMethod for lifted anonfun #20558
- Emit switch bytecode when matching unions of a switchable type #20411
- Fix deterministically adding additional interfaces #20593
- Emit generatedNonLocalClass in backend when callback is not enabled #21186
Documentation
- Avoid jpath in example #20775
- Chore: Fix doc link in clauseInterleaving docstring #20590
- Chore: fix doc link in namedTuples docstring #20770
Erasure
- Don't re-balance AndTypes arising from supertypes #20400
GADTs
- Harden GADT constraint handling to survive illegal F-bounds #20325
Inferencing
Infrastructure
- Update
addToBackportingProject.scala
#20461 - Simple scripts to run non-bootstrapped compiler after 'sbt buildQuick' #19894
- Bump from 3.4.0 to 3.5.0-RC1 for MiMA #20404
- Set reference version to 3.5.0-RC4 #21175
- Bring back windows performance improvements #20423
- Bump scalacenter/sbt-dependency-submission from 2 to 3 #20440
- Fix incorrect paths to sha256 check sum files in release workflow #20709
- Bump VirtusLab/scala-cli-setup from 1.3.2 to 1.4.0 #20906
Inline
- Mark genSJSIR as disabled (rather than non-runnable) when no
-scalajs
. #20815 - Map over refs of
ImportType
s inTypeMap
#20837
Initialization
- More principled filtering of abstract values in initialization check #20548
Match Types
- TryCompiletimeConstantFold in disjointnessBoundary #20168
Pattern Matching
Presentation Compiler
- Add pattern completion for unapply contexts #20274
- Bugfix: Exclude newer LSP4j, which is built on JDK 11 #20771
- Chore: Bump mtags to latest stable #20442
- Weekly metals backport #20542
- Port pc find references from metals #20544
Quotes
- Add regression test for issue 20309 #20387
REPL
- Only consider methods with 0 parameters in valueOf #20543
Reflection
- Fix erasure crash for Inlined rhs of a context function closure #20398
- Fix #20458: do not expose ClassInfo in quotes reflect widenTermRefByName #20468
Reporting
- Fix error message on setter with wrong type #20444
- Add a specific error message for local final defs #20557
- Explain unresolvable references better #20477
- Add error code to diagnostics about unused code #19780
- Better error diagnostics for illegal match cases #20905
Runner
Scaladoc
- Fix handling of right associative extension methods across scaladoc and printers #20467
Specification
- Add binary lits to syntax summaries #19551
Settings
- Enhance help message for language flag #20247
- Accept legacy language features #20454
- Set default source version to 3.5 #20435
Tooling
- Improve source positions emited for synthetic unit in if-conditions #20431
- Adjust the API name entry for nested classes #20279
- Fix declaring product of straight-to-jar compilation #20592
Transform
- Correct Java signature for value classes appearing in type arguments #20463
Typer
- Retry
constraint.replace
afterconstraint.updateEntry
#20399 - Add special handling for comparisons with Singleton types #20474
- Reinstantiate restriction to transparent inline methods #20371
- Add regression test for #20288 fixed in #20527 #20857
- Fix isEffectivelySingleton #20486
- Fall back to direct subtype comparison at the end in dropIfSuper and dropIfSub #20523
- Mark AppliedType cachedSuper valid Nowhere when using provisional args #20527
- Fix healAmbiguous to compareAlternatives with disambiguate = true #21372
Experimentqal Changes
Capture Checking
- Fix soundness hole of forgotten reach capabilities #20524
- Drop
@capability
annotations #20396 - Fix symbol reference retrivial for
scala.caps.Caps
#20493 - Refactor adaptBoxed #20525
- Fix error related to reaches when using scala2-library-cc-tasty #20528
Named tuples
- Make NamedTuple.Empty an alias to NamedTuple #20502
- Move NamedTuple methods to separate scope. re-export #20504
- WidenDealias before extracting namedTupleElementTypes #20505
- Improve type inference for literal named tuples #20497
- Fix issue #20267 with regression test #20506
- Only set
AppliedType#validSuper
afterAppliedType#cachedSuper
#20553 - Fix NamedTuple selection on an unstable prefix #20455
- Allow
apply
adaptation on Selectable with Fields #20489
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.5.0..3.5.1
these are:
82 Martin Odersky
29 Wojciech Mazur
22 Hamza REMMAL
16 Jamie Thompson
15 Eugene Flesselle
14 Hamza Remmal
13 noti0na1
9 Katarzyna Marek
7 Fengyun Liu
7 Jan Chyb
6 Dale Wijnand
6 Guillaume Martres
5 Som Snytt
4 dependabot[bot]
3 Adrien Piquerez
3 Derek Wickern
3 Matt Bovel
3 OlegYch
2 Florian3k
2 Kacper Korban
2 Lucy Martin
2 Paweł Marks
2 Tomasz Godzik
1 Arnout Engelen
1 Eugene Yokota
1 João Ferreira
1 Kasper Kondzielski
1 Lucas Nouguier
1 Lukas Rytz
1 Mikołaj Fornal
1 Nafer Sanabria
1 Natsu Kagami
1 Seth Tisue
1 Sébastien Doeraene