github scala/scala3 3.8.3-RC1

pre-release5 hours ago

Release highlights

  • Add support for local coverage on and off with // $COVERAGE-OFF$ and // $COVERAGE-ON$ #24486
  • Deprecate for removal -print-lines compiler setting #25330

Other changes and fixes

Desugaring

  • Fix #24997: Avoid unnecessary CHECKCAST in untupled function parameters #25085

Documentation

  • Fix little errors in the API documentation #25241
  • CC Language Reference: Rename cap to any/fresh #25057

Enums

  • Deprecate override class, improve checks #24828
  • Fix Java enum forwarders to pull from companion on initialization #24361

Experimental: Capture Checking

  • Rename caps.cap to caps.any #24923
  • Track global capabilities #24883
  • Treat local mutable vars as capabilities #24815
  • Fix Crashes when Capture-set Parameters Conflict with Terms #25029
  • Replace "cannot be included in" by "cannot flow into" in error messages #25155
  • CC: Add field captures to self-type constraints #24984
  • Add uses clauses for templates #24857
  • Drop special code paths for objects #24881
  • Do not consider generated getters to be update def #24906
  • Under cc, mark inferred type arguments to inline methods with an @inferred annotation #25175
  • Handle call-by-name types in bad locations under cc #25154
  • Fixes for global capabilities #25123
  • Warn if reach capability in result will likely cause leakage #24860
  • Make <fluid> decorations replace existing capture sets #25012
  • Make TypeMaps in Setup work correctly for fresh #24985
  • For a limited time, also recognize caps.cap #25076
  • Fix closure typing #25014
  • Map class capture sets via as-seen-from with prefix of created types #24830

Experimental: Modularity

  • Fix nested desugaring of applied constructor types #25288

Exports

  • Add ctor proxies before exports #24884

Inline

  • Make containsOuterRefsAnywhere follow aliases #25214
  • Find annotation args in inline expansion #24895
  • Also substitute symbols in case bindings symbols #24849

JDK

  • Skip over JEP 445 compact compilation units #23247
  • Handle MissingType during Erasure phase #24817

JVM Backend

  • Simplify JVM interface list emission, remove a mini-phase #25203
  • Don't generate bridge methods for inaccessible Java package-private methods #25166
  • Revise isLocalToCompilationUnit #24856

Linting

  • Extension check handles hiBound of opaque type #25172
  • Distrust tree pos for patvar lint #25043
  • Move second CheckUnused after pattern matcher #25114
  • Unused lint ignores args to ctor of enclosing class #24768
  • Check inline expansion for exclusion #23019

Metaprogramming

  • Fix: Fix incremental compilation of (some unquoted) macros #24969

Named Tuples

  • Don't try checking for ambiguous single-element tuples when in types #24910
  • Fix "NamedTuple type in match is parsed as named pattern" #24929
  • Fix "Named pattern matching doesn't work in val statements or for generators" #24928
  • Fix false exhaustivity warning for pattern returning NamedTuple #23362

Overloading

  • Prefer non-extension to extension #24943

Parser

  • Check seen for TypeParamRef in TypeSizeAccumulator #25264
  • End of new expr never shrinks #25253
  • Use toVector for XML literal sequences #23221

Pattern Matching

  • Emit unchecked warnings for trait patterns #24962

Presentation Compiler

  • Bugfix: inline value false-positive shadowing with lambda params #25140
  • Test hover on backticked identifiers with whitespace #25142
  • Inlining interpolated variables #25144
  • Bugfix: treat self types as parent types #25167
  • Feat(pc): add closing labels inlay hints #25178
  • Coursier dependency imports should have lexicographic ordering #21592
  • Bugfix: Fix various minor presentation compiler issues #25256
  • Fix negative activeParameter in signature help #24945
  • Closes #7532: Parameter hints not working for functions #23854
  • Fix opaque types displayed as Nothing & Any in hover and signature help #24921

REPL

  • Skip module-info.class files during REPL tab-completion #24838
  • Fix REPL usage of macros loaded via :dep and :jar #25312
  • Make REPL type echo-ing use partially qualified names where made possible by imports #24850

Reporting

  • Check -Werror on summarize #25096
  • Fixes #24233: Remove misleading JDK compatibility hint for TASTy errors #25171
  • Ignore resetting if preferPrevious #24991
  • Enhance WInferUnion to not warn propagated explicit union types #25280
  • Improve diagnostic message for unnecessary trailing underscore in eta-expansion #25285
  • More descriptive "not found" message when type/term exists with the expected term/type name #24959
  • Warn on Scala 2 auto-apply if loosely nullary #24811
  • Fix printing references to nested objects #25086
  • Add error note for type mismatch involving blocks without last expression #25181
  • Drop -print-lines option #24905
  • Don't suggest invisible members of root imports #24999

Rewrites

  • Accommodate ArrowAssoc in infix named arg migration #25255

Scaladoc

  • Init MacroClassLoader in scaladoc #25141
  • Scaladoc Overload Method Link Fix #25156
  • Fix duplicate member entries in Scaladoc generation #24712
  • Scaladoc Tests for CC #25277
  • Skip generation of API pages when building reference docs #25153

Standard Library

  • Remove incorrect equals implementations from ArrayBuilder #25205
  • Use StringBuilder intead of StringBuffer in Regex #24576
  • Update StringOps.* implementation #24786

Tooling

  • Fix behavior of -Ydump-sbt-inc #25125

Typer

  • Never widen constant type on selector type in matches #25197

Quotes

  • Fix #25208: handle AndType(TermRef, TypeRef) in TreeUnpickler path trees #25209

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.8.2..3.8.3-RC1 these are:

    80	Martin Odersky
    46	Wojciech Mazur
    26	Som Snytt
    11	Li Haoyi
    10	Tomasz Godzik
     9	Kenji Yoshida
     9	Oliver Bračevac
     9	Solal Pirelli
     7	Rikito Taniguchi
     7	dependabot[bot]
     5	Jakub Warchoł
     4	Emil Ejbyfeldt
     4	Hamza Remmal
     4	Zieliński Patryk
     4	noti0na1
     3	Binayak Das
     3	Lukas Rytz
     3	Matt Bovel
     2	Chua Chee Seng
     2	Eugene Yokota
     2	Jamie Thompson
     2	Jędrzej Rochala
     2	Natsu Kagami
     2	Oscar Boykin
     2	P. Oscar Boykin
     2	Piotr Chabelski
     2	Sébastien Doeraene
     1	Anatolii Kmetiuk
     1	Aviral Garg
     1	Bbn08
     1	Bill Venners
     1	Eric Ventor
     1	Jentsch
     1	Jeon Yoonjae
     1	Krrish Biswas
     1	Matt Dziuban
     1	Merlin Hughes
     1	Philippus Baalman
     1	Vadim Chelyshov

Don't miss a new scala3 release

NewReleases is sending notifications on new releases.