Skip to content

Releases: scala/scala3

3.6.4

07 Mar 12:08
Compare
Choose a tag to compare

Highlights of the release

  • Support for JDK 24 #22250
  • REPL :silent command to toggle automatic printing of outputs #22248
  • REPL --repl-init-script: setting to run a code on startup #22206
  • Deprecated setting -Xno-decode-stacktraces is now an alias to -Xno-enrich-error-messages #22208
  • Annotation arguments are no longer lifted #22035
  • Experimental Capture Checking: Implement tracked members #21761

Breaking changes

  • Align @implicitNotFound and @implicitAmbigous with the language specification #22371

    This change may impact users who previously used these annotations using variables or string interpolation.

    Previously, a bug in the Scala 3 compiler allowed non-literal strings to be passed as arguments to the @implicitNotFound and @implicitAmbiguous annotations.
    This could have affected how failed implicit search results were reported by the compiler.

    Starting from Scala 3.6.4, the arguments for these annotations must be string literals.
    If a message is too long, it can be concatenated using the + operator, allowing for constant folding.

Other changes and fixes

Annotations

  • Make sure symbols in annotation trees are fresh before pickling #22002
  • Consider all arguments in Annotations.refersToParamOf #22001
  • Do not lift annotation arguments (bis) #22046

Desugaring

  • Fix #22051: only trust the type application part for case class unapplies #22099

Documentation

  • Update example code linked to obsolete content in macros-spec.md #22256

Experimental: Capture Checking

Experimental: Global Initialization

  • Fix crash when initializing val in ByName closure #22354

Experimental: Named Tuples

  • Handle TypeProxy of Named Tuples in unapply #22325
  • Fail more eagerly when trying to adapt named unapply patterns #22315
  • Widen singleton types when computing fields from .Fields #22149
  • Fix .toTuple insertion #22028

Extension Methods

  • Tweak ExtensionNullifiedByMember #22268
  • Nowarn extension matching nonpublic member #21825

Implicits

  • Rollback constraints in compareAppliedTypeParamRef #22339
  • Try implicit searching after finding dynamic select #22318

Linting

  • Allow discarding "Discarded non-Unit" warnings with : Unit #21927

Match Types

  • Fix #21841: Check more that an unapplySeq on a NonEmptyTuple is valid. #22366
  • Type avoidance in MT bound inference #22142

Metaprogramming

  • Rethrow SuspendExceptions caught in CodeGen phase #22009

Metaprogramming: Compile-time

  • Extend compiletime.testing.typechecks with certain transform phases #21185

Nullability

  • Fix #21619: Refactor NotNullInfo to record every reference which is retracted once. #21624

Presentation Compiler

  • Use new infer expected type for singleton complations #21421
  • Fix match error in keyword completions #22138

Reflection

  • Do not return java outline dummy constructor in primaryConstructor #22104

Reporting

  • Normalise the types for Type Mismatch Error (E007) #22337
  • Improve given search preference warning #22189
  • Better error messages when an enum derives from AnyVal #22236
  • Correctly print litteral types in the refined printer #22351

Rewrites

  • Undo patch of double-block apply #21982

Scaladoc

  • Scaladoc: Add support for named tuples #22263

Settings

  • Limit exposure to ConcurrentModificationException when sys props are replaced or mutated #22180

Specification

  • Align the spec to allow the marker #22323
  • Integrate the specification for match types. #22164

Transform

  • Fix #22226: Use classOf[BoxedUnit] for Unit array in ArrayConstructors. #22238

Typer

  • Fixes for isLegalPrefix change #22241
  • Resolve name when named imp is behind wild imps #21888

Contributors

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

