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
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
Match Types
- Fix
derivesFrom
false negative inprovablyDisjointClasses
#23834
Parser
- Improve message for nested package missing braces #23816
- Fix: allow postfix setters under language.postfixOps #23775
Pattern Matching
- Fix: do not transform
Ident
toThis
in 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
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 val
parameter variance error message #23876
Scaladoc
- Indicate optional parameters with
= ...
#23676 - Scaladoc Support for Capture & Separation Checking #23607
- Capture Calcuclus: don't eagerly drop caps on parameters #23759
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
ClassTag
when 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-RC1
these are:
12 Som Snytt
11 noti0na1
11 Wojciech Mazur
6 Martin Odersky
5 Eugene Flesselle
4 Hamza Remmal
4 Natsu Kagami
4 Seyon Sivatharan
3 Oliver Bračevac
3 Yoonjae Jeon
3 dependabot[bot]
2 Jan Chyb
2 Katarzyna Marek
2 Matt Bovel
1 HarrisL2
1 Kacper Korban
1 Martin Duhem
1 Paweł Perłakowski
1 Piotr Chabelski
1 Tomasz Godzik
1 Vadim Chelyshov
1 Yichen Xu
1 Zieliński Patryk
1 aherlihy
1 katrinafyi
1 vder
1 zielinsky