3.3.9-RC1
Pre-release
Pre-release
·
17810 commits
to main
since this release
Highlights of the release
- Stop using custom fonts for Scaladoc to reduce javadoc jar size
#26393 - Improve Java generic signatures for higher-kinded types, value classes
#25540
#25744
#25631 - Exhaustiveness checking for sealed abstract Java classes
#25788 - Actionable diagnostic for missing members
#23572 - Warn on dubious negative literal syntax (
- 42,-42.abs)
#24163 - Scaladoc no longer crashes with an NPE on JDK 25
#25779
Other changes and fixes
Backend
- Box bounded arguments of HKT result types in Java generic signatures
#26787 - Handle HKT bounds in Java generic signatures
#25744 - Emit acceptable Java generic signatures for HKTs
#25540 - Unwrap refined types for Java generic signatures
#25626 - Fix Java signatures for arrays of value classes
#25631 - Fix generic signature of trait val setter
#26374 - Fix: reliably decide whether to generate static forwarders
#26510 - Fix issue with reading legal java cyclic signatures
#26775 - Do not emit Java generic signatures for trait private val setters
#26633 - Fix crash during generic signature emission for inner classes of type aliases
#26202 - Parse Java annotations on wildcard type arguments
#26187 - Test Java annotations on varargs element types
#26188 - Fix generic signatures of forwarders containing value classes
#25879 - Ignore @throws annotation on non-methods
#26802
CI
- Use
\nfor missing methods patch
#26133 - Fix #25712: Reset frozenConstraint in
TypeComparer.init()
#25766 - Enable assertions for tests and fix other issues
#26168 - Skip mixed Scala-Java tests automatically on Scala.js
#26139 - Fixes for the bisect script
#26116 - Fix broken
//> using jvmdirective in the bisect script
#26115 - Improvement: Add -Wunused:all to presentation-compiler
#26113 - Restore cmdTests and bootstrappedOnlyCmdTests execution in CI
#26082 - Deduplicate community build projects list
#26054 - Promote t750 #25961
- Resurrect some Scala 2 tests for generic signatures
#25736 - Fix main build: use vcBoxing instead of unboxedVCs
#25710 - [tools] Improvements and cleanups to bisect script
#25698 - Restore test #25671
- Add tests from #25703
- Add tests from #26813
Coverage
- Scoverage: Fix coverage parameterless select qualifier casts
#26087 - Scoverage: Enable passing coverage tests
#26090 - Scoverage: correctly detect curried constructor applications
#26048 - Scoverage: fix broken warnings related to tail recursion and infinite loop
detection #25941 - Scoverage: do not instrument methods that have too large bodies
#25629 - Fix separate compilation tests failing under coverage
#25604 - Ignore coverage probes in unused update analysis
#26711
Dependency Upgrades
- Bump coursier to 2.1.25-M25 (was 2.1.25-M24)
#26057 - Update
scalajs-env-nodejsto 1.6.0
#26095 Bump
jekyll-sass-converter from 2.2.0 to 3.0.0 in /docs/_spec
#25963 - Bump rouge from 3.30.0 to 4.7.0 in /docs/_spec
#25964 - Update all dependencies #25959
- Update a few dependencies #25952
- Bump VirtusLab/scala-cli-setup from 1.11 to 1.13
#25846
Desugaring
- Use updated params when desugaring macro context bounds
#26206 - Desugaring: avoid patdef optimization for lazy vals
#26770
Enums
- Regression test for #25723
#26205 - Adjust error on bad enum #23080
- Fix memberType for constructor params
#25669
Erasure
Experimental: Capture Checking
- Make type arguments to default methods InferredTypeTrees
#25852
Implicits
- Also map types in Implicits.emitDictionary
#26143 - Remove questionable transform of Select from
SelectStatic
#25620 - Fixes #24914 Treat equivalent candidates as divergent in implicit search
#25910
Incremental Compilation
- Fix #25894: break cross-unit cyclic export on partial recompile
#25900 - Ignore annotations no longer on the classpath in ExtractAPI
#25889
Inline
- Add regression test for 12577.scala
#26256 - [OpenCB Project Fix] Fixes #26015: Start of NoSpan in adaptToArgs fallBack
#26017 - Fix regression: special case Symbol-less overloaded TermRefs in Inliner
#26853 - Fix (#26178) private inline subclass access proxy bug
#26176
Lambda Lift
Linting
- Improve unused check of variable in assignment body
#24685 - Tweak -Wconf:help for correctness
#25615 - Fix false unused-var warning on self-assignment reads (#26620)
#26635
Opaque Types
- Fixes #25754: Preserve apply result type after beta reducing through opaque
proxies #25988 - Fix crash on invalid opaque type in package
#26118 - Add regression test for i15050
#26110
Match Types
Parser
- Warn dubious negative literal syntax
#24163 - Check ascription in valdef pattern
#25597 - Parser: Recover from unclosed string literal errors
#26763 - Warn if name of empty template has trailing colon
#23907
Pattern Matching
- Fix crash when
unapplyreturns a Boolean-deriving opaque type
#26658 - Preserve GADT constraints until PatternMatcher
#26805 - Make sealed abstract java classes exhaustive checkable
#25788
Pickling
- Fixes #25947, #11043: Avoid JavaArrayType in synthesized classOf for
structural calls #26028 - Fixes #25801: Handle
TypeDefsinensureHasSym
#26011
Presentation Compiler
- Bugfix: Don't show errors from other files
#26346 - Chore: Add batch semanticdb for Metals 2
#26323 - Fix PcInlayHints crash on inlined trees from external dependencies
#26385 - Improvement: fallback PC symbol location position to a classfile if no source
exists #26454 - Fix outline compilation with string interpolation
#26636
REPL
- Relax typer position assert in interactive mode
#26130
Reporting
- Feat: Add actionable diagnostic for missing members
#23572 - Use context.outers instead of owner chain to find class for suspicious
top-level resolution #20717 - Include span of bad args if multiline
#25699 - Add a test case extracted out of #25977
#26058 - Optimize handling of -Yexplain-cycles
#26061 - Display position in
TreeChecker.checkType
#25840 - Do not warn for package object at the top level
#25826
Refactoring
- Delete dead code #26227
- Fix some typos #26230
- Delete dead LRUCache #26229
- Fix typo in Mode.toString #26223
- Remove dead large class detection
#26212 - Fix typos in build file and EtaExpansion
#25956 - Fix typos found by GitHub code analysis
#25954 - Update remaining uses of Dotty to Scala 3
#25953 - Fix warnings in Scaladoc tests
#25919 - Remove obsolete checkBackendNames switch
#25918 - Move generic signature tests to the right folder
#25888 - Fix warnings in presentation-compiler
#25827 - Fix typo in
transparent#25753
Scala-JS
- Tolerate empty paths in JSPositions conversion
#26140
Scaladoc
- Scaladoc snippets: fix Show all lines & Scastie popup theme bugs
#26165 - Avoid NPE in Scaladoc signatures on JDK 25
#25779 - Scaladoc: add fallback lookup from nearest package
#26661 - Skip unresolved annotation trees (during TASTy loading)
#26520 - Fix Scaladoc top package order to be alphabetical
#26653 - Stop using custom fonts for Scaladoc
#26393 - [DISC-18903] Remove jquery and hanging javascript assets.
#22014
Security
- Bump
jackson-*to 3.1.2 (was 2.15.1)
#25785
SemanticDB
- Bugfix: Fix the issue and no longer show <?> which is invalid
#26607
Standard Library
Quotes
- Check that Closures refer to anonymous functions under
-Xcheck-macros
#26050
Transform
Typeclass Derivation
- Fix synthesis of mirrors for GADT with dependent type parameters
#26080
Typer
- Fixes #24414: Fix StaleSymbolException in Namer.addChild after compilation
suspension #26019 - Preserve type info when lifting stable arguments
#26063 - Fixes #25856: Position not set crash in implicit search during import
qualifier #26032 - Fixes #20010 Avoid crash on missing TASTy class references
#25908 - Fixes #24719 Fix LazyAnnotation.tree reentrance in Namer.addChild
#25909 - Fixes #24056 Dealias value class types in structural access
#25907 - Regression test #25685
- Fix stale
baseTypeCacheafter synthetic Product.Mirror parents added
#26714 - Fix regression #26153 (in dotty-cps-async) use typer skolems as inline proxy's
type #26563 - Fix mismatch between
wrapArrayandwrapArrayMethodName
#26162
Value Classes
- Replicate value class erasure binary compat hack in GenericSignatures
#25775