According to git shortlog -sn --no-merges 3.6.3..3.6.4 these are:

    46  Martin Odersky
    33  noti0na1
    24  Wojciech Mazur
    14  Dale Wijnand
    13  Matt Bovel
    11  Hamza Remmal
     7  Jan Chyb
     6  aherlihy
     5  Kacper Korban
     5  Seth Tisue
     5  Som Snytt
     4  Oliver Bračevac
     4  Yichen Xu
     3  Sébastien Doeraene
     3  dependabot[bot]
     3  kasiaMarek
     2  João Ferreira
     1  David Hua
     1  Eugene Flesselle
     1  Eugene Yokota
     1  Florian3k
     1  Jędrzej Rochala
     1  Kenji Yoshida
     1  Mathias
     1  Natsu Kagami
     1  Oleg Zenzin
     1  Piotr Chabelski
     1  Rui Chen
     1  philippus
     1  rochala
     1  xiaoshihou

3.6.4-RC2

28 Feb 22:29
Compare
Choose a tag to compare
3.6.4-RC2 Pre-release
Pre-release

Reverted changes

  • Revert "Drop phase.isTyper use in isLegalPrefix/asf" from Scala 3.6.4 #22653

Contributors

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

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

     5  Wojciech Mazur

3.3.5

29 Jan 11:54
Compare
Choose a tag to compare

Highlights of the release

  • Use Scala 2.13.15 standard library #21648
  • Support JDK 23 #20144
  • Add the -Wall option that enables all warnings #20577

Breaking changes

  • Aligned -Wconf parsing order with Scala 2 semantics: -Wconf:x,y now means -Wconf:x -Wconf:y, with y overruling x, rather than the reverse to align with Scala 3.4+ and with user intuition #21985

Other changes and fixes

Annotations

  • Tighten java annot value parsing #21650

Exports

  • Re-use attachment in exportForwarders to handle ambiguous overloads #21518
  • Allow export statements in AnyVal #21653

Extension Methods

  • Make right assoc ext method fwd refs error #21641

Inference

  • Fix #20521: Optimise caching for computing atoms and widened in OrTypes #21223

Linting

  • Add origin filter to WConf, DeprecationWarning #21404
  • CheckUnused checks type param annotations #20549

Match Types

  • Fix #20897: Make Nothing ⋔ Nothing, as per spec. #21241
  • Always interpret underscores inside patterns as type bounds #21718

Overloading

  • Report only non-overridden unimplemented members #21337

Parser

  • Harden skip in Scanner #21607
  • SimplePattern errors should now be recovered as wildcard instead of unimplemented expr #21438

Positions

  • Fix trailing comma Ident's span #20445

Presentation Compiler

  • Fix autoimports with using directives #21590
  • Remove artificial CURSOR added to code in the completions #20899
  • Help implement Metals' infer expected type feature #21390
  • Weekly metals backport #21343
  • Change mock symbol search #21296
  • Fix: completions when parenthesis already provided #21299
  • Backport from metals #21196
  • Fix: don't add suffix if brackets already present #21259

Quotes

  • Handle suspension due to macro call in arbitrary phases #21651
  • Have a better error message when healing types #21711
  • Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType) #20494
  • Quotes type printing: take infix type modifier into account #21726

Reporting

  • Nicer error message in case a derived method has an explicit term param #21332
  • Add better error reporting for inlined non-immutable paths #21639

Releases

  • Add support for Chocolatey #20534
  • Add the merge commit hash to the icon's url #21221
  • Add sources of synthetic classes to sources jar #20904

REPL

  • Uppdate JLine to 3.27.0 (was 3.25.1) #21752
  • Allow JLine to fall back to a dumb terminal #21330
  • JLine: follow recommendation to use JNI, not JNA; also JLine 3.27.1 (was 3.27.0) #22205

Runner

  • Fix old scala runner to use correct JLine classpath #22464
  • Fix remaining JNA classpath entries in dist/bin/scaladoc* scripts #22471

Scaladoc

  • Only trim one newline when preprocessing the content of a markdown code snippet #21519
  • Bump Inkuire version to fix it for the new Scala versions #21611
  • Filter opaque modifier from object documentation #21640

