github scala/scala3 3.10.1-RC1

pre-release3 hours ago

Highlights of the release

  • Bump Scala CLI to 1.18.0 (was 1.17.1) #27255
  • Implement SIP-77: Method Block End Markers #24251

Other changes and fixes

Annotations

  • Avoid crashing for an inlined Java annot with a default value #27095
  • Support Symbol name in @deprecatedName #27048
  • Reject @throws on non-methods and constructors #27064
  • Check whether annotation constructors are deprecated #27049

JVM Backend

  • Optimize and simplify ScalaPrimitives #27142
  • Stop capturing a Context in PostProcessor #26328
  • Use the right context when loading symbols during gensig #27031
  • Encapsulate CallGraph and Inliner #26320

Coverage

  • Coverage: unescape when deserializing #27127

Documentation

  • Tweak doc warnings #26855
  • Fix typo in -> ScalaDoc #26979
  • Doc: clarify behavior of line-related functions #27047

Exports

  • Fix generic signature of exported module accessors #27046
  • Improve error messages for export statements #27186

Implicits

  • Reset typer state on issueErrors #23556

Incremental Compilation

  • Fix Symbol.copy ignoring its compilation unit argument #27162

Inline

  • Error out when primaryConstructor params are used out of scope in macros #27100
  • Fix #26958 recover call skolem nested in a sibling inline proxy's type #26966
  • In inlined code, try to preserve SkolemTypes generated from outer inline calls #26915
  • Also call avoidingType when using the custom unpackProxiesFromResultType during inlining #26893

JDK

  • ClassfileParser: Compute permitted symbols lazily to avoid cyclic refs #27129

Parser

  • Parser: do not create empty integer literals #27126

Pattern Matching

  • Fix pattern matching on sealed Java classes with unavailable member types #27069
  • Avoid trivially true branch for the last arm of an exhaustive match #27070

Performance

  • Use String as the SourceFile content type #26846
  • Micro-optimizations, mostly focused on allocations #27077
  • Avoid some instances of boxing #26939

Presentation Compiler

  • Add small performance improvements to the presentation compiler #27083
  • Fix version completion detection after a trailing colon #27035

Quotes

  • Fix macro typecheck when source content is not available #27195
  • Fix crash pickling a quote as an inline argument (in different source) #27039
  • Also dealias transparent types when dealiasing opaques in typedSplice #26984
  • Fix stale symbol error caused by currentSymbol.isStaticOwner call #26962
  • Fix how DefDef references are recorded when checking macros #27263

REPL

  • Parser: allow incomplete files when return type is missing #27175
  • Feat(repl): add resource directives and a :resource command #27073
  • Fix(repl): keep session state when using :jar and :dep #27072
  • Don't try to flexify type lambdas in FlexibleType.make #27057
  • Don't warn about flexible types in REPL wrapper objects #27058
  • Fix(repl): do not reuse a resN name that is still in use #26974
  • Fix(repl): -Xrepl-interrupt-instrumentation:local instrumenting nothing #26960
  • Remove uses of unsafeNulls from the REPL #26954
  • Update JLine patch version #27059

Reporting

  • Warn when catching Errors #26794
  • Make coverage skip message an info #27028
  • Improve message for ambiguous negative literal #27037
  • Warn on synchronized for Java value classes #27128
  • Add forgotten stripNull to #27128 #27147

SBT Bridge

  • Signal dependencyPhaseCompleted after dependencies are sent #27135
  • Send dependencies of Java sources to zinc under -Xjava-tasty #27137
  • Pipelining: wait for queued early TASTy before ending a run #27141
  • Report JDK classes under -release as binary dependencies #27132
  • Omit the empty package from names of Java classes reported to zinc #27136

Scala JS

  • Fix crash boxing Scala.js (+ Scala2) value class to Object #27082
  • Scala.js: Prepare for minimal Wasm modules. #26990

Scaladoc

  • Scaladoc: pass classpath to tasty inspector via ctx #27167
  • Fix Javadoc anchors built from flexible types #27060

Scripting

  • Close the Source used to validate target scripts #27188

Settings

  • Fix MainGenericCompiler -D property parsing #27025

Standard Library

  • Type Fix in StreamExtensions #27075
  • Add into modifier to the Factory and BuildFrom traits #26326

Transform

  • LambdaLift: look for outer params in all owners #27029

Tuples

  • Restore TupleXXL generic signatures for tuples longer than 22 #27120

Typeclass Derivation

  • Support derivation for self-based type classes #26719

Typer

  • Fixes for Java inherited statics #27178
  • Don't lose type aliases under annotations in suppressInto #27085

Experimental: Capture Checking

  • Make levelOK look at core capabilities #27170

Experimental: Explicit Nulls

  • Drop null pattern warning #26967
  • Fix isNullableClassAfterErasure for Null under AnyVal #26971
  • Fix Java record unapply crash under explicit nulls #26975
  • Fix #26994 : make isNotNull true for this and super #26996
  • Represent FlexibleType using AppliedType #27004
  • Cast pattern matcher throwaway plan to type check under explicit nulls #27052
  • Add missing stripNulls to overload resolution of wildcard arguments #27053

Experimentals

  • Expected type of literal is behind feature flag #27124

Contributors

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

According to git shortlog -sn --no-merges 3.10.0..3.10.1-RC1 these are:

    63	Solal Pirelli
    16	Wojciech Mazur
    12	Ondřej Lhoták
    11	dependabot[bot]
     9	Jan Chyb
     8	Jakub Warchoł
     8	Rikito Taniguchi
     6	Lukas Rytz
     6	Matt Bovel
     6	Piotr Chabelski
     5	Bartłomiej Kozak
     5	Martin Odersky
     5	Som Snytt
     4	Jamie Thompson
     4	Kenji Yoshida
     4	Mikołaj Fornal
     4	Sébastien Doeraene
     3	TATSUNO “Taz” Yasuhiro
     3	Tomasz Godzik
     3	Yao Xu
     2	Chua Chee Seng
     2	David Barri
     2	Guillaume Martres
     2	James You
     2	Oron Port
     2	cui fliter
     1	Anatolii Kmetiuk
     1	Jędrzej Rochala
     1	Natsu Kagami
     1	Oliver Bračevac
     1	Ondrej Lhotak
     1	Piotr Paradziński
     1	Puerco
     1	Zieliński Patryk
     1	myetcd
     1	noti0na1

Don't miss a new scala3 release

NewReleases is sending notifications on new releases.