Skip to content

Releases: scala/scala3

3.8.0-RC1

19 Nov 13:09
73533c2

Choose a tag to compare

3.8.0-RC1 Pre-release
Pre-release

Highlights of the release

  • Require JDK 17+ #24146
  • Scala Standard Library is now compiled and published using Scala 3
  • Add explicit null checks to Scala 3 Standard Library #23566
  • Add capture-checking to Scala 3 Standard Library #23688
  • Add capture-checking to Scala 2 collections #23769
  • Extract REPL to be its own artifact #24243
  • SIP-57: Make runtimeChecked a standard feature #23262
  • SIP-62: Make better-fors a stable feature #23630
  • Preview SIP-71: Make into preview feature #24090
  • Experimental SIP-67: Strict equality pattern matching #23803
  • Experimental SIP-70: Allow multiple spreads in function arguments #23855
  • Experimental SIP-75: Allow single-line lambdas after : #23821
  • Experimental: Match if sub cases #23786

See the release thread on contributors.scala-lang.org for additional comments

Other changes and fixes

Annotations

  • Emit deprecation warnings when a symbol is annotated by a deprecated annotation #23906
  • Deprecate scala.annotation.elidable #23913
  • Deprecate scala.annotation.transparentTrait #23116

Experimental: Capture Checking

  • Move scala.caps.Pure to caps and make it non-experimental #23745
  • Make scala.caps.Pure transparent #23914
  • Make scala.caps.Capability non-experimental #23507
  • Check conformance to scala.caps.Pure upper bound only under cc #23784
  • Widen type parameters before box adaptation #23809
  • Level checking: distinguish between certain capset vars with same owner #24077
  • Implement FreshCap Handling for Classes and Objects #24136
  • Skip capture sets in checkNoPrivateLeaks and drop them in posttyper when cc is not enabled #23886
  • Changes around reaches and uses #23584
  • Revise capability hierarchy and fix classifiers #23656
  • Improve closure typing #23700
  • Better printing of capabilities in error messages #23701
  • More improvements to error messages #23721
  • CC Language Ref Polishings #23762
  • CC Language Reference Improvements v2 #23818
  • Changes in CC around classes, constructors, this #23874
  • Various fixes and simplifications #23881
  • Simplify Level Checking and Fix Errors #23934
  • Introduce precise refined types #24154
  • Fix unsoundness in APPLY and SELECT rules #24159
  • Fixes for mutability #24205
  • Implement inheritance condition for Mutable types #24253
  • Don't add cap when creating instances of capability classes. #24256
  • Changes to Fresh and Separation Checking #24112

Experimental: Explicit Nulls

  • Only nullify tasty if Yflexify-tasty is set; Refine FlexibleType nullification rules #23938
  • Apply flexible types to files compiled without explicit nulls #23386
  • Fix NotNullInfo in multi-case match #23864
  • Fix captureWildcards with FlexibleType #24070
  • Do not assume left is non-null if another branch is null in splitLast #24325

Experimental: Global Initalization

  • Modelling assigning to null in the global object initialization checker #23858
  • Fix global init checker unexpected by name #23859
  • Fix selection on safe value in the global object initialization checker #23860
  • Re-design Env of the global object init checker #24107

Experimental: Into

Experimental: Modularity

  • Simpler inference for tracked #22972

Implicits

  • Only check seen for LazyRef for TypeSizeAccumulator #20459
  • Derived members succeed other givens in cycle test #23898

Linting

  • Drill through type lambda for tree symbol #23699
  • Warn unused masking imports, remove obsolete unused options #23757
  • Unused lint does not rewrite suppressed warnings #24055
  • Check for synthetic case methods in unused lint #24239

Match Types

  • Prioritize tree type over proto type when typing Binds #24175

Metaprogramming

  • Warn about encoded pkg obj names #22707

Named Tuples

  • Prohibit selection of tuples with members named apply. #24191
  • Add an Ordering given instance for named tuples #23379
  • Named tuple toMap extension method #23827

Opaque Types

  • Prevent opaque types leaking from transparent inline methods #23792
  • Make opaque types decomposable #24068