TASTy format

  • Add child to parent in completion context #21214

Transform

  • Three fixes to SAM type handling #21596
  • Fix treatment of separately compiled @native methods in FirstTransform #21593
  • Fix #20856: Serialize Waiting and Evaluating as if null. #21243
  • Fixes IllegalAccessError with Java package protected class #21362
  • Consistently use TypeMismatch in TreeChecker #21529
  • Fix: don't use color codes for pattern match code action #21120
  • Let show behave more robustly for Recheck #21678
  • Always rewrite empty List() to Nil #21689

Typer

  • Fix extending protected nested java classes #21857
  • Avoid cyclic errors forcing default arg types #21597
  • Survive inaccessible types when computing implicit scope #21589
  • Revert "Drop redundant butNot = Param clause in isAnchor" #21566
  • Fail early & more clearly on shaded-broken classfiles #21262
  • Fix isomorphism tests of AndOrTypes under non-empty BinderPairs #21017
  • Some fixes for AnnotatedTypes mapping #19957
  • Simple performance improvement for Denotations #21584
  • Avoid import suggestion thread hang if -Ximport-suggestion-timeout <= 1 #21434
  • Fix incorrect caching with dependent method parameters #21699

Experimental: Explicit Nulls

  • Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) #21389
  • Fix #21392: Adjust canComparePredefined(Nothing, T) in explicit nulls #21504

Contributors

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

According to git shortlog -sn --no-merges 3.3.4..3.3.5-RC1 these are:

    56  Wojciech Mazur
    14  Dale Wijnand
    10  Katarzyna Marek
     8  rochala
     5  Hamza Remmal
     5  noti0na1
     4  Matt Bovel
     4  Seth Tisue
     4  Som Snytt
     3  Jamie Thompson
     3  Martin Odersky
     3  Michał Pałka
     3  dependabot[bot]
     3  kasiaMarek
     2  Aleksander Rainko
     2  Eugene Flesselle
     2  Florian3k
     2  HarrisL2
     2  Jędrzej Rochala
     2  Kacper Korban
     2  Yichen Xu
     1  Eugene Yokota
     1  Guillaume Martres
     1  Hamza REMMAL
     1  Jan Chyb
     1  Joel Wilsson
     1  Kenji Yoshida
     1  Martin Duhem
     1  Nicolas Stucki
     1  Ondrej Lhotak
     1  Sébastien Doeraene
     1  Tomasz Godzik

3.3.5-RC3

23 Jan 10:47
Compare
Choose a tag to compare
3.3.5-RC3 Pre-release
Pre-release

Backported fixes

  • Fix synchronization of -java-output-versions with JVM backend #22403

Contributors

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

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

     3  Wojciech Mazur

3.6.4-RC1

20 Jan 16:12
Compare
Choose a tag to compare
3.6.4-RC1 Pre-release
Pre-release

Highlights of the release

  • Add REPL init script setting #22206
  • Support for JDK 24 #22250
  • Merge -Xno-decode-stacktraces with -Xno-enrich-error-messages #22208
  • Do not lift annotation arguments #22035

Other changes and fixes

Annotations

  • Make sure symbols in annotation trees are fresh before pickling #22002
  • Consider all arguments in Annotations.refersToParamOf #22001
  • Do not lift annotation arguments (bis) #22046

Desugaring

  • Fix #22051: only trust the type application part for case class unapplies #22099

Documentation

  • Update example code linked to obsolete content in macros-spec.md #22256

Experimental: Capture Checking

Experimental: Global Initialization

  • Fix crash when initializing val in ByName closure #22354

Experimental: Named Tuples

  • Handle TypeProxy of Named Tuples in unapply #22325
  • Fail more eagerly when trying to adapt named unapply patterns #22315
  • Widen singleton types when computing fields from .Fields #22149
  • Fix .toTuple insertion #22028

Extension Methods

  • Tweak ExtensionNullifiedByMember #22268
  • Nowarn extension matching nonpublic member #21825

