Highlights of the release
- Bump JLine 3.19.0 -> 3.24.1 & sbt 1.9.7 -> 1.9.9 #19744
- Refactor settings & improve dx #19766
- Publish
scala2-library-tasty-experimental
#19588 - Repl - method signatures in autocomplete #19917
Other changes and fixes
Annotations
- Attempt implicit search for old style
implicit
parameters in Application matchArgs #19737
Backend
- Fix(#17255): cannot find Scala companion module from Java #19773
- Change isStatic to isStaticOwner in hasLocalInstantiation #19803
Coverage
- Port coverage filter options for packages and files #19727
Default parameters
- Lift all non trivial prefixes for default parameters #19739
Doctool
Experimental: Capture Checking
- Disallow covariant
cap
s in the lower bound of type members #19624 - Ignore orphan parameters inside a retains annotation during Ycheck #19684
- Fix the pickling of
This
inside capture sets #19797 - Add updated to SeqViewOps #19798
- Fix Function tree copier #19822
- Drop FreeSeqFactory from stdlib-cc #19849
- Fix i19859 #19860
- Various fixes to stdlib-cc #19873
- Add more methods in
SeqViewOps
#19993 - Check
This
references inrefersToParamOf
#20005
Exports
- Fix the tparam bounds of exported inherited classes #18647
Implicits
- Prefer extensions over conversions for member selection #19717
- Don't allow implicit conversions on prefixes of type selections #19934
- Make sure typeParams returns a stable result even in the presence of completions #19974
Incremental Compilation
- Fix undercompilation upon ctor change #19911
- Load but not enter case accessors fields in Scala2Unpickler #19926
Initialization
- Add supports for type cast and filtering type for field and method owner in global initialization checker #19612
- Added a second trace for global init checker showing creation of mutable fields #19996
- Suppressing repetitive warnings in the global initialization checker #19898
Inline
- Specialized retained inline FunctionN apply methods #19801
- Avoid crash after StopMacroExpansion #19883
- Check deprecation of inline methods #19914
- Inline transparent implicit parameters when typing Unapply trees #19646
- Restore pre-3.3.2 behavior of
inline implicit def
#19877
Match Types
- Cover patterns using
reflect.TypeTest
in isMatchTypeShaped #19923 - Rework MatchType recursion in collectParts #19867
Nullability
Parser
- Add support for JEP-409 (sealed classes) + Add javacOpt directive #19080
- Fix(#16458): regression in xml syntax parsing #19522
- Fix parsing of conditional expressions in parentheses #19985
Presentation Compiler
- Allow range selection on function parameter to select a parameter list #19777
Quotes
- Disallow ill-staged references to local classes #19869
- Add regression test for #19909 #19915
- Detect non
Expr[..]
splice patterns #19944 - Avoid spurious
val
binding in quote pattern #19948 - Add regression test and imporve -Xprint-suspension message #19688
REPL
- Repl truncation copes with null #17336
- Catch stackoverflow errors in the highlighter #19836
- Fix a REPL bad symbolic reference #19786
Reflection
- Fix
TypeTreeTypeTest
to not matchTypeBoundsTree
s #19485 - Improve message when tree cannot be shown as source #19906
- Fix #19732: quotes.reflect.Ref incorrectly casting
This
toRefTree
#19930 - Add check for parents in Quotes (#19842) #19870
Reporting
- Improve error reporting for missing members #19800
- Avoid repetitions in name hints #19975
- Improve error message when using experimental definitions #19782
- Make -Xprompt work as desired under -Werror #19765
- Fix #19402: emit proper error in absence of using in given definitions #19714
- Bugfix: Choose correct signature is signatureHelp for overloaded methods #19707
- Unify completion pos usage, fix presentation compiler crash in interpolation #19614
Scaladoc
TASTy format
- Add patch for undefined behavior with
object $
#19705 - Fix(#19806): wrong tasty of scala module class reference #19827
- Used derived types to type arguments of dependent function type #19838
Tooling
- Java TASTy: use new threadsafe writer implementation #19690
- Remove
-Yforce-inline-while-typing
#19889 - Cleanup unnecessary language flag #19865
- Bugfix: Auto imports in worksheets in Scala 3 #19793
- Refine behavior of
-Yno-experimental
#19741
Transform
- Short-circuit isCheckable with classSymbol #19634
- Avoid eta-reduction of
(..., f: T => R, ...) => f.apply(..)
intof
#19966 - Tweak parameter accessor scheme #19719
Typer
- Update phrasing for NotClassType explain error message #19635
- Fix java typer problems with inner class references and raw types #19747
- Approximate MatchTypes with lub of case bodies, if non-recursive #19761
- Revert broken changes with transparent inline #19922
- Delay hard argument comparisons #20007
- Fix #19607: Allow to instantiate wildcard type captures to TypeBounds. #19627
- Fix #19907: Skip soft unions in widenSingle of widenInferred #19995
- Fix untupling of functions in for comprehensions #19620
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.4.1..3.4.2
these are:
46 Nicolas Stucki
33 Martin Odersky
25 Dale Wijnand
22 Hamza REMMAL
18 Yichen Xu
17 Jamie Thompson
15 Szymon Rodziewicz
11 EnzeXing
11 i10416
9 Paweł Marks
6 Kacper Korban
4 Dan13llljws
4 Katarzyna Marek
4 Matt Bovel
4 Som Snytt
4 noti0na1
3 110416
3 Eugene Flesselle
3 Sébastien Doeraene
3 dependabot[bot]
2 Bersier
2 Hamza Remmal
2 Jakub Ciesluk
2 João Costa
2 Jędrzej Rochala
2 Natsu Kagami
2 Stephane Bersier
2 Taro L. Saito
2 aherlihy
1 Aleksander Boruch-Gruszecki
1 Aviv Keller
1 Eugene Yokota
1 Guillaume Martres
1 Jan Chyb
1 Lukas Rytz
1 Mikołaj Fornal
1 Olga Mazhara
1 Ondřej Lhoták
1 Robert Stoll
1 Seth Tisue
1 Valentin Schneeberger
1 Yilin Wei
1 willerf