Parser

  • Make consume a soft modifier #23755

Pattern Matching

  • Fix false exhaustivity warning for seq match #23968
  • Use upper bound of abstract types in exhaustivity checking #23909

Pickling

  • Cleanup the type of UnApply trees in posttyper #24259

Presentation Compiler

  • Make sure that we can query tree.source #24123
  • Add unsafe RawPresentationCompiler implementation #24133

Reporting

  • Fix span of private this warning #23947
  • Improve printing of strings #22945
  • Better grouping of explanations in error messages #24155
  • Better error message: reassignment to val #24184

Reflection

  • Add missing apply constructors for Refined and TypeProjection TypeTrees #23837

REPL

  • Use PPrint to handle printing of REPL output values #23849
  • Invoke pprint reflectively #24119
  • Consider rendering prefix when pretty printing values in the REPL #24118
  • Trap Ctrl-C in the REPL: if no command is running clear the prompt, if some command is running ask for confirmation before exiting #24127
  • Re-implement Ammonite's Ctrl-C interruption for Scala REPL via bytecode instrumentation #24194
  • Remove pipes from multi-line REPL prompts #24307
  • Reintroduce reflective REPL pprint call. #24353

Scala Runner

  • Drop scala_legacy and MainGenericRunner #24244
  • Drop -run and -repl in MainGenericCompiler #24289
  • Bump Scala CLI to v1.10.0 (was v1.9.1) and Coursier to v2.1.25-M19 (was 2.1.24) #24362

Scaladoc

  • Add FlexibleType support for scaladoc #23320
  • Render @consume as the consume modifier #23754
  • Do not render consume update in scaladoc #23760

Scala.js

  • Upgrade to Scala.js 1.20.1. #23884
    -...
Read more

3.7.4

11 Nov 15:03
40be760

Choose a tag to compare

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 -repl for 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 derivesFrom false negative in provablyDisjointClasses #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 Ident to This 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
  • 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 val parameter 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

  • Add context parameters to SemanticDB synthetics #23381
  • Include synthetic apply in semanticdb #23629

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 multidimensional Array #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

3.7.4-RC3

30 Oct 09:25
b500347

Choose a tag to compare

3.7.4-RC3 Pre-release
Pre-release

Backported changes

  • 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
  • Deprecate scala_legacy/MainGenericRunner/scalac -run/scalac -repl for removal #24267

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.7.4-RC2..3.7.4-RC4 these are:

  4  Wojciech Mazur
  2  Piotr Chabelski
  2  Som Snytt

3.7.4-RC2

28 Oct 21:27
9f5ca71

Choose a tag to compare

3.7.4-RC2 Pre-release
Pre-release

