Skip to content

3.4.2-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 29 Mar 12:05

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

  • Prevent HTML/XSS Injection in Scala Search #19980
  • Parse search query param in Scaladoc #19669

Experimental: Capture Checking

  • Disallow covariant caps 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 in refersToParamOf #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

  • Fix #19808: Don't force to compute the owner of a symbol when there is no denotation #19813

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 match TypeBoundsTrees #19485
  • Improve message when tree cannot be shown as source #19906
  • Fix #19732: quotes.reflect.Ref incorrectly casting This to RefTree #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

  • Fix(#16610): warn ignored Scaladoc on multiple enum cases #19555

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(..) into f #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.42-RC1 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
     7	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