3.7.3-RC1
Pre-release
Pre-release
·
118 commits
to main
since this release
Changes and fixes
Desugaring
Enums
- Make hashcode of enum items stable #23218
Erasure
- Replace erased class modifiers with Erased base traits #23447
- Bring back part of PruneErasedDefs #23466
Experimental: Capture Checking
- Fix parsing crash for update in later phases #23390
- Implement boxing for singleton type arguments #23418
- Expand Capability types also in arguments of Capability classes #23427
- Adjustments to the capability trilogy #23428
- Set context owner to the method for
paramsToCap
#23436 - Flatten nested capture sets in retainedElementsRaw #23571
- Fix well-formed test for capabilities #23393
- Add restricted capabilities
x.only[C]
#23485 - Rely on hidden sets for use checking #23580
Experimental: Seperation Checking
- Make separation checking controlled by language import #23560
Experimental: Erased Definitions
- Refactorings and fixes to erased definition handling #23404
Experimental: Explicit Nulls
- Add quick fix to remove unnecessary .nn #23461
- Add
stableNull
annotation to force tracking mutable fields #23528
Experimental: Global Initialization
- Rewrite resolveThis in global init checker #23282
- Fix errors in the global initialization checker when compiling bootstrapped dotty #23429
- Fix error in product-sequence match in global init checker #23480
Experimental: Into
- Fix isConversionTargetType test #23401
Experimental: Modularity
- Refinements to skolemizaton #23513
Experimental: Unroll
- Enable UnrollDefinitions phase in REPL frontend phases #23433
Extension Methods
- Avoid forcing extension on check of local select #23439
Implicits
- Refine implicit search fallbacks for better ClassTag handling #23532
Inline
- Fix Symbol.info remapping in TreeTypeMap #23432
- Fail not inlined inline method calls early #22925
- Fix inline export forwarder generation regression #23126
Linting
- Consider setter of effectively private var #23211
- Add accessible check for import usage #23348
- Check OrType in interpolated toString lint #23365
- Use result of lambda type of implicit in CheckUnused #23497
Match Types
Named Tuples
- Skip bypassing unapply for scala 2 case classes to allow for single-element named tuple in unapply #23603
Parser
- Enforce
-new-syntax
under-language:future
#23443 - Disallow Scala 2 implicits under
-source:future
#23472
Pattern Matching
- Fix problems in checking that a constructor is uninhabited for exhaustive match checking #23403
Pickling
- Don't force annotation unpickling when testing for SilentIntoAnnot #23506
- Drop invalid assumption from TastyUnpickler #23353
Printer
- Print update modifier when printing update method definitions #23392
Positions
- Compare span points in pathTo to determine best span #23581
- Add line number magic comment support #23549
Presentation Compiler
- Port Inlay hints for name parameters #23375
- Fix: Simplify infer type for apply #23434
- Fix: Inconsistent annotation tooltips #23454
- Fix adjust type when already exists #23455
- Exclude named parameters inlay hints for java defined #23462
- Fix: StringIndexOutOfBoundsException in presentation compiler's hasColon method #23498
- Add InferredMethodProvider for automatic method signature generation #23563
- Fix completions for Quotes #23619
- Handle default arguments in named parameters for inlay hints #23641
Quotes
- Skip splice level checking for
<refinement>
symbols #22782 - Fix stale top level synthetic package object being used in later runs #23464
- Emit an error for quoted pattern type variable after
new
#23618 - Fix issue with certain polyfunctions not properly matching in macros #23614
- Check PCP of constructor calls on the type #7531
Reflection
- Quotes reflect: sort the typeMembers output list and filter out non-members #22876
Reporting
- Add an explainer to the DoubleDefinition error #23470
- Suppress warnings in comprehensions with 22+ binds #23590
- Unhelpful error message when trying to use named extraction, when not matching case class or named tuple #23354
- Improve error message for conflicting definitions #23453
-Yprofile-trace
properly report macro splicing source #23488-Yprofile-trace
profiles all inline calls #23490
Rewrites
Scaladoc
- Scaladoc: fixes and improvements to context bounds and extension methods #22156
- Encode path of class #23503
SemanticDB
- Bugfix: Also save infos in semanticdb #23587
Settings
- Standardize on
-Vprint:...
(still support-Xprint:...
as alias) #22828
Transform
- Handle multiple type parameter lists in value class methods #23516
- Check path of module prefix for tailrec #23491
Tuples
- Normalize tuple types in var args seq literals and classOf instances #23465
Typer
- Fix #22922: Add TypeParamRef handling in isSingletonBounded #23501
- Fix this references everywhere in dependent function types #23514
- Don't approximate a type using
Nothing
as prefix #23531 - Support cleanup actions in class completers #23515
- Fix regressions in asSeenFrom introduced in 3.7 #23438
- Use correct owner in eta expansion #7564
- Fix irrefutability checking in
for
with untupling #23273 - Fix missing members reporting for var setters #23476
- Guard against invalid prefixes in argForParam #23508
- Add missing case to TypeComparer #23550
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.7.2..3.7.3-RC1
these are:
80 Martin Odersky
56 Hamza Remmal
22 Wojciech Mazur
20 noti0na1
18 Yichen Xu
16 Som Snytt
14 Jan Chyb
9 Matt Bovel
7 EnzeXing
6 Guillaume Martres
5 Sébastien Doeraene
5 aherlihy
4 Zieliński Patryk
3 Oliver Bračevac
3 Tomasz Godzik
2 Alexander
2 Mikołaj Fornal
2 Piotr Chabelski
2 Seyon Sivatharan
1 Alex1005a
1 HarrisL2
1 Jan
1 Jentsch
1 Jędrzej Rochala
1 Katarzyna Marek
1 Marc GRIS
1 Martin Duhem
1 Patryk Zieliński
1 Przemysław Sajnóg
1 Seth Tisue
1 Wessel W. Bakker
1 bingchen-li
1 kijuky