Highlights of the release
- Bump Scala CLI to v1.9.1 (was v1.9.0) #23962
- Make coverage more similar to the one in Scala 2 #23722
Deprecations for removal
- Deprecate
scala_legacy/MainGenericRunner/scalac -run/scalac -replfor removal #24267
Other changes and fixes
Context Functions
- Explain no expansion of ContextFunction0 #23844
Experimental: Capture Checking
- Fix #23737: Update superCallContext to include dummy capture parameters in scope #23740
- Fix separation checking for function results #23927
- Simple enhancement for pattern matching with capturing types #23524
- Don't check bounds in match type cases at CC #23738
Experimental: Explicit Nulls
- Add warnings for inferred flexible types in public methods and fields #23880
Exports
- Refine isEffectivelyFinal to avoid no-owner crash #23675
Implicits
- Fix LiftToAnchors for higher-kinded type applications #23672
- Fix implicit scope liftToAnchors for parameter lower bounds #23679
Linting
- Invent given pattern name in for comprehension #23121
- Unused var message mentions unread or unset #23719
- Lint function arrow intended context function #23847
- Always traverse Inlined.call in linter #24043
- Ignore warnings when compiletime.testing is imported #24036
- Lint avoids revisiting Inlined.call #24277
- Register no elements for lint after inlining #24279
- Use enclosing enclosingInlineds for empty call #24281
- Exclude synthetic opaque proxy from lint #24264
Match Types
- Fix
derivesFromfalse negative inprovablyDisjointClasses#23834
Parser
- Improve message for nested package missing braces #23816
- Fix: Allow postfix setters under language.postfixOps #23775
- Fix Java record varargs field accessor #24172
Pattern Matching
- Fix: do not transform
IdenttoThisin PostTyper anymore #23899 - Call inhabited for AppliedType recursively #23964
- Fix false unreachable case warning #23800
- Add subtype-based fallback in inferPrefixMap and recalculate constraints after application #23771
Presentation Compiler
- Additional completions for using clause #23647
- Completions - do not add
[]for... derives TC@@#23811 - Improve symbol order in completions provided by the presentation compiler #23888
- Porting XRayModeHints #23891
- Go to definition and hover for named args in pattern match #23956
- Fix parameter untupling for named tuples (#23440) #24152
- Fix possible SuspendException thrown when using macros #24174
- Fix completions for named tuples #24169
Reporting
- Do not discard amended format when f-interpolator warns #23697
- Mention named givens in double def explainer #23833
- Compute the right span for abstract error messages #23853
- Add quick fix to add .nn #23598
- Add addendum to
private valparameter variance error message #23876 - Fix compiler crash with
-Ymagic-offset-header#24124
Rewrites
- Deduplicate patches before applying them to sources #24215
Scaladoc
- Indicate optional parameters with
= ...#23676 - Scaladoc Support for Capture & Separation Checking #23607
- Capture Calcuclus: don't eagerly drop caps on parameters #23759
- Fix rendering of function-type aliases #24042
SemanticDB
Tuples
- Fix: make vals created in desugaring of n-ary lambdas non-synthetic #23896
Typer
- Prevent crash in SAM conversion with mismatched arity #23877
- Handle assertion error in TyperState #23665
- Correctly require a
ClassTagwhen building a multidimensionalArray#23902 - Make isExactlyNothing and isExactlyAny work for And/OrTypes #24016
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.7.3..3.7.4 these are:
23 Wojciech Mazur
16 Som Snytt
11 noti0na1
6 Martin Odersky
5 Eugene Flesselle
4 Hamza Remmal
4 Natsu Kagami
4 Oliver Bračevac
4 Seyon Sivatharan
3 Piotr Chabelski
3 Tomasz Godzik
3 Yoonjae Jeon
3 dependabot[bot]
2 Jan Chyb
2 Kacper Korban
2 Katarzyna Marek
2 Li Haoyi
2 Matt Bovel
2 aherlihy
1 Florian3k
1 HarrisL2
1 Martin Duhem
1 Paweł Perłakowski
1 Vadim Chelyshov
1 Yichen Xu
1 Zieliński Patryk
1 katrinafyi
1 vder
1 zielinsky