Skip to content

Releases: scala/scala3

3.3.6-RC1

31 Mar 13:06
Compare
Choose a tag to compare
3.3.6-RC1 Pre-release
Pre-release

Highlights of the release

  • Partial Fix #21242: Add REPL init script setting #22206
  • Update asm to patched 9.7.1 #22250
  • REPL: Add back :silent command #22248
  • Do not lift annotation arguments #22035 and #22046
  • Scala 2 forwardport: -Yprofile-trace #19897

Other changes and fixes

Annotations

  • Make sure symbols in annotation trees are fresh before pickling #22002
  • Fix Java parsing of annotations on qualified types #21867
  • Rename InlineCopier to ConservativeTreeCopier, use it in TypeMaps #21941
  • Consider all arguments in Annotations.refersToParamOf #22001

Backend

  • Flag class file collision as error #19332
  • Backend computes line number from source of position #21763

CI

  • In CI, use new standard scala/cla-checker action #22203
  • Cancel stale CI executions when CI is re-triggered in the same branch/PR #21974
  • Drop support for old experimental in community-build #21729

Coverage

  • Fix coverage serialization when encountering macro suspension #22303

Dependencies

  • Sbt 1.10.5 (was 1.9.9) #20157
  • Scala 2.13.16 (was .15) #22386

Desugaring

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

Documentation

  • Fix: typo in documentation for Tuple.zip #22313
  • Copyright 2025 #22326
  • Documentation only: update Example code linked to obsolete content in macros-spec.md #22256
  • Doc fix, removed repeated use of the word with #21915
  • Fix typos #21913

Enums

  • Add type parameters derived from enum to default param getters of enum cases #22157

Extension Methods

Infrastructure

  • Improve, document and group versioning code in Build.scala #21837
  • Fix: drop jackson-module-scala from CB #22353
  • Fix inductive-implicits benchmark #22007
  • Remove tests/pos-with-compiler-cc from VSCode ignored files #22198
  • Bump webrick from 1.8.2 to 1.9.1 in /docs/_spec #22066
  • Fix Windows OS detection in TraceNameManglingTest #21937
  • Don't warn for deprecated Thread.getId() calls in ChromeTrace #21831
  • Improvement: Remove workaround for Bloop and update docs #21842
  • Ensure ChromeTraceTest event timestamps are emitted in correct invervals #21911
  • Remove tests/pos-with-compiler-cc #21956
  • Shade scalajs.ir under dotty.tools #21765

Implicits

  • Rollback constraints in compareAppliedTypeParamRef #22339
  • Apply implicit conversion from derived Conversion instance defined as implicit rather than given #21785

Imports

  • Allow imports nested in packagings to shadow #21539

Inline

  • Fix inline reduction for CaseDef guards with asInstanceOf #22305
  • Avoid using the current denotation in NamedType.disambiguate #21414

Linting

  • Append instead of prepending import selectors for the current scope when collecting them in CheckUnused #22314
  • Allow discarding "Discarded non-Unit" warnings with : Unit #21927
  • Disallow open modifier on objects #21922
  • Only count associated files of direct members of package objects in dropStale #22190

Metaprogramming

  • Rethrow SuspendExceptions caught in CodeGen phase #22009
  • Extend compiletime.testing.typechecks with certain transform phases #21185

Match Types

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

Nullability

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

Parser

  • Fix: don't consider into as a soft-modifier #21924
  • Fix: Allow as as an infix type in non context bound types #21849
  • Undo patch of double-block apply #21982

Pattern Matching

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

Pickling

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

Presentation Compiler

  • Use new infer expected type for singleton complations #21421
  • Fix presentation compiler testcases #22253
  • Fix match error in keyword completions #22138
  • Add test cases project for presentation compiler #22101
  • Improvement: Update mtags to 1.4.1 and backport remaining changes #21859
  • Backport changes for the presentation compiler from Metals #21756

Quotes

  • Fix tupleTypeFromSeq for XXL tuples #21782
  • Do not bring forward symbols created in transform and backend phases #21865
  • Fix #20471: owners of top-level symbols in cached quoted code being incorrect #21945
  • Fix for macro annotation that resolves macro-based implicit crashing the compiler #20353
  • Allow macro annotations to recover from suspension #21969

REPL

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

Reflection

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

Reporting

  • Normalise the types for Type Mismatch Error (E007) #22337
  • 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
  • Nowarn extension matching nonpublic member #21825
  • Fix: better error messages when an enum derives from AnyVal #22236