Implicits

  • Rollback constraints in compareAppliedTypeParamRef #22339
  • Try implicit searching after finding dynamic select #22318

Inline

  • Drop phase.isTyper use in isLegalPrefix/asf #21954

Linting

  • Allow discarding "Discarded non-Unit" warnings with : Unit #21927

Match Types

  • Fix #21841: Check more that an unapplySeq on a NonEmptyTuple is valid. #22366
  • Type avoidance in MT bound inference #22142

Metaprogramming

  • Rethrow SuspendExceptions caught in CodeGen phase #22009

Metaprogramming: Compile-time

  • Extend compiletime.testing.typechecks with certain transform phases #21185

Nullability

  • Fix #21619: Refactor NotNullInfo to record every reference which is retracted once. #21624

Presentation Compiler

  • Use new infer expected type for singleton complations #21421
  • Fix match error in keyword completions #22138

Reflection

  • Do not return java outline dummy constructor in primaryConstructor #22104

Reporting

  • Normalise the types for Type Mismatch Error (E007) #22337
  • Improve given search preference warning #22189
  • Better error messages when an enum derives from AnyVal #22236
  • Correctly print litteral types in the refined printer #22351

Rewrites

  • Undo patch of double-block apply #21982

Scaladoc

  • Scaladoc: Add support for named tuples #22263

Settings

  • Limit exposure to ConcurrentModificationException when sys props are replaced or mutated #22180

Specification

  • Align the spec to allow the marker #22323
  • Integrate the specification for match types. #22164

Transform

  • Fix #22226: Use classOf[BoxedUnit] for Unit array in ArrayConstructors. #22238

Typer

  • Fixes for isLegalPrefix change #22241
  • Resolve name when named imp is behind wild imps #21888

Contributors

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

According to git shortlog -sn --no-merges 3.6.3..3.6.4-RC1 these are:

    46  Martin Odersky
    33  noti0na1
    17  Wojciech Mazur
    14  Dale Wijnand
    13  Matt Bovel
    11  Hamza Remmal
     7  Jan Chyb
     6  aherlihy
     5  Kacper Korban
     5  Seth Tisue
     5  Som Snytt
     4  Oliver Bračevac
     4  Yichen Xu
     3  Sébastien Doeraene
     3  dependabot[bot]
     3  kasiaMarek
     2  João Ferreira
     1  David Hua
     1  Eugene Flesselle
     1  Eugene Yokota
     1  Florian3k
     1  Jędrzej Rochala
     1  Kenji Yoshida
     1  Mathias
     1  Natsu Kagami
     1  Oleg Zenzin
     1  Piotr Chabelski
     1  Rui Chen
     1  philippus
     1  rochala
     1  xiaoshihou

3.3.5-RC2

20 Jan 16:21
Compare
Choose a tag to compare
3.3.5-RC2 Pre-release
Pre-release

Backported fixes

  • Backport "REPL: JLine: follow recommendation to use JNI, not JNA; also JLine 3.27.1 (was 3.27.0)" to LTS #22377

Contributors

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

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

     5  Wojciech Mazur
     3  Seth Tisue
     1  Hamza Remmal

3.6.3

20 Jan 12:57
Compare
Choose a tag to compare

Highlights of the release

  • Scala 2 forwardport: -Yprofile-trace #19897

Other changes and fixes

Annotations

  • Fix Java parsing of annotations on qualified types #21867
  • Consider all arguments in Annotations.refersToParamOf #22001

Backend

  • Flag class file collision as error #19332

Compiler Phases

  • Fix #21939: Update names and descriptions for cc and setup phases #21942
  • Limit exposure to ConcurrentModificationException when sys props are replaced or mutated #22275

