Releases: scala/scala3
3.6.4
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 #22371This 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
Documentation
- Update example code linked to obsolete content in macros-spec.md #22256
Experimental: Capture Checking
- Fix #21868, #21869, and #21870: handle CapsOf in more places #21875
- Refine rules for capture parameters and members #22000
- Add a hint for using CC with REPL #22220
- Consolidate CC #21863
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
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 aNonEmptyTuple
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
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
Transform
Typer
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
3.3.5
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
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
andEvaluating
as ifnull
. #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
AndOrType
s under non-emptyBinderPairs
#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
3.6.4-RC1
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
Documentation
- Update example code linked to obsolete content in macros-spec.md #22256
Experimental: Capture Checking
- Fix #21868, #21869, and #21870: handle CapsOf in more places #21875
- Refine rules for capture parameters and members #22000
- Add a hint for using CC with REPL #22220
- Consolidate CC #21863
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
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 aNonEmptyTuple
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
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
Transform
Typer
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
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
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
- Fix #21868, #21869, and #21870: handle CapsOf in more places #21875
- Consolidate CC #21863
- Add path support for capture checking #21445
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
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
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
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
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
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
- Fix #21868, #21869, and #21870: handle CapsOf in more places #21875
- Consolidate CC #21863
- Add path support for capture checking #21445
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
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
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
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
toNamedTupleDecomposition
#21308 - Move
NonEmptyTuple
members intoTuple
#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
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
- Make context bounds for poly functions a standard feature #22019
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
Runner
- Update Scala CLI to 1.5.4 (was 1.5.1) & coursier to 2.1.18 (was 2.1.13) #22021
- Scala CLI 1.5.2 release notes highlights:
--source
is now deprecated and scheduled for removal in Scala CLI v1.6.x- Initial support for emitting Wasm with a command line option and a directive
- Scala CLI 1.5.3 release notes
- Scala CLI 1.5.4 release notes
- Scala CLI 1.5.2 release notes highlights:
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
Transform
- Fix treatment of separately compiled
@native
methods in FirstTransform [#21593](https://github.com/sca...