github scala/scala3 3.3.9-RC1

latest release: 3.10.0-RC2
pre-release3 hours ago

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 \n for 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 jvm directive 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-nodejs to 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

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

  • Fixes #25943: Track super-calls as call edges in LambdaLift
    #26029

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

  • Fix #25866: match-alias subtyping and wildcard appliedTo
    #25981

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 unapply returns a Boolean-deriving opaque type
    #26658
  • Preserve GADT constraints until PatternMatcher
    #26805
  • Make sealed abstract java classes exhaustive checkable
    #25788

Pickling

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

  • Fixes #25702: Avoid AnyClass fallback in requiredClass
    #26010

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 baseTypeCache after 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 wrapArray and wrapArrayMethodName
    #26162

Value Classes

  • Replicate value class erasure binary compat hack in GenericSignatures
    #25775

Don't miss a new scala3 release

NewReleases is sending notifications on new releases.