Experimental: Explicit Nulls

  • Improve warning for wildcard matching only null under the explicit nulls flag (scala#21577) #21623
  • Fix warning message for matching on redundant nulls #21850

Experimental: Capture Checking

Experimentals

  • Replace symbol traversal with tree traversal when finding top level experimentals #21827

Extension Methods

  • Nowarn extension matching nonpublic member #21825

Implicits

  • Apply implicit conversion from derived Conversion instance defined as implicit rather than given #21785

Imports

  • Allow imports nested in packagings to shadow #21539

Inline

  • Avoid using the current denotation in NamedType.disambiguate #21414
  • Drop phase.isTyper use in isLegalPrefix/asf #21954
  • Fix for macro annotation that resolves macro-based implicit crashing the compiler #20353
  • Allow macro annotations to recover from suspension #21969

Linting

  • Disallow open modifier on objects #21922
  • Allow discarding "Discarded non-Unit" warnings with : Unit #21927

Opaque Types

  • Fix pkg obj prefix of opaque tp ext meth #21527

Parser

  • Fix: don't consider into as a soft-modifier #21924

Pattern Matching

  • Drop inaccessible subclasses from refineUsingParent #21799
  • (Re-)Drop inaccessible subclasses from refineUsingParent #21930
  • Fix use of class terms in match analysis #21848
  • Don't project nested wildcard patterns to nullable #21934
  • Fix provablyDisjoint handling enum constants with mixins #21876
  • Do not consider uninhabited constructors when performing exhaustive match checking #21750

Presentation Compiler

  • Update mtags to 1.4.1 and backport remaining changes #21859
  • Backport changes for the presentation compiler from Metals #21756

Pickling

  • Avoid orphan param from default arg #21824
  • Make sure definition tree has the defined symbol #21851

REPL

  • Allow top-level opaque type definitions in REPL #21753
  • JLine: follow recommendation to use JNI, not JNA; also JLine 3.27.1 (was 3.27.0) #22271

Scaladoc

  • Fix scaladoc TastyInspector regressions #21716
  • Bring back the fix for scaladoc TastyInspector regressions #21929
  • Fix scaladoc graph highlight background color in dark mode #21814

Standard Library

  • Combine cases of Tuple.Zip disjoint from (h1 *: t1, h2 *: t2) #21287

Quotes

  • Fix #20471: owners of top-level symbols in cached quoted code being incorrect #21945

Reporting

  • Do not warn about expected missing positions in quotes.reflect.Symbol #21677
  • Add missing error messages to asserts in QuotesImpl #21852
  • Don't point to the compiler backlog when a compiler plugin phase crashes #21887
  • Better error message for polytypes wrapping capturing types #21843
  • Pretty-print lambdas #21846
  • Nowarn extension matching nonpublic member #22276
  • Refactor: Improve Given search preference warning #22273

Runner

  • Fix: update scala-cli.jar path #22274

Releases

  • Fix layout of released SDK archives, restore intermiediete top-level directory #22272

Scala.js

  • Shade scalajs.ir under dotty.tools #21765

SemanticDB

  • Extract semanticDB for lifted definitions #21856

Transform

  • Fix enclosingClass from returning refinement classes #21411
  • Attempt to beta reduce only if parameters and arguments have same shape #21970
  • Drop copied parent refinements before generating bytecode #21733

Tooling

  • Ensure to escape characters before constructing JSON profile trace #21872

Tuples

  • Fix tupleTypeFromSeq for XXL tuples #21782

Typer

  • Do not crash when typing a closure with unknown type, since it can occur for erroneous input #21178
  • Revert SAM condition to what it was before #21684
  • Fix ctx implicits under case unapplySeq #21748
  • Avoid erasure/preErasure issues around Any in transformIsInstanceOf #21647

Contributors

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

According to git shortlog -sn --no-merges 3.6.2..3.6.3 these are:

    33  Wojciech Mazur
    30  Dale Wijnand
    30  Kacper Korban
    14  noti0na1
    11  Hamza Remmal
    10  Eugene Flesselle
    10  HarrisL2
     9  Martin Odersky
     8  Matt Bovel
     7  Jan Chyb
     6  Tomasz Godzik
     5  Seth Tisue
     4  Jamie Thompson
     2  Friendseeker
     2  João Ferreira
     2  Pascal Weisenburger
     2  Som Snytt
     2  Sébastien Doeraene
     1  Adrien Piquerez
     1  Alden Torres
     1  Alexander
     1  Eugene Yokota
     1  Fengyun Liu
     1  Georgi Krastev
     1  Jentsch
     1  Lunfu Zhong
     1  Michał Pałka
     1  Natsu Kagami
     1  Rui Chen
     1  dependabot[bot]
     1  friendseeker
     1  tgodzik

3.6.3-RC2

31 Dec 13:09
Compare
Choose a tag to compare
3.6.3-RC2 Pre-release
Pre-release

Backported fixes

  • Fix: update scala-cli.jar path #22274
  • Nowarn extension matching nonpublic member #22276
  • Limit exposure to ConcurrentModificationException when sys props are replaced or mutated #22275
  • Refactor: Improve Given search preference warning #22273
  • Fix layout of released SDK archives, restore intermediate top-level directory #22272
  • REPL: JLine: follow recommendation to use JNI, not JNA; also JLine 3.27.1 (was 3.27.0) #22271

Contributors

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

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

     4  Wojciech Mazur
     2  João Ferreira
     2  Seth Tisue
     2  Som Snytt
     1  Eugene Yokota
     1  Hamza Remmal
     1  Rui Chen

3.6.3-RC1

13 Dec 10:58
Compare
Choose a tag to compare
3.6.3-RC1 Pre-release
Pre-release

Highlights of the release

  • Scala 2 forwardport: -Yprofile-trace #19897

Other changes and fixes

Annotations

  • Fix Java parsing of annotations on qualified types #21867
  • Consider all arguments in Annotations.refersToParamOf #22001

Backend

  • Flag class file collision as error #19332

Compiler Phases

  • Fix #21939: Update names and descriptions for cc and setup phases #21942

Experimental: Explicit Nulls

  • Improve warning for wildcard matching only null under the explicit nulls flag (scala#21577) #21623
  • Fix warning message for matching on redundant nulls #21850

Experimental: Capture Checking

Experimentals

  • Replace symbol traversal with tree traversal when finding top level experimentals #21827

Extension Methods

  • Nowarn extension matching nonpublic member #21825

Implicits

  • Apply implicit conversion from derived Conversion instance defined as implicit rather than given #21785

Imports

  • Allow imports nested in packagings to shadow #21539

Inline

  • Avoid using the current denotation in NamedType.disambiguate #21414
  • Drop phase.isTyper use in isLegalPrefix/asf #21954
  • Fix for macro annotation that resolves macro-based implicit crashing the compiler #20353
  • Allow macro annotations to recover from suspension #21969

Linting

  • Disallow open modifier on objects #21922
  • Allow discarding "Discarded non-Unit" warnings with : Unit #21927

Opaque Types

  • Fix pkg obj prefix of opaque tp ext meth #21527

Parser

  • Fix: don't consider into as a soft-modifier #21924

Pattern Matching

  • Drop inaccessible subclasses from refineUsingParent #21799
  • (Re-)Drop inaccessible subclasses from refineUsingParent #21930
  • Fix use of class terms in match analysis #21848
  • Don't project nested wildcard patterns to nullable #21934
  • Fix provablyDisjoint handling enum constants with mixins #21876
  • Do not consider uninhabited constructors when performing exhaustive match checking #21750

Presentation Compiler

  • Update mtags to 1.4.1 and backport remaining changes #21859
  • Backport changes for the presentation compiler from Metals #21756

Pickling

  • Avoid orphan param from default arg #21824
  • Make sure definition tree has the defined symbol #21851

REPL

  • Allow top-level opaque type definitions in REPL #21753

Scaladoc

  • Fix scaladoc TastyInspector regressions #21716
  • Bring back the fix for scaladoc TastyInspector regressions #21929

Standard Library

  • Combine cases of Tuple.Zip disjoint from (h1 *: t1, h2 *: t2) #21287

Quotes

  • Fix #20471: owners of top-level symbols in cached quoted code being incorrect #21945

Reporting

  • Do not warn about expected missing positions in quotes.reflect.Symbol #21677
  • Add missing error messages to asserts in QuotesImpl #21852
  • Don't point to the compiler backlog when a compiler plugin phase crashes #21887
  • Better error message for polytypes wrapping capturing types #21843
  • Pretty-print lambdas #21846

Scala.js

  • Shade scalajs.ir under dotty.tools #21765

Scaladoc

  • Fix scaladoc graph highlight background color in dark mode #21814

SemanticDB

  • Extract semanticDB for lifted definitions #21856

Transform

  • Fix enclosingClass from returning refinement classes #21411
  • Attempt to beta reduce only if parameters and arguments have same shape #21970
  • Drop copied parent refinements before generating bytecode #21733

Tooling

  • Ensure to escape characters before constructing JSON profile trace #21872

Tuples

  • Fix tupleTypeFromSeq for XXL tuples #21782

Typer

  • Do not crash when typing a closure with unknown type, since it can occur for erroneous input #21178
  • Revert SAM condition to what it was before #21684
  • Fix ctx implicits under case unapplySeq #21748
  • Avoid erasure/preErasure issues around Any in transformIsInstanceOf #21647

Contributors

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

According to git shortlog -sn --no-merges 3.6.2..3.6.3-RC1 these are:

  30 Dale Wijnand
  30 Kacper Korban
  27 Wojciech Mazur
  14 noti0na1
  10 Eugene Flesselle
  10 Hamza Remmal
  10 HarrisL2
    9 Martin Odersky
    8 Matt Bovel
    7 Jan Chyb
    6 Tomasz Godzik
    4 Jamie Thompson
    2 Friendseeker
    2 Pascal Weisenburger
    2 Seth Tisue
    2 Sébastien Doeraene
    1 Adrien Piquerez
    1 Alden Torres
    1 Alexander
    1 Fengyun Liu
    1 Georgi Krastev
    1 Jentsch
    1 Lunfu Zhong
    1 Michał Pałka
    1 Natsu Kagami
    1 dependabot[bot]
    1 friendseeker
    1 tgodzik

3.6.2

10 Dec 14:43
Compare
Choose a tag to compare

Highlights of the release

  • Stabilise SIP-47 (Adding Clause Interleaving to method definitions) #20861
  • Stabilise SIP-64 (New syntax of givens and context bounds) #21668
  • Context Bounds for Polymorphic Functions #21643
  • Switch mapping of context bounds to using clauses in 3.6 #21257
  • Enable betterMatchTypeExtractors in >= 3.6 #21198
  • Require named arguments for java defined annotations #21329
  • Refine the bounds of the Tuple.Filter type lambda predicate .. #21286
  • Add an infix shorthand for Tuple.{Append, Concat} #21288
  • Add .msi artifacts to release assets #21834
  • Implement SIP-62 as experimental - For comprehension improvements #20522
  • Implement SIP-57 as experimental - add runtimeChecked method and annotation #20987

Other changes and fixes

Annotations

  • Tighten java annot value parsing #21650

Erasure

  • Fixes IllegalAccessError with Java package protected class #21362

Experimental: Capture Checking

  • Fix setup of CapSet arguments. #21309
  • Check all top-level covariant capture sets in checkNotUniversal #21428
  • Charge also dcs of local reaches to capture set of enclosing method #21443
  • No need to unbox if expected type is LhsProto #21508
  • Treat more closure parameter types as inferred #21583
  • Existential Capabilities #20566
  • Fixes for cleanup retains scheme #21350
  • Improve Contains handling #21361
  • Expand Capability types T to T^ only if no explicit capture set is given #21375
  • Tighten closure extractor in TreeInfo #21621

Experimental: Global Initialization

  • Analyze object when selecting from package #21511
  • Fix bug in init checker while compiling scodec-bits community project #21574

Experimental: Named Tuples

  • Finalize named tuples #21710
  • Move NamedTuple.head to NamedTupleDecomposition #21308
  • Move NonEmptyTuple members into Tuple #21291
  • Migration rewrites for infix arguments interpreted as named tuples #21949
  • Make named tuples a standard feature #21680
  • Make named tuples an experimental feature again #22045

Experimental: Explicit Nulls

  • Fix #21392: Adjust canComparePredefined(Nothing, T) in explicit nulls #21504
  • Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) #21389

Experimentals

  • [experimental feature] Support HOAS pattern with type variables for quote pattern matching #18271

Exports

  • Re-use attachment in exportForwarders to handle ambiguous overloads #21518
  • Allow export statements in AnyVal #21653

Extension Methods

  • Make right assoc ext method fwd refs error #21641

Inline

  • Fix: throw an error before assigning ErrorType when expanding constValue #21364

Implicits

  • Fix prioritization of givens over implicits #21226

JVM Backend

  • Backend computes line number from source of position #21763

Linting

  • CheckUnused checks type param annotations #20549

Match Types

  • Fix #21295: Restrict provablyDisjoint with Nothings in invariant type params. #21891
  • Do not propagate TypeErrors of ops from TypeComparer#tryAlso #21070
  • Fix #21402: Always allow type member extraction for stable scrutinees in match types. #21700
  • Add a 3.6-migration warning for MT lubbing #21336
  • Always interpret underscores inside patterns as type bounds #21718

Opaque Types

  • Capture the kse3 issue in test cases and close it #21260

Parser

  • Guard against recursive lower bounds in constraints #21587
  • Handle old given syntax where identifier and type are seperated by new line #21957
  • Fix: Allow as as an infix type in non context bound types #21849
  • Revised given syntax #21208
  • Make context bounds for poly functions a standard feature #22019

Pattern Matching

  • Optimise SpaceEngine.signature #21791
  • Fix a bundle of patmat issues #21000

Pickling

  • Some fixes for AnnotatedTypes mapping #19957

Polyfunctions

  • Fix: Check if a PolyFunction TypeTree has no ByName parameters #21671

Presentation Compiler

  • Add regression test for issue 18726 #20318
  • Remove artificial CURSOR added to code in the completions #20899
  • Fix autoimports with using directives #21590

Quotes

  • Handle suspension due to macro call in arbitrary phases #21651
  • Have a better error message when healing types #21711
  • Bound TypeRepr by Matchable in Quotes #21377
  • Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType) #20494

Reflection

  • Add the possibility to create a typeSymbol in the Quotes API #20347
  • Fix stale symbols connected to lazy vals in macros #21559

Reporting

  • Add better error reporting for inlined non-immutable paths #21639
  • Only replace new errors by warnings under -migration #21289
  • Warn when named tuples resemble assignments #21823

REPL

  • REPL: JLine 3.27.0 (was 3.25.1) #21752
  • Ignore best effort settings in repl and update docs #21540

Rewrites

  • Remove empty argument lists for classes with only context bounds #21513
  • Fix rewrite logic for old <function> _ syntax #21715
  • Remove the -rewrite option for typechecks methods in Quotes #21547
  • Add migration rewrite for non-named arguments in Java annotations #21397

Runner

Scaladoc

  • Only trim one newline when preprocessing the content of a markdown code snippet #21519
  • Filter opaque modifier from object documentation #21640
  • Bump Inkuire version to fix it for the new Scala versions #21611

Standard Library

  • Scala 2.13.15 (was .14) #21648
  • Define binary symbolic compiletime ops as infix #21683

Transform

Read more