Skip to content

3.7.3-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 06 Aug 08:00
· 118 commits to main since this release
afc19b9

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

  • Fix: #23261 Distinguish 0.0 and -0.0 in ConstantType match types #23265

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

  • Patch empty implicit parens on error recovery #22835
  • Rewrite underscore with optional space #23525

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