Releases: scala/scala3
3.6.2-RC3
Note
Scala 3.6.2 would become the first official release for the Scala 3.6 series.
Versions 3.6.0 (a broken release) and 3.6.1 (a hotfix release) should never be used. For more information, refer to the Scala 3.6.0 Post Mortem blogpost
Scala 3.6.2 should effectively be regarded as "3.6.0" for all intents and purposes.
Backported fixes
- Make named tuples an experimental feature again #22045
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.6.2-RC2..3.6.2-RC3
these are:
5 Wojciech Mazur
3.6.2-RC2
Note
Scala 3.6.2 would become the first official release for the Scala 3.6 series.
Versions 3.6.0 (a broken release) and 3.6.1 (a hotfix release) should never be used. For more information, refer to the Scala 3.6.0 Post Mortem blogpost
Scala 3.6.2 should effectively be regarded as "3.6.0" for all intents and purposes.
Backported fixes
- Make context bounds for poly functions a standard feature #22019
- Update Scala CLI to 1.5.4 (was 1.5.1) & coursier to 2.1.18 (was 2.1.13) #22021
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.6.2-RC1..3.6.2-RC2
these are:
4 Wojciech Mazur
3.6.2-RC1
Note
Scala 3.6.2 would become the first official release for the Scala 3.6 series.
Versions 3.6.0 (a broken release) and 3.6.1 (a hotfix release) should never be used. For more information, refer to the Scala 3.6.0 Post Mortem blogpost
Scala 3.6.2 should effectively be regarded as "3.6.0" for all intents and purposes.
This includes also an exception in versioning of produced TASTy files by its release candidates - 3.6.2-RC*
.
Scala compiler emits TASTy files in an experimental version for candidates of a new minor version (e.g. 3.x.0-RC1
), contrary to release candidates of a new patch version (e.g. 3.x.1-RC1
) that emit a non-experimental TASTy in version established by the first stable release of their respective minor version.
Libraries should never publish artifacts containing experimental TASTy files. Instead, authors should wait until the stabilization of the TASTy format in Scala 3.6.2.
Highlights of the release
- Stabilise SIP-47 (Adding Clause Interleaving to method definitions) #20861
- Stablise SIP-64 #21668
- Context Bounds for Polymorphic Functions #21643
- Make named tuples a standard feature #21680
- 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 - Move
NonEmptyTuple
members intoTuple
#21291 - Add .msi artifacts to release assets #21834
- Migration rewrites for infix arguments interpreted as named tuples #21949
- 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: Strict Equality
- 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
given
s overimplicit
s #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
withNothing
s in invariant type params. #21891 - Do not propagate
TypeError
s of ops fromTypeComparer#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
Pattern Matching
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
Rewrites
- Remove empty argument lists for classes with only context bounds #21513
- Fix rewrite logic for old
<function> _
syntax #21715 - Remove the
-rewrite
option fortypechecks
methods in Quotes #21547 - Add migration rewrite for non-named arguments in Java annotations #21397
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 - Finalize named tuples #21710
- Move
NamedTuple.head
toNamedTupleDecomposition
#21308
Transform
- Fix trea...
3.6.1
This is a fast-track release to replace a broken release 3.6.0 that occurred during the Scala 3.6.0-RC1 release. It might contain bugs that would be have been fixed during the Release Candidate bugfixes period. We recommend waiting for the stable Scala 3.6.2 release.
Scala 3.6.0 should never be used to produce libraries. TASTy files produced by this version of the compiler are produced in the experimental mode. These outputs are not compatible with consumers using stable versions of the compiler.
See details in Scala 3.6.0 Post Mortem blogpost
Highlights of the release
- Stabilise SIP-47 (Adding Clause Interleaving to method definitions) #20861
- Implement SIP-57 - add runtimeChecked method and annotation #20987
- Implement SIP-62 - For comprehension improvements #20522
- Implement SIP-64 as non-experimental #21668
- Make named tuples a standard feature #21680
- Switch mapping of context bounds to using clauses in 3.6 #21257
- Require named arguments for java defined annotations #21329
Other changes and fixes
Annotations
- Tighten java annot value parsing #21650
Dependencies
Erasure
- Fixes IllegalAccessError with Java package protected class #21362
Experimental: Capture Checking
- Existential Capabilities #20566
- 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
- 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: Strict Equality
- Fix #21392: Adjust
canComparePredefined(Nothing, T)
in explicit nulls #21504 - Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) #21389
Experimental: Modularity
- Revised given syntax #21208
Experimental: Global Initialization
- Analyze object when selecting from package #21511
- Fix bug in init checker while compiling scodec-bits community project #21574
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
given
s overimplicit
s #21226
JVM backend
- Backend computes line number from source of position #21763
Linting
- CheckUnused checks type param annotations #20549
Library
- Finalize named tuples #21710
Match Types
- Enable betterMatchTypeExtractors in >= 3.6 #21198
- Do not propagate
TypeError
s of ops fromTypeComparer#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
Pattern Matching
- 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
REPL
- 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 fortypechecks
methods in Quotes #21547 - Add migration rewrite for non-named arguments in Java annotations #21397
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
- Move
NamedTuple.head
toNamedTupleDecomposition
#21308 - Define binary symbolic compiletime ops as
infix
#21683
Transform
- Fix treatment of separately compiled @Native methods in FirstTransform #21593
- Three fixes to SAM type handling #21596
- Always rewrite empty List() to Nil #21689
- Add support for clauseInterleaving in JVM generic signatures #21709
Typeclass Derivation
- Nicer error message in case a
derived
method has an explicit term param #21332
Typer
- Calm param autotupling for overloads #21552
- Survive inaccessible types when computing implicit scope #21589
- Avoid cyclic errors forcing default arg types #21597
- Fix incorrect caching with dependent method parameters #21699
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.5.2..3.6.1
these are:
129 Martin Odersky
35 Hamza REMMAL
34 Dale Wijnand
31 Eugene Flesselle
31 Hamza Remmal
30 Wojciech Mazur
15 Kacper Korban
12 Jamie Thompson
11 Jan Chyb
11 Katarzyna Marek
9 noti0na1
9 rochala
8 Adrien Piquerez
8 Matt Bovel
7 Som Snytt
7 dependabot[bot]
6 Yichen Xu...
3.6.0
This is a broken release, please, don't use it
It was published by mistake during the 3.6.0-RC1 release.
See details in Scala 3.6.0 Post Mortem blogpost
Highlights of the release
- Stabilise SIP-47 (Adding Clause Interleaving to method definitions) #20861
- Implement SIP-57 - add runtimeChecked method and annotation #20987
- Implement SIP-62 - For comprehension improvements #20522
- Implement SIP-64 as non-experimental #21668
- Make named tuples a standard feature #21680
- Switch mapping of context bounds to using clauses in 3.6 #21257
- Require named arguments for java defined annotations #21329
Other changes and fixes
Annotations
- Tighten java annot value parsing #21650
Dependencies
Erasure
- Fixes IllegalAccessError with Java package protected class #21362
Experimental: Capture Checking
- Existential Capabilities #20566
- 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
- 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: Strict Equality
- Fix #21392: Adjust
canComparePredefined(Nothing, T)
in explicit nulls #21504 - Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) #21389
Experimental: Modularity
- Revised given syntax #21208
Experimental: Global Initialization
- Analyze object when selecting from package #21511
- Fix bug in init checker while compiling scodec-bits community project #21574
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
given
s overimplicit
s #21226
JVM backend
- Backend computes line number from source of position #21763
Linting
- CheckUnused checks type param annotations #20549
Library
- Finalize named tuples #21710
Match Types
- Enable betterMatchTypeExtractors in >= 3.6 #21198
- Do not propagate
TypeError
s of ops fromTypeComparer#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
Pattern Matching
- 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
REPL
- 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 fortypechecks
methods in Quotes #21547 - Add migration rewrite for non-named arguments in Java annotations #21397
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
- Move
NamedTuple.head
toNamedTupleDecomposition
#21308 - Define binary symbolic compiletime ops as
infix
#21683
Transform
- Fix treatment of separately compiled @Native methods in FirstTransform #21593
- Three fixes to SAM type handling #21596
- Always rewrite empty List() to Nil #21689
- Add support for clauseInterleaving in JVM generic signatures #21709
Typeclass Derivation
- Nicer error message in case a
derived
method has an explicit term param #21332
Typer
- Calm param autotupling for overloads #21552
- Survive inaccessible types when computing implicit scope #21589
- Avoid cyclic errors forcing default arg types #21597
- Fix incorrect caching with dependent method parameters #21699
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.5.2..3.6.0-RC1
these are:
128 Martin Odersky
35 Hamza REMMAL
34 Dale Wijnand
27 Eugene Flesselle
22 Hamza Remmal
22 Wojciech Mazur
12 Kacper Korban
11 Katarzyna Marek
9 noti0na1
9 rochala
8 Jamie Thompson
8 Jan Chyb
7 Adrien Piquerez
7 Matt Bovel
7 Som Snytt
7 dependabot[bot]
6 Yichen Xu
5 EnzeXing
5 Guillaume Martres
5 Sébastien Doeraene
4 Fengyun Liu
4 kasiaMarek
3 Martin Duhem
3 Oliver Bracevac
3 Piotr Chabelski
2 Aleksander Rainko
2 David Hua
2 Florian3k
2 HarrisL2
2 Joel Wilsson
2 Jędrzej Rochala
2 Kenji Yoshida
1 Eugene Yokota
1 Kavin Sath...
3.5.2
Highlights of the release
- Add the -Wall option that enables all warnings (Plan B) #20577
- Add origin filter to WConf, DeprecationWarning #21404
Other changes and fixes
Implicits
- Streamline
tryNormalize
withunderlyingMatchType
#20268
Inference
JVM Backend
- Update asm to patched 9.7 #20144
Overloading
- Report only non-overridden unimplemented members #21337
Parser
- SimplePattern errors should now be recovered as wildcard instead of unimplemented expr #21438
Positions
- Fix trailing comma Ident's span #20445
Presentation Compiler
- Implement completions for named tuple fields #21202
- Don't add suffix if brackets already present #21259
- Change mock symbol search #21296
- Fix: completions when parenthesis already provided #21299
- Weekly metals backport #21343
- Backport from metals #21196
- Help implement Metals' infer expected type feature #21390
Reporting
- Fix: don't use color codes for pattern match code action #21120
Runner
- Wrap the arguments passed to the scalac task between " #21322
SemanticDB
- Fix: semanticdb symbol creation when
targetName
set #20950
TASTy format
- Add child to parent in completion context #21214
Transform
Typeclass Derivation
- Revert "Compensate loss of transitivity" #21356
Typer
- Avoid forcing ctors & parents which caused cycles #17086
- Fix isomorphism tests of
AndOrType
s under non-emptyBinderPairs
#21017 - Fail when a poly function value has a different number of type params than the expected poly function #21248
- Fail early & more clearly on shaded-broken classfiles #21262
- A tweak to type improvement #21312
- Fix #20897: Make
Nothing ⋔ Nothing
, as per spec. #21241
Experimental Changes
Modularity
- Fix: Only implement a deferred given in a class if its parent won't implement it #21206
Named Tuples
- Re-use isConcrete checking in match types for NamedTuple.From #20947
- Fix: Dealias NamedTuple's name types when resolving NamedTuple's element types #21331
Safe Global Initialization
- Fix exception on sequence matching with drop #21281
- Fix uninitializing fields when evaluating a cached constructor call in global initialization checker #21403
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.5.1..3.5.2
these are:
22 Dale Wijnand
12 Eugene Flesselle
11 Katarzyna Marek
11 Wojciech Mazur
6 dependabot[bot]
4 Hamza REMMAL
4 Kacper Korban
4 Martin Odersky
4 Som Snytt
4 Yichen Xu
4 kasiaMarek
3 Jamie Thompson
2 EnzeXing
2 Hamza Remmal
2 Sébastien Doeraene
1 Jan Chyb
1 Jędrzej Rochala
1 Kavin Satheeskumar
1 Martin Duhem
1 Matt Bovel
1 Raphael Jolly
1 noti0na1
1 philippus
3.5.2-RC2
Backported fixes
- Revert pattern matching improvements introducing regressions in 3.5.2 #21734
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.5.2-RC1..3.5.2-RC2
these are:
4 Wojciech Mazur
1 Dale Wijnand
3.3.4
Highlights of the release
- Error when reading class file with unknown newer jdk version #18618
- Add support for xsbti.compile.CompileProgress #18739
- Add support for
@deprecatedInheritance
#19082 - Bump JLine 3.19.0 -> 3.24.1 & sbt 1.9.7 -> 1.9.9 #19744
- Repl - method signatures in autocomplete #19917
- Upgrade Scala 2 to 2.13.14 (was 2.13.12) #20902
Notable changes
- Backport of #20463 corrects generic signatures emitted in the JVM bytecode for value classes and aligns it with Scala 2.13 semantics. The previously generated signatures for value classes were invalid - they contained underlying value class type instead of boxed type. This change would lead to MiMa errors when signature checks are enabled and could lead to issues when trying to refer to value class methods using reflection API. It would not affect the normal usage of value classes in Scala code compiled with the previous version of the compiler.
Other changes and fixes
Annotations
- Attempt implicit search for old style
implicit
parameters in Application matchArgs #19737
Artifacts
Backend
- Parallelise JVM backend - Scala 2 port #15392
- Fix Closure span assignment in makeClosure #15841
- Count size of parameters for platform limit check #18464
- Opt: Get rid of the LiftTry phase; instead handle things in the back-end. #18619
- Update asm to 9.6 #18712
- Don't emit line number for synthetic unit value #18717
- Avoid too eager transform of $outer for lhs & accessor rhs #18949
- Make more anonymous functions static #19251
- Fix deadlock in initialization of CoreBTypes using Lazy container #19298
- Fix(#17255): cannot find Scala companion module from Java #19773
- Change isStatic to isStaticOwner in hasLocalInstantiation #19803
- Emit switch bytecode when matching unions of a switchable type #20411
- Fix EnclosingMethod for lifted anonfun #20558
- Fix deterministically adding additional interfaces #20593
Coverage
- Correctly prettify names in coverage info #18542
- Port coverage filter options for packages and files #19727
Default parameters
- Lift all non trivial prefixes for default parameters #19739
- Fix default args lookup for given classes #20256
- Fix implicit search failure reporting #20261
Derivation
- Fix infinite loop in Mirror synthesis of unreducible match type #20133
Desugaring
- Make apply proxies work with overloaded ctors #19464
- Fix possible crash in Desugar #19567
- Add explanation to checkCaseClassInheritanceInvariant error msg #20141
Documentation
- [spec] remove implementation details from enum spec #18579
- [spec] some fixes to tuples #18582
- [spec] Cosmetic changes in the lexical syntax chapter #18608
- Spec: Update the list of tokens that can start/end statements. #18611
- Update syntax.md #18648
- Sync
main
withlanguage-reference-stable
#18718 - Completion assert diffs will now show completion source #18890
- Fix Export Doc #18952
- reference doc: fix incorrect syntax production #19017
- State all known limitations of right-associative extension methods #19210
- Update explicit-nulls.md #19327
- update old
issues.scala-lang.org
url #19606 - Update syntax.md #19670
- Clear the not-backported documentation changes queue #19699
- remove implementation from asInstanceOf #19753
- Port tailrec spec and adjustments to annotations section #19978
- Optimize the documentation JS files #20075
- Optimize main.js #20093
- Improve documentation of implicit conversions #20103
- Update Quotes.scala #20174
- Supplement structural givens doc #20327
- Fix three dead links in spec Types doc chapter #20337
- Avoid jpath in example #20775
Erasure
- Make eraseInfo work for classes with EmptyScopes #19550
- Don't re-balance AndTypes arising from supertypes #20400
Exports
- Do not propagate
@tailrec
to exported methods #19509 - Fix retained flags in exports #19636
- Add annotations in parameters for exports #20140
- Fix isAliasType #20195
GADTs
- Only cache base types when gadt state is empty #19562
Implicits
- Tweak convertible implicits fix #18727
- Run CheckStatic after UncacheGivenAliases #19318
- Add tests to verify that crash is fixed elsewhere. Fixes #19328 #19329
- Don't search for implicit conversions to NoType #19563
- Prefer extensions over conversions for member selection #19717
- Adjust owner in Interactive.contextOfPath causing crash in ImplicitSearch #19875
- Improve ConstraintHandling of SkolemTypes #20175
- Better error diagnostics under -explain-cyclic #20251
- Bring back ambiguity filter when we report an implicit not found error #20368
- Avoid stacked thisCall contexts #20488
Incremental Compilation
Inferencing
Infrastructure
- Fix listing release versions for bisect script. #19356
- Make tests resilient to exceptions thrown while reporting exceptions #19566
- Move CI management from lampepfl/dotty-ci #19697
- Switch to Java 17 in the CI #19703
- [regression] Publish nightly releases and releases using Java 8 #19722
- Bump scalacenter/sbt-dependency-submission from 2 to 3 #20440
Inline
- Fix regression: inline match crash when rhs uses private inlined methods #18595
- Add structural classes of dynamicApply before inlining #18766
- Inline transparent implicit parameters when typing Unapply trees #19646
- Specialized retained inline FunctionN apply methods #19801
- Restore pre-3.3.2 behavior of
inline implicit def
#19877 - Avoid crash after StopMacroExpansion #19883
- Check deprecation of inline methods #19914
...
3.3.4-RC4
Reverted changes
- Revert "Reduce projections of type aliases with class type prefixes" in LTS #21609
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.3.4-RC3..3.3.4-RC4
these are:
4 Wojciech Mazur
3.5.2-RC1
Highlights of the release
- Add the -Wall option that enables all warnings (Plan B) #20577
- Add origin filter to WConf, DeprecationWarning #21404
Other changes and fixes
Implicits
- Streamline
tryNormalize
withunderlyingMatchType
#20268
Infer
Infrastructure
- Add the project's icon for Intellij #21188
- Add the link to scala's security policy #21220
- Add _spec to dependabot #21227
- Bump redcarpet from 3.5.1 to 3.6.0 in /docs/_spec #21231
- Bump webrick from 1.7.0 to 1.8.1 in /docs/_spec #21232
- Bump VirtusLab/scala-cli-setup from 1.4.0 to 1.4.1 #21233
- Bump VirtusLab/scala-cli-setup from 1.4.1 to 1.4.3 #21371
- Bump VirtusLab/scala-cli-setup from 1.4.3 to 1.5.0 #21441
- Update ScAS #21283
- Bump hamzaremmal/sdkman-release-action from 4cb6c8cf99cfdf0ed5de586d6b38500558737e65 to 1f2d4209b4f5a38721d4ae20014ea8e1689d869e #21440
JVM Backend
- Update asm to patched 9.7 #20144
Overloading
- Report only non-overridden unimplemented members #21337
Parser
- SimplePattern errors should now be recovered as wildcard instead of unimplemented expr #21438
Pattern matching
- Fix a bundle of patmat issues #21000
Positions
- Fix trailing comma Ident's span #20445
Presentation Compiler
- fix: don't use color codes for pattern match code action #21120
- fix: don't add suffix if brackets already present #21259
- Backport from metals #21196
- change mock symbol search #21296
- fix: completions when parenthesis already provided #21299
- Weekly metals backport #21343
- Help implement Metals' infer expected type feature #21390
- feat: Implement completions for named tuple fields #21202
Runner
- Wrap the arguments passed to the scalac task between " #21322
REPL
- Allow JLine to fall back to a dumb terminal #21330
Semantic DB
- fix: semanticdb symbol creation when
targetName
set #20950
Tasty Format
- add child to parent in completion context #21214
Transform
Typeclass Derivation
- Revert "Compensate loss of transitivity" #21356
Typer
- Avoid forcing ctors & parents which caused cycles #17086
- Fix isomorphism tests of
AndOrType
s under non-emptyBinderPairs
#21017 - Fail when a poly function value has a different number of type params than the expected poly function #21248
- Fail early & more clearly on shaded-broken classfiles #21262
- A tweak to type improvement #21312
- Fix #20897: Make
Nothing ⋔ Nothing
, as per spec. #21241
Experimental Changes
Modularity
- fix: Only implement a deferred given in a class if its parent won't implement it #21206
Named Tuples
- Re-use isConcrete checking in match types for NamedTuple.From #20947
- fix: Dealias NamedTuple's name types when resolving NamedTuple's element types #21331
Safe Global Initialization
- Fix exception on sequence matching with drop #21281
- Fix uninitializing fields when evaluating a cached constructor call in global initialization checker #21403
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.5.1..3.5.2-RC1
these are:
21 Dale Wijnand
12 Eugene Flesselle
11 Katarzyna Marek
6 dependabot[bot]
5 Wojciech Mazur
4 Hamza REMMAL
4 Kacper Korban
4 Martin Odersky
4 Som Snytt
4 Yichen Xu
4 kasiaMarek
3 Jamie Thompson
2 EnzeXing
2 Hamza Remmal
2 Sébastien Doeraene
1 Jan Chyb
1 Jędrzej Rochala
1 Kavin Satheeskumar
1 Martin Duhem
1 Matt Bovel
1 Raphael Jolly
1 noti0na1
1 philippus