Backported changes

  • Always traverse Inlined.call in linter #24043
  • Deduplicate patches before applying them to sources #24215
  • Fix compiler crash with -Ymagic-offset-header #24124
  • Fix completions for named tuples #24169
  • Fix java record varargs field accessor #24172
  • Fix parameter untupling for named tuples (#23440) #24152
  • Fix possible SuspendException thrown when using macros #24174
  • Fix rendering of function-type aliases #24042
  • Ignore warnings when compiletime.testing is imported #24036

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.7.4-RC1..3.7.4-RC2 these are:

  5  Wojciech Mazur
  2  Li Haoyi
  2  Som Snytt
  2  Tomasz Godzik
  1  Florian3k
  1  Kacper Korban
  1  Oliver Bračevac
  1  aherlihy

3.3.7

13 Oct 11:14

Choose a tag to compare

Highlights of the release

  • Warn a standard interpolator used toString on a reference type with -Wtostring-interpolated #20578
  • Unblock Scala 3 on Android #22632
  • Implement :jar (deprecate :require) in REPL #22343
  • Linting rework: In selector check, prefix of reference must match import qualifier #20894
  • Add REPL flag to quit after evaluating init script #22636
  • Warn if implicit default shadows given with -Wrecurse-with-default #23559

Other changes and fixes

Annotations

  • Approximate annotated types in wildApprox #22893
  • Fix copy of annotation on @main methods #22582

Coverage

  • Make coverage more similar to the one in Scala 2 #23722

CI

  • Disable Cats flaky tests #23007
  • Switch releasing to Sontype Central instead of legacy Sonatype OSS #23290
  • Revert dubious retry in vulpix #21801

Developer Experience

  • Add support for running the test sub-command with the bisect script #22796

Documentation

  • Improve the usage of inclusive language #22360
  • Update indentation.md to fix a typo #23505

Enums

  • Make hashcode of enum items stable #23218

Erasure

  • Add regression test for #23616 #23623
  • Disallow context function types as value-class parameters to avoid crashes #23015
  • Handle type aliases in contextFunctionResultTypeAfter #21517
  • Align erasure of Array[Nothing] and Array[Null] with Scala 2 #22517

Experimental: Erased definitions

  • Erased fields are not nullable #23311

Implicits

  • Refine implicit search fallbacks for better ClassTag handling #23532
  • Try extensions for arguments with type mismatch error #23212

Inline

  • Fix Symbol.info remapping in TreeTypeMap #23432

Lambda Lift

  • Fix: treat static vals as enclosures in lambdalift #22452
  • Fix: record calls to constructors in lambdaLift #22487

Linting

  • Check OrType in interpolated toString lint #23365
  • Consider setter of effectively private var #23211
  • Nowarn receiver of extension taking params #23351
  • Dealias when looking into imports #22889
  • Revert unconditional lint of Inlined expansion #22815
  • Warn unused member of anonymous class #22729
  • No warning for parameter of overriding method #22757
  • Lazy val def member is pattern var #22750
  • Ignore params to default arg getters #22749
  • Restore resolving prefixes of implicit Ident #22751
  • Exclude synthetic this.m, Any.m from import lookup #22695
  • Nowarn public implicit val class params #22664
  • Don't warn retainedBody #22510
  • Suppress spurious Suppression #22383
  • Handle Typeable #22663
  • CheckUnused checks span.exists before testing its parts #22504
  • Process Export for unused check #22984
  • Enclosing package p.q not visible as q #23069
  • Remove premature caching of lookups for unused lint #22982
  • Improve checking LHS of Assign #22977
  • Improve Unit ascription escape hatch #23147
  • Mention extension in unused param warning #23132
  • Dealias for unused param check #23256
  • Take inferred or explicit refinement result for unused check #23325
  • Add accessible check for import usage #23348
  • Use result of lambda type of implicit in CheckUnused #23497

Match Types

  • Handle NoType in TypeComparer.disjointnessBoundary #21520
  • Distinguish 0.0 and -0.0 in ConstantType match types #23265

Metaprogramming

  • Add a check for correct Array shape in quotes.reflect.ClassOfConstant #22033

Opaque Types

  • Fix stack overflow errors when generating opaque type proxies #22479

Optional Braces

  • Correctly detect colon lambda eol indent for optional brace of argument #22477

Overloading

  • Fail compilation if multiple conflicting top-level private defs/vals are in the same package #22759

Parser

  • Allow observing an indent after conditional #22611
  • No outdent at eof #22435
  • Fix annotations not expected in the middle of an array type by java parser #22391
  • Fix incorrect warning with -no-indent #23216

Pattern Matching

  • Fix issue in lazy symbol completion or bug in nested classfile parser #23634
  • Fix existing GADT constraints with introduced pattern-bound symbols #22928
  • Avoid crash in uninhab check in Space #22601

Pickling

  • Try to handle SkolemTypes in SingletonTypeTree during pickling #23236

Presentation Compiler

  • Compare span points in pathTo to determine best span #23581
  • Fix: Fix extracting refinements from intersection types in dynamic select hovers #23640
  • Completions for requests just before string #22894
  • Add enum type param support in sourceSymbol #18603
  • Use untpd.Tree instead of tpd.Tree for SelectionRangeProvider #22702
  • Fix: handle multiple params lists in for infer type #23197
  • Fix completion mode filtering + optimize scopeCompletions #23172
  • Add selection ranges for more names #23257
  • Add inlay hints for by-name parameters #23283
  • Add jpath to VirtualFile (for pc) #23203
  • Add X-Ray Inlay Hints #23891
  • Add using to completions when applicable #23647
  • Do not add [] after derives #23811

Quotes

  • Fix issue with static this references erroring in quoted code #22618
  • Skip splice level checking for symbols #22782
  • Fix stale top level synthetic package object being used in later runs #23464

REPL

  • REPL: JLine 3.29.0 (was 3.27.1) #22679
  • REPL: emit warning for the :sh command #22694

Reflection

  • Fix regression: do not approximate prefixes when using memberType in reflect API #22448
  • Forbid StringConstant(null) #23064
  • Quotes reflect: sort the typeMembers output list and filter out non-members #22876

Reporting

  • Register nowarn when inlining #22682
  • Filter help renders box border #22434
  • Fix incorrect warning on type ascription for backquoted identifiers #23088
    ...
Read more

3.7.4-RC1

29 Sep 18:38
39ebf6b

Choose a tag to compare

3.7.4-RC1 Pre-release
Pre-release

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 in provablyDisjointClasses #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 to This 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

  • Add context parameters to SemanticDB synthetics #23381
  • Include synthetic apply in semanticdb #23629

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 multidimensional Array #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

3.3.7-RC2

26 Sep 16:25
1e957ee

Choose a tag to compare

3.3.7-RC2 Pre-release
Pre-release

Backported fixes

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.3.7-RC1..3.3.7-RC2 these are:

     2  Tomasz Godzik
     1  Jan Chyb
     1  Vadim Chelyshov
     1  Zieliński Patryk
     1  vder

3.7.3

09 Sep 15:03
eb198cf

Choose a tag to compare

Release highlights

  • Warn if implicit default shadows given #23559
  • Standardize on -Vprint:... (still support -Xprint:... as alias) #22828

Other changes and fixes

Desugaring

  • Optimize simple tuple extraction #23373

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: Separation 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
  • Add suppression if nowarn differs #23652

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
  • Fix issue with pc breaking in requiredMethod on newly overloaded valueOf #23708
  • Handle default arguments in named parameters for inlay hints #23641
  • Fix extracting refinements from intersection types in dynamic select hovers #23640

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

Runner

  • Bump Scala CLI to v1.9.0 (was v1.8.4) #23702

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

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 setter...
Read more

3.7.3-RC3

04 Sep 08:46
350126f

Choose a tag to compare

3.7.3-RC3 Pre-release
Pre-release

Backported changes

  • Update scala-cli to 1.9.0 (was 1.8.5) #23861

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.7.3-RC2..3.7.3-RC3 these are:

  3 Wojciech Mazur

3.3.7-RC1

29 Aug 12:20

Choose a tag to compare

3.3.7-RC1 Pre-release
Pre-release

Highlights of the release

  • Warn if interpolator uses toString #20578
  • Fixes #15736 blocking Scala 3 on Android #22632
  • Implement :jar (deprecate :require) #22343
  • In selector check, prefix of reference must match import qualifier #20894
  • Fix #21242: Add REPL flag to quit after evaluating init script #22636
  • Warn if implicit default shadows given #23559

Other changes and fixes

Annotations

  • Approximate annotated types in wildApprox #22893
  • Fix copy of annotation on @main methods #22582

CI

  • Disable Cats flaky tests #23007

Developer Experience

  • Add support for running the test sub-command with the bisect script #22796

Documentation

  • Improve the usage of inclusive language #22360
  • Update indentation.md to fix a typo #23505

Enums

  • Make hashcode of enum items stable #23218

Erasure

  • Add regression test for #23616 #23623
  • Disallow context function types as value-class parameters #23015
  • Handle type aliases in contextFunctionResultTypeAfter #21517
  • Align erasure of Array[Nothing] and Array[Null] with Scala 2 #22517

Experimental: Erased definitions

  • Erased fields are not nullable #23311

Implicits

  • Refine implicit search fallbacks for better ClassTag handling #23532
  • Fix #20335: Try extensions for arguments with type mismatch error #23212

Inline

  • Fix Symbol.info remapping in TreeTypeMap #23432

Lambda Lift

  • Fix: treat static vals as enclosures in lambdalift #22452
  • Fix: record calls to constructors in lambdaLift #22487

Linting

  • Check OrType in interpolated toString lint #23365
  • Consider setter of effectively private var #23211
  • Nowarn receiver of extension taking params #23351
  • Dealias when looking into imports #22889
  • Revert unconditional lint of Inlined expansion #22815
  • Warn unused member of anonymous class #22729
  • No warning for parameter of overriding method #22757
  • Lazy val def member is pattern var #22750
  • Ignore params to default arg getters #22749
  • Restore resolving prefixes of implicit Ident #22751
  • Exclude synthetic this.m, Any.m from import lookup #22695
  • Nowarn public implicit val class params #22664
  • Don't warn retainedBody #22510
  • Suppress spurious Suppression #22383
  • Handle Typeable #22663
  • CheckUnused checks span.exists before testing its parts #22504
  • Process Export for unused check #22984
  • Enclosing package p.q not visible as q #23069
  • Remove premature caching of lookups for unused lint #22982
  • Improve checking LHS of Assign #22977
  • Improve Unit ascription escape hatch #23147
  • Mention extension in unused param warning #23132
  • Dealias for unused param check #23256
  • Take inferred or explicit refinement result for unused check #23325
  • Add accessible check for import usage #23348
  • Use result of lambda type of implicit in CheckUnused #23497

Match Types

  • Handle NoType in TypeComparer.disjointnessBoundary #21520
  • Fix: #23261 Distinguish 0.0 and -0.0 in ConstantType match types #23265

Metaprogramming

  • Add a check for correct Array shape in quotes.reflect.ClassOfConstant #22033

Opaque Types

  • Fix stack overflow errors when generating opaque type proxies #22479

Optional Braces

  • Correctly detect colon lambda eol indent for optional brace of argument #22477

Overloading

  • Fail compilation if multiple conflicting top-level private defs/vals are in the same package #22759

Parser

  • Allow observing an indent after conditional #22611
  • No outdent at eof #22435
  • Fix annotations being not expected in the middle of an array type by java parser #22391
  • Fix incorrect warning with -no-indent #23216

Pattern Matching

  • Fix issue in lazy symbol completion or bug in nested classfile parser #23634
  • Fix existing GADT constraints with introduced pattern-bound symbols #22928
  • Avoid crash in uninhab check in Space #22601

Pickling

  • Try to handle SkolemTypes in SingletonTypeTree during pickling #23236

Positions

  • Compare span points in pathTo to determine best span #23581

Presentation Compiler

  • Fix: Fix extracting refinements from intersection types in dynamic select hovers #23640
  • Completions for requests just before string #22894
  • Add enum type param support in sourceSymbol #18603
  • Use untpd.Tree instead of tpd.Tree for SelectionRangeProvider #22702
  • Fix: handle multiple params lists in for infer type #23197
  • Fix completion mode filtering + optimize scopeCompletions #23172
  • Add selection ranges for more names #23257
  • Add inlay hints for by-name parameters #23283
  • Add jpath to VirtualFile (for pc) #23203

Quotes

  • Fix issue with static this references erroring in quoted code #22618
  • Skip splice level checking for symbols #22782
  • Fix stale top level synthetic package object being used in later runs #23464

REPL

  • REPL: JLine 3.29.0 (was 3.27.1) #22679
  • Repl: emit warning for the :sh command #22694

Reflection

  • Fix regression: do not approximate prefixes when using memberType in reflect API #22448
  • Forbid StringConstant(null) #23064
  • Quotes reflect: sort the typeMembers output list and filter out non-members #22876

Reporting

  • Register nowarn when inlining #22682
  • Filter help renders box border #22434
  • Fix incorrect warning on type ascription for backquoted identifiers #23088
  • Add an explainer to the DoubleDefinition error #23470

Scaladoc

Settings

  • Chore: filter allowed source versions by import and by settings #23215

Testing framework

  • Revert dubious retry in vulpix #21801

Transform

  • Check only stable qual for import prefix #22633
  • Warn trivial recursion with module prefix #23278

Tuples

  • Normalize tuple types ...
Read more