Scaladoc

  • [ISSUE-#19208] If scaladocs on file protocol don't do SPA routing. #22013
  • Fix scaladoc graph highlight background color in dark mode #21814

SemanticDB

  • Extract semanticDB for lifted definitions #21856

Specification

  • Align the spec to allow the marker #22323
  • Fix #202...
Read more

3.7.0-RC1

13 Mar 16:23
Compare
Choose a tag to compare
3.7.0-RC1 Pre-release
Pre-release

Highlights of the release

  • Add @scala.annotation.internal.preview annotation and -preview flag. #22317
  • Make SIP-52 @publicInBinary a stable feature in 3.7 #22591
  • Make SIP-58 - Named Tuples a stable feature in 3.7 #22753
  • Make SIP-62 - Better Fors a preview feature in 3.7 #22776
  • Implement SIP-61 @unroll annotation as experimental #21693
  • Implement SIP-68 Reference-able Package Objects as experimental #22011
  • Upgrade Scala 2 Standard Library to 2.13.16 #22386
  • Upgrade Scala.js to 1.18.1. #22397
  • Upgrade Scala CLI to 1.7.0 #22735
  • Expression Compiler is now part of Scala 3 compiler #22597
  • Quotes API: Added apply methods to import selectors #22457
  • Quotes API: Implement experimental summonIgnoring method #22417
  • Quotes API: Add class parameters, flags, and privateWithin and annotations to experimental newClass methods #21880
  • Experimental: Capture Calculus - Inferring tracked modifier #21628
  • Presentation Compiler: Show inferred type on holes in hover #21423
  • JVM Backend: Fix #15736 blocking Scala 3 on Android #22632
  • REPL: add flag to quit after evaluating init script #22636
  • REPL: implement :jar (deprecate :require) #22343
  • Linting: Improvements to -Wunused and -Wconf #20894
  • Implicit parameters warn at call site without using keyword #22441
  • Minimal support for dependent case classes #21698

Other changes and fixes

Annotations

  • Lift arguments of explicitly constructed annotations #22553
  • Fix copy of annotation on @main methods #22582
  • @publicInBinary has now effect on secondary constructors #22630
  • Fix mapping of annotations #22407

Backend: Scala.js

  • Emit js.NewArray IR nodes when possible. #22446

Classpath

  • Fix empty ClassPath attribute in one or more classpath jars causes crash #22462

Documentation

  • Improve the usage of inclusive language #22360

Erasure

  • Handle type aliases in contextFunctionResultTypeAfter #21517
  • Align erasure of Array[Nothing] and Array[Null] with Scala 2 #22517

Desugering

  • Under betterFors don't drop the trailing map if it would result in a different type (also drop _ => ()) #22619

Experimental: Capture Checking

  • Canonicalize capture variable subtype comparisons #22299
  • Permit Capture Refs for Uninitialized Type and Term Params in BiTypeMap #22451
  • Fix maximal capability handling and expand aliases #22341

Experimental: Modularity

  • Widen skolem types when adding parent refinements #22488

Experimental: Global Initialization Checker

  • Refactor the abstract domain of global init checker to compile http4s #22179
  • Fix global init checking crash when using a value defined in by-name closure #22625

Experimentals

  • Expand value references to packages to their underlying package objects #22011

Implicits

  • Restrict implicit args to using #22458

Linting

  • Suppress spurious Suppression #22383
  • CheckUnused checks span.exists before testing its parts #22504
  • Don't warn retainedBody #22510
  • Handle Typeable #22663
  • Nowarn public implicit val class params #22664
  • Exclude synthetic this.m, Any.m from import lookup #22695
  • Warn unused member of anonymous class #22729
  • Ignore params to default arg getters #22749
  • Lazy val def member is pattern var #22750
  • Restore resolving prefixes of implicit Ident #22751
  • No warning for parameter of overriding method #22757
  • Dealias before checking for member in lint #22708
  • Warn on bad extensions of aliases #22362
  • Warn universal extensions on opaque types #22502
  • Discourage default arg for extension receiver #22492
  • Rename on import is never wildcard #22712
  • Collect nowarn symbols instead of skipping them #22766

Match Types

  • Handle NoType in TypeComparer.disjointnessBoundary #21520

Named Tuples

  • Special case NamedTuple.From for arguments derived from Tuple #22449
  • Generate mirrors for named tuples #22469

Opaque Types

  • Fix stack overflow errors when generating opaque type proxies #22479
  • Fix inline proxy generation for opaque types referencing other opaque types #22381
  • Fix opaque types leaking rhs when inlined and found in type params (and a related stale symbol issue) #22655

Overloading

  • Make overload pruning based on result types less aggressive #21744

Parser

  • Fix annotations being not expected in the middle of an array type by java parser #22391
  • No outdent at eof #22435
  • Allow observing an indent after conditional #22611
  • Correctly detect colon lambda eol indent for optional brace of argument #22477

Pattern Matching

  • Avoid crash in uninhab check in Space #22601
  • Account for named tuples in space subtraction #22658
  • Check exhaustivity of any case class #22604

Presentation Compiler

  • Add enum type param support in sourceSymbol #18603
  • Map name position to desugared version of named context bound #22374
  • Hover and go to definition for named tuples #22202
  • Completions: do not complete package #20532
  • Print parens for single method argument only if a direct tuple type #21510
  • Improvement: use heuristic to figure out nameSpan if pointDelta too big #22484
  • Fix inferredTypeEdits for symbols #22485
  • Fix: Only fallback to the definition of a synthetic valdef if it is zero extent #22551
  • Better LSP completions inside of backticks #22555
  • Don't search for members in pc info when irrelevant #22674
  • Backport from Metals #22426
  • Backport from Metals #22491
  • Backport from Metals #22665

Runner

  • Upgrade Scala CLI to 1.7.0 highlights
    • Switch to scalameta/scalafmt images of scalafmt 3.9.1+ #3502
    • Support the --test command line option for run subcommand #3519
    • Support the --test command line option for package subcommand #3519
    • Detect objects with main class in scripts #3479
    • ...
Read more

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