Releases: scala/scala3
3.4.0
Highlights of the release
- Make polymorphic functions more efficient and expressive #17548
- SIP-56: Better foundations for match types #18262
- Make SIP 54 (Multi-Source Extension Overloads) a standard feature #17441
- Value parameter inference for polymorphic lambdas #18041
- Add
@publicInBinary
annotation and-WunstableInlineAccessors
linting flag #18402 - Stabilize Quotes
defn.PolyFunction
#18480 - Stabilize Quotes
Flags.AbsOverride
#18482 - Add
-experimental
compiler flags #18571 - Stabilize SIP-53 (quote pattern explicit type variable syntax) #18574
- Add reflect TypeRepr.dealiasKeepOpaques #18583
- Add attributes section to TASTy and use it for Stdlib TASTy #18599
- Error when reading class file with unknown newer jdk version #18618
- Add support for xsbti.compile.CompileProgress #18739
- Improve type inference for functions like fold #18780
- Improve error message for mismatched tasty versions, allow configuration of header unpickler #18828
- In 3.4 make refutable patterns in a for comprehension an error #18842
- Disallow use of PolyFunction in user code #18920
- Store source file in TASTY attributes #18948
- First step to pipelining support - enable reading Java symbols from TASTy #19074
- Activate constrainResult fix in 3.4 #19253
- Parallelise JVM backend - Scala 2 port #15392
- Avoid generating given definitions that loop #19282
Deprecation warnings for old syntax
_
type wildcards #18813private[this]
#18819var x = _
#18821with
as a type operator #18837xs: _*
varargs #18872- trailing
_
to force eta expansion #18926 - Make explicit arguments for context bounds an error from 3.5 #19316
Other changes and fixes
Backend
- Count size of parameters for platform limit check #18464
- 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 #18769: Allow HK type args in Java signatures. #18883
- Loading symbols from TASTy files directly #17594
- Use dedicated equals method for univerval equality of chars #18770
Erasure
- Get generic signature of fields entered after erasure from their accessor #19207
- Detect case where two alternatives are the same after widening ExprTypes #18787
- Improve erased params logic #18433
Experimental: Capture Checking
- Fix capture set variable installation in Setup #18885
- Don't follow opaque aliases when transforming sym info for cc #18929
- Reset
comparersInUse
to zero inContextState.reset
#18915 - Special handling of experimental.captureChecking import #17427
- Change handling of curried function types in capture checking #18131
- Fix #18246: correctly compute capture sets in
TypeComparer.glb
#18254 - New capture escape checking based on levels #18463
- A more robust scheme for resetting denotations after Recheck #18534
- A more flexible scheme for handling the universal capability #18699
- Fix potential soundness hole when adding references to a mapped capture set #18758
- Alternative scheme for cc encapsulation #18899
- Make reach refinement shallow #19171
F-bounds
- Don't check bounds of Java applications in Java units #18054
GADTs
- Avoid embedding SelectionProtos in Conversions #17755
- Freeze constraints while calculating GADT full bounds #18222
Implicits
- Followup fix to transparent inline conversion #18130
- Select local implicits over name-imported over wildcard imported #18203
- Fix how implicit candidates are combined #18321
- Improve error message about missing type of context function parameter #18788
- Support implicit arguments before extractor method #18671
- Tweak convertible implicits fix #18727
- Turn given loop prevention on for -source future #19392
- Fix algorithm to prevent recursive givens #19411
- Handle default implicits to context parameters under -3.4-migration [#19512] (#19512)
Incremental Compilation
- Make incremental compilation aware of synthesized mirrors #18310
Inference
- Honour hard unions in lubbing and param replacing #18680
Infrastructure
- Use -Yscala2-library-tasty to add Scala 2 lib TASTY to scalac (internal only) #18613
- Rename
stdlib-bootstrapped-tasty
toscala2-library-tasty
#18615 - Fix #19286: Freeze rubygems-update at < 3.5.0. #19288
Initialization
- Fix #17997: Handle intersection type as this type of super type #18069
- Add test for issue #17997 affecting the global object initialization checker #18141
- Fix i18624 and add test case for it #18859
- Treat new Array(0) as immutable #19192
- Fix #18407: Ignore Quote/Slice in init checker #18848
- Check safe initialization of static objects #16970
- Pattern match support in checking global objects #18127
- Fix crash in global object initialization checker when select target has no source #18627
- Fix warning underlining in global init checker #18668
- Fix i18629 #18839
- I18628 #18841
- Make safe init checker skip global objects #18906
- Handle local lazy vals properly #18998
Inline
- Fix regression: inline match crash when rhs uses private inlined methods #18595
- Add structural classes of dynamicApply before inlining #18766
- Set missing expansion span for copied inlined node #18229
- Fix
callTrace
of inlined methods #18738
Linting
Scala 3.3.2
Notice
Summary: please skip this release and wait for 3.3.3
Unfortunately, a subtle bug in the TASTy reader managed to survive the Release Candidate (RC) process. The bug caused 3.3.2 to emit TASTy files incompatible with previous releases in the LTS line, namely 3.3.1 and 3.3.0. This means that, should a library author release a new version using 3.3.2, all users still based on older 3.3.x releases will encounter issues. While a simple workaround exists - users can bump their patch version in the LTS line, which is safe and recommended - we regard compatibility in the LTS as paramount. Therefore, we have decided to abandon the 3.3.2 release completely. New testing measures will be introduced to avoid such situations in the future and to guarantee that LTS line remains internally consistent in all cases.
Highlights of the release
- Improvements to the Coverage (detailed list below)
- Add Stable Presentation Compiler #17528
Other changes and fixes
Backend
- Make sure synthetic apply methods are generated in deterministic order #18210
Coverage
- Only lift inner expressions when lifting repeated
Typed
arguments #18424 - Fix: scoverage statement's line number should be 1-base #18932
- Do not lift applications of context functions #18498
- Don't lift the argument of a
synchronized
block in scoverage #16941 - Fix the issue with coverage inside of a TypeApply #18420
- Coverage: mark case bodies as branches; don't ignore branches with synthetic spans #18437
Documentation
- Compiler plugin Scaladoc: document phase requirement #18394
Exports
- Refine override exclude criterion for export forwarders #17590
Incremental Compilation
- Fix overcompilation due to unstable context bound desugaring #18280
Inline
- Don't generate a super accessor for an inline method call #17598
Linting
- Wunused: Only use type treverser for checking refinements in refined type trees #17929
Parser
Pattern Matching
- Properly refine type of inlined unapply pattern #18292
Presentation Compiler
- Bugfix: suggest correct arg name completions for lambda expressions #18379
- Improvement: print better bracket suffix in completion item label #18380
- Fix presentation compiler autoimports, update presentation compiler dependencies #18264
- Update scala3-presentation-compiler to 39e349e #18296
- Update presentation compiler with changes from PR 5287 #18301
- Update presentation compiler to a829a6a #18347
- Bugfix: highlight enum cases correctly #18362
Quotes
- Do not beta-reduce/eta-expand pattern splices with contextual function types #18198
- XcheckMacro types of Block expression and Apply/TypeApply function #18242
- Fix owner of splices in class statements #18359
- Handle macro dependencies through class of
this
#18396 - Add missing span in
QuoteMatcher
#18178 - Fix stale symbol crashes in some path depended types in macro contexts #18077
- Simplify avoidance of local types of Hole #17571
Reporting
- Detail "not a constant type" message #17626
- Suggest imports for the expected type of the underlying implicit not found error #17976
- Fix: report correct location on a repeat modifier #17982
- Warn when calling synchronized on AnyVal #18021
- Fix compile error message in wildcard exports #18189
- Improve parameter type inference error messaging #18190
- Don't report warnings in migration when performing rewrites #15589
- Fix crash reporter, units and phases #17754
- Omit more prefixes in non-package module printing #17758
- Fix pretty printer to handle using and erased modifier #17952
- Add -Yprint-tasty compiler flag #17986
- Add actionable item to PatternMatchExhaustivity diagnostic #18314
Scaladoc
- Fix: -no-link-warnings does not work #17028
- Fix: Validation for API link #17099
- Scaladoc: type rendering fixes and improvements #17213
- Feat: Add a custom icon #17241
- Fix: Correction of the siteRoot path #17297
- Fix: Correct the navigation to anchor #17910
- Fix: Style for wiki syntax #18079
- Fix NoSuchElementException in scaladoc #18184
- Update jsoup dependency of Scaladoc to 7.2 #19584
SemanticDB
- Check for primary constructor in namePresentInSource #18325
- Add -semanticdb-text compiler option #18307
Typer
- Fix pattern generation in "ordinal" mirror method #17570
- Fix superType of SuperType #17574
- Avoid crash in erasure when reference cannot be emitted #18056
- Disallow overloading from breaking stable patterns #18327
- Fix widen types before checking an implicit view exists #18719
- Properly handle SAM types with wildcards #18201
- Handle recursion in collectParts #18214
- Allow eta-expansion of inline defs #18249
- Stable names for lambda lifted methods #18281
- Fix expandParam's use of argForParam/isArgPrefixOf. #19412
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.3.1..3.3.2
these are:
42 Paweł Marks
38 Nicolas Stucki
28 Chris Kipp
15 Sébastien Doeraene
13 Lucas Leblanc
13 Martin Odersky
12 Guillaume Martres
11 Dale Wijnand
10 Jamie Thompson
8 ghostbuster91
6 Florian3k
5 Kacper Korban
4 Jan Chyb
4 Jędrzej Rochala
4 Katarzyna Marek
4 Quentin Bernet
4 Seth Tisue
3 Lucas
3 Matt Bovel
2 Julien Richard-Foy
2 Wojciech Mazur
1 Aleksey Troitskiy
1 Arnout Engelen
1 Bjorn Regnell
1 Eugene Yokota
1 Fabián Heredia Montiel
1 Justin Reardon
1 Kisaragi
1 Martin Kučera
1 Matthew Rooney
1 Matthias Kurz
1 Ondrej Lhotak
1 Rikito Taniguchi
1 Stefan Wachter
1 Yuito Murase
1 rochala
3.4.0-RC4
3.3.2-RC3
3.3.2-RC2
Backported fixes
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.3.2-RC1..3.3.2-RC2
these are:
2 Paweł Marks
1 Dale Wijnand
1 Jan Chyb
1 Nicolas Stucki
1 Seth Tisue
3.4.0-RC3
Backported fixes
- Sync language.scala with main and backport "Add tests for context bounds migration" #19515
- Handle default implicits to context parameters under -3.4-migration #19512
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.4.0-RC2..3.4.0-RC3
these are:
4 Paweł Marks
1 Martin Odersky
1 Nicolas Stucki
3.4.0-RC2
Backported fixes
- Fix expandParam's use of argForParam/isArgPrefixOf. #19412
- Remove ascriptionVarargsUnpacking as we never used it #19399
- Make explicit arguments for context bounds an error from 3.5 #19316
- Avoid generating given definitions that loop #19282
- Turn given loop prevention on for -source future #19392
- Fix algorithm to prevent recursive givens #19411
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.4.0-RC1..3.4.0-RC2
these are:
15 Martin Odersky
4 Nicolas Stucki
3 Paweł Marks
1 Dale Wijnand
1 Jan Chyb
3.4.0-RC1
Highlights of the release
- Make polymorphic functions more efficient and expressive #17548
- SIP-56: Better foundations for match types #18262
- Make SIP 54 (Multi-Source Extension Overloads) a standard feature #17441
- Value parameter inference for polymorphic lambdas #18041
- Add
@publicInBinary
annotation and-WunstableInlineAccessors
linting flag #18402 - Stabilize Quotes
defn.PolyFunction
#18480 - Stabilize Quotes
Flags.AbsOverride
#18482 - Add
-experimental
compiler flags #18571 - Stabilize SIP-53 (quote pattern explicit type variable syntax) #18574
- Add reflect TypeRepr.dealiasKeepOpaques #18583
- Add attributes section to TASTy and use it for Stdlib TASTy #18599
- Error when reading class file with unknown newer jdk version #18618
- Add support for xsbti.compile.CompileProgress #18739
- Improve type inference for functions like fold #18780
- Improve error message for mismatched tasty versions, allow configuration of header unpickler #18828
- In 3.4 make refutable patterns in a for comprehension an error #18842
- Disallow use of PolyFunction in user code #18920
- Store source file in TASTY attributes #18948
- First step to pipelining support - enable reading Java symbols from TASTy #19074
- Activate constrainResult fix in 3.4 #19253
- Parallelise JVM backend - Scala 2 port #15392
Deprecation warnings for old syntax
_
type wildcards #18813private[this]
#18819var x = _
#18821with
as a type operator #18837xs: _*
varargs #18872- trailing
_
to force eta expansion #18926
Other changes and fixes
Backend
- Count size of parameters for platform limit check #18464
- 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 #18769: Allow HK type args in Java signatures. #18883
- Loading symbols from TASTy files directly #17594
- Use dedicated equals method for univerval equality of chars #18770
Erasure
- Get generic signature of fields entered after erasure from their accessor #19207
- Detect case where two alternatives are the same after widening ExprTypes #18787
- Improve erased params logic #18433
Experimental: Capture Checking
- Fix capture set variable installation in Setup #18885
- Don't follow opaque aliases when transforming sym info for cc #18929
- Reset
comparersInUse
to zero inContextState.reset
#18915 - Special handling of experimental.captureChecking import #17427
- Change handling of curried function types in capture checking #18131
- Fix #18246: correctly compute capture sets in
TypeComparer.glb
#18254 - New capture escape checking based on levels #18463
- A more robust scheme for resetting denotations after Recheck #18534
- A more flexible scheme for handling the universal capability #18699
- Fix potential soundness hole when adding references to a mapped capture set #18758
- Alternative scheme for cc encapsulation #18899
- Make reach refinement shallow #19171
F-bounds
- Don't check bounds of Java applications in Java units #18054
GADTs
- Avoid embedding SelectionProtos in Conversions #17755
- Freeze constraints while calculating GADT full bounds #18222
Implicits
- Followup fix to transparent inline conversion #18130
- Select local implicits over name-imported over wildcard imported #18203
- Fix how implicit candidates are combined #18321
- Improve error message about missing type of context function parameter #18788
- Support implicit arguments before extractor method #18671
- Tweak convertible implicits fix #18727
Incremental Compilation
- Make incremental compilation aware of synthesized mirrors #18310
Inference
- Honour hard unions in lubbing and param replacing #18680
Infrastructure
- Use -Yscala2-library-tasty to add Scala 2 lib TASTY to scalac (internal only) #18613
- Rename
stdlib-bootstrapped-tasty
toscala2-library-tasty
#18615 - Fix #19286: Freeze rubygems-update at < 3.5.0. #19288
Initialization
- Fix #17997: Handle intersection type as this type of super type #18069
- Add test for issue #17997 affecting the global object initialization checker #18141
- Fix i18624 and add test case for it #18859
- Treat new Array(0) as immutable #19192
- Fix #18407: Ignore Quote/Slice in init checker #18848
- Check safe initialization of static objects #16970
- Pattern match support in checking global objects #18127
- Fix crash in global object initialization checker when select target has no source #18627
- Fix warning underlining in global init checker #18668
- Fix i18629 #18839
- I18628 #18841
- Make safe init checker skip global objects #18906
- Handle local lazy vals properly #18998
Inline
- Fix regression: inline match crash when rhs uses private inlined methods #18595
- Add structural classes of dynamicApply before inlining #18766
- Set missing expansion span for copied inlined node #18229
- Fix
callTrace
of inlined methods #18738
Linting
- Keep tree of type ascriptions of quote pattern splices #18412
- Fix false positive in WUnused for renamed path-dependent imports #18468
- Fix false positive in WUnused for renamed path-dependent imports (2) #18617
- Fix wunused false positive on CanEqual #18641
- Implement -Xlint:private-shadow, type-parameter-shadow #17622
- Fix: reversed wconf parsing order to mirror scala 2 #18503
- Revert Fix false positive in WUnused for renamed path-dependent imports #18514
Macro Annotations
- Enter missing symbols generated by the MacroAnnotation expansion [#18826](https://git...
3.3.2-RC1
Highlights of the release
- Improvements to code coverage (detailed list below)
- Add Stable Presentation Compiler #17528
Other changes and fixes
Backend
- Make sure synthetic apply methods are generated in deterministic order #18210
Coverage
- Only lift inner expressions when lifting repeated
Typed
arguments #18424 - Fix: scoverage statement's line number should be 1-base #18932
- Do not lift applications of context functions #18498
- Don't lift the argument of a
synchronized
block in scoverage #16941 - Fix the issue with coverage inside of a TypeApply #18420
- Coverage: mark case bodies as branches; don't ignore branches with synthetic spans #18437
Documentation
- Compiler plugin Scaladoc: document phase requirement #18394
Exports
- Refine override exclude criterion for export forwarders #17590
Incremental Compilation
- Fix overcompilation due to unstable context bound desugaring #18280
Inline
- Don't generate a super accessor for an inline method call #17598
Linting
- Wunused: Only use type treverser for checking refinements in refined type trees #17929
Parser
Pattern Matching
- Properly refine type of inlined unapply pattern #18292
Presentation Compiler
- Bugfix: suggest correct arg name completions for lambda expressions #18379
- Improvement: print better bracket suffix in completion item label #18380
- Fix presentation compiler autoimports, update presentation compiler dependencies #18264
- Update scala3-presentation-compiler to 39e349e #18296
- Update presentation compiler with changes from PR 5287 #18301
- Update presentation compiler to a829a6a #18347
- Bugfix: highlight enum cases correctly #18362
Quotes
- Do not beta-reduce/eta-expand pattern splices with contextual function types #18198
- XcheckMacro types of Block expression and Apply/TypeApply function #18242
- Fix owner of splices in class statements #18359
- Handle macro dependencies through class of
this
#18396 - Add missing span in
QuoteMatcher
#18178 - Fix stale symbol crashes in some path depended types in macro contexts #18077
- Simplify avoidance of local types of Hole #17571
Reporting
- Detail "not a constant type" message #17626
- Suggest imports for the expected type of the underlying implicit not found error #17976
- Fix: report correct location on a repeat modifier #17982
- Warn when calling synchronized on AnyVal #18021
- Fix compile error message in wildcard exports #18189
- Improve parameter type inference error messaging #18190
- Don't report warnings in migration when performing rewrites #15589
- Fix crash reporter, units and phases #17754
- Omit more prefixes in non-package module printing #17758
- Fix pretty printer to handle using and erased modifier #17952
- Add -Yprint-tasty compiler flag #17986
- Add actionable item to PatternMatchExhaustivity diagnostic #18314
Scaladoc
- Fix: -no-link-warnings does not work #17028
- Fix: Validation for API link #17099
- Scaladoc: type rendering fixes and improvements #17213
- Feat: Add a custom icon #17241
- Fix: Correction of the siteRoot path #17297
- Fix: Correct the navigation to anchor #17910
- Fix: Style for wiki syntax #18079
- Fix NoSuchElementException in scaladoc #18184
SemanticDB
- Check for primary constructor in namePresentInSource #18325
- Add -semanticdb-text compiler option #18307
Typer
- Fix pattern generation in "ordinal" mirror method #17570
- Fix superType of SuperType #17574
- Avoid crash in erasure when reference cannot be emitted #18056
- Disallow overloading from breaking stable patterns #18327
- Fix widen types before checking an implicit view exists #18719
- Properly handle SAM types with wildcards #18201
- Handle recursion in collectParts #18214
- Allow eta-expansion of inline defs #18249
- Stable names for lambda lifted methods #18281
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.3.1..3.3.2-RC1
these are:
37 Nicolas Stucki
36 Paweł Marks
28 Chris Kipp
15 Sébastien Doeraene
13 Lucas Leblanc
13 Martin Odersky
12 Guillaume Martres
10 Dale Wijnand
10 Jamie Thompson
8 ghostbuster91
6 Florian3k
5 Kacper Korban
4 Jędrzej Rochala
4 Katarzyna Marek
4 Quentin Bernet
3 Jan Chyb
3 Lucas
3 Matt Bovel
3 Seth Tisue
2 Julien Richard-Foy
2 Wojciech Mazur
1 Aleksey Troitskiy
1 Arnout Engelen
1 Bjorn Regnell
1 Eugene Yokota
1 Justin Reardon
1 Kisaragi
1 Martin Kučera
1 Matthew Rooney
1 Matthias Kurz
1 Ondrej Lhotak
1 Rikito Taniguchi
1 Stefan Wachter
1 Yuito Murase
1 rochala
3.3.1
Highlights of the release
Other changes and fixes
Backend
- Disallow mixins where super calls bind to vals #16908
- Fix #15107: Avoid re-emitting a LineNumber after only LabelNodes. #16813
Coverage
Default parameters
- Dupe fix when finding default arg getters #17058
Documentation
- Fix: ensure syntax blocks for ebnf are marked as such #16837
Erasure
- Handle
@companionClass
and@companionMethod
meta-annotations #17091
Extension Methods
- Support extension methods imported from different objects #17050
GADTs
- Fix tuple member selection so it works with GADT healing #16766
- Fix upper bound constraints, that are higher-kinded #16744
- Split out immutable GadtConstraint #16602
Implicits
- Improve subtyping check for not yet eta-expanded higher kinded types #17139
- Harden tpd.Apply/TypeApply in case of errors #16887
- Try to be more subtle when inferring type parameters of class parents #16896
- Include
P
in the implicit scope ofP.this.type
#17088
Incremental Compilation
- Fix under-compilation when the method type in a SAM changes #16996
Infrastructure
Inline
- Remove NamedArg from inlined arguments #17228
- Don't generate a Select for a TermRef with NoPrefix #16754
- Prepare bodies of inline forwarders eagerly #16757
- Do not remove inline method implementations until PruneErasedDefs #17408
Java Interop
- ClassfileParser: allow missing param names (for JDK 21) #17536
Linting
- Improve -Wunused: locals, privates with unset vars warning #16639 #17160
- Fix wunused false positive when deriving alias type #17157
- Port
-Wnonunit-statement
setting for dotty #16936
Match Types
- Normalize match type usage during implicit lookup #17457
- Fix #13757: Explicitly disallow higher-kinded scrutinees of match types. #17322
- Fix match type reduction with wildcard type arguments #17065
- Fix check whether classtag can be generated for match types #16708
Parser
- Allow lines starting with
.
to fall outside previous indentation widths #17056
Pattern Matching
- Fix #11541: Specialize ClassTag[T] in exhaustivity check #17385
- Check outer class prefixes in type projections when pattern matching #17136
- Make unchecked cases non-
@unchecked
and non-unreachable #16958 - Fix #16899: Better handle X instanceOf P where X is T1 | T2 #17382
Pickling
- ClassfileParser: Avoid cycle when accessing companion in inner class lookup #16882
Polyfunctions
- Fix type aliases in beta-reduction of polyfunctions #17054
Quotes
- Register
paramProxy
andthisProxy
inQuote
type #17541 - Only check newVal/newMethod privateWithin on -Xcheck-macros #17437
- Unencode quote and splice trees #17342
- Correctly type Expr.ofTupleFromSeq for arity > 22 #17261
- Use TermRef to distinguish distinct Type[T] instances #17205
- Check level consistency of SingletonTypeTree as a type #17209
- Fix splice type variable pattern detection #17048
- Avoid creation of
@SplicedType
quote local refrences #17051 - Dealias type references when healing types in quotes #17049
- Replace quoted type variables in signature of HOAS pattern result #16951
- Beta-reduce directly applied PolymorphicFunction #16623
- Use
Object.toString
forquoted.{Expr, Type}
#16663 - Fix Splicer.isEscapedVariable #16838
- Fix references to class members defined in quotes #17107
- Handle pickled forward references in pickled expressions #16855
- Fix #16615 - crashes of path dependent types in spliced Type.of #16773
- Disallow local term references in staged types #16362
- Refactor level checking / type healing logic #17082
- Dealias quoted types when staging #17059
- Fix quotes with references to path dependent types #17081
- Make arguments order in quote hole deterministic #17405
- Only transform the body of the quote with QuoteTransformer #17451
- Place staged type captures in Quote AST #17424
- Add SplicePattern AST to parse and type quote pattern splices #17396
Reflection
- -Xcheck-macros: add hint when a symbol in created twice #16733
- Assert that symbols created using reflect API have correct privateWithin symbols #17352
- Fix reflect.LambdaType type test #16972
- Improve
New
/Select
-Ycheck message #16746 - Improve error message for CyclicReference in macros #16749
- Add reflect
defn.FunctionClass
overloads #16849
REPL
- Always load REPL classes in macros including the output directory #16866
Reporting
- Improve missing argument list error #17126
- Improve implicit parameter error message with aliases #17125
- Improve "constructor proxy shadows outer" handling #17154
- Clarify ambiguous reference error message #16137
- Hint about forbidden combination of implicit values and conversions #16735
- Attach explanation message to diagnostic message #16787
- Propagate implicit search errors from implicit macros #16840
- Detail UnapplyInvalidReturnType error message #17167
- Add way to debug -Xcheck-macros tree checking #16973
- Enrich and finesse compiler crash reporting #17031
- Allow @implicitNotFound messages as explanations #16893
- Include top-level symbols from same file in outer ambiguity error #17033
- Do not issue deprecation warnings when declaring deprecated case classes #17165