# Scala 3.10.0-RC1 - Product: Scala (https://whatsnew.fyi/product/scala) - Vendor: Scala Center - Date: 2026-09-03 - Version: 3.10.0-RC1 - Original notes: https://github.com/scala/scala3/releases/tag/3.10.0-RC1 - Permalink: https://whatsnew.fyi/product/scala/releases/3.10.0-rc1 - Labels: Pre-release What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Don't infer implicits from non-accessible companion objects - **changed** — Enhance constant-folding during inlining - **changed** — Replace catching StackOverflowError with fuel - **changed** — Forbid `this` in top-level definitions - **changed** — Replace runtime.Rich* implicits on primitives by direct extension methods - **changed** — Make `->` sugar an inline method - **removed** — Make `with` type operator an error - **changed** — For bytecode generation, use stock ASM instead of the old scala-asm fork - **added** — Add support for `\s` space escape in string literals - **added** — Add support for `//> using dep` directives in the REPL with trailing code - **added** — Add .deb and .rpm packaging - **changed** — Enable strictEqualityPatternMatching by default and add deprecation mechanics for `-language` feature flags - **added** — SIP 61: Unroll default arguments for binary compatibility now in preview - **added** — SIP 75: Relaxed lambda syntax now in preview - **added** — SIP 68: Referenceable package objects now in preview - **added** — Inline Traits & Specialized Traits as experimental feature - **added** — Modular AGentic Interface Code: Spec strings as experimental feature - **deprecated** — Deprecate `scala.annotation.strictfp` - **fixed** — Synthetic cast must not break tailrec optimization - **changed** — Generate more accurate generic signatures for boxed primitives ##### Breaking changes - Don't infer implicits from non-accessible companion [#25367](https://github.com/scala/scala3/pull/25367) - Enhance constant-folding during inlining [#25731](https://github.com/scala/scala3/pull/25731) - Replace catching StackOverflowError with fuel [#25937](https://github.com/scala/scala3/pull/25937) - Forbid `this` in top-level definitions [#26448](https://github.com/scala/scala3/pull/26448) - Replace runtime.Rich* implicits on primitives by direct extension methods. [#23872](https://github.com/scala/scala3/pull/23872) - Make `->` sugar an inline method [#24728](https://github.com/scala/scala3/pull/24728) - Make `with` type operator an error [#26545](https://github.com/scala/scala3/pull/26545) - For bytecode generation, use stock ASM (not our old scala-asm fork) [#26772](https://github.com/scala/scala3/pull/26772) #### Highlights of the release - Add support for `\s` space escape [#26515](https://github.com/scala/scala3/pull/26515) - Add support for `//> using dep` directives in the REPL (along with trailing code) [#26507](https://github.com/scala/scala3/pull/26507) - Add .deb and .rpm packaging [#26858](https://github.com/scala/scala3/pull/26858) - New stablized features: - SIP 71: strictEqualityPatternMatching is now enabled by default default & add deprecation mechanics for `-language` feature flags [#26424](https://github.com/scala/scala3/pull/26424) - New preview features: - SIP 61: Unroll default arguments for binary compatibliy is now in preview [#24903](https://github.com/scala/scala3/pull/24903) - SIP 75: Relaxed lambda syntax is now in preview [#26728](https://github.com/scala/scala3/pull/26728) - SIP 68: Referenceable package objects is now preview [#24586](https://github.com/scala/scala3/pull/24586) - New experimental features: - Pre-SIP: Inline Traits & Specialized Traits [#26156](https://github.com/scala/scala3/pull/26156) - Pre-SIP: Modular AGentic Interface Code: Spec strings [#26486](https://github.com/scala/scala3/pull/26486) #### Other changes and fixes ##### Annotations - Add regression test for Java annotation @Retention visibility (#389) [#26339](https://github.com/scala/scala3/pull/26339) - Synthetic cast must not break tailrec [#26343](https://github.com/scala/scala3/pull/26343) - Deprecate `scala.annotation.strictfp` [#24839](https://github.com/scala/scala3/pull/24839) ##### Backend - More accurate generic signatures for boxed primitives [#25944](https://github.com/scala/scala3/pull/25944) - Do not emit unnecessary fields for nested objects [#25538](https://github.com/scala/scala3/pull/25538) - For bytecode generation, use stock ASM (not our old scala-asm fork) [#25989](https://github.com/scala/scala3/pull/25989) - Layer JVM backend without cycles [#26237](https://github.com/scala/scala3/pull/26237) ##### Desugaring - Use updated params when desugaring macro context bounds [#26206](https://github.com/scala/scala3/pull/26206) ##### Scaladoc - Scaladoc: find members ending in `!` or `$` [#26739](https://github.com/scala/scala3/pull/26739) - Scaladoc: Do not crash on class+module in API package [#26766](https://github.com/scala/scala3/pull/26766) - Scaladoc: Do not allow resolving warnings to hide each other [#26742](https://github.com/scala/scala3/pull/26742) - Scaladoc: Recursively unwrap exported trees [#26737](https://github.com/scala/scala3/pull/26737) - Scaladoc: Stop hijacking link clicks [#26664](https://github.com/scala/scala3/pull/26664) - Scaladoc: stay on the same page when switching versions [#26762](https://github.com/scala/scala3/pull/26762) - Disable bogus Scaladoc warnings [#26663](https://github.com/scala/scala3/pull/26663) ##### Documentation - Drop: remove access to `Predef.any2stringadd` [#24656](https://github.com/scala/scala3/pull/24656) - Fixes to `into` doc [#26203](https://github.com/scala/scala3/pull/26203) - Fix markdown code fences in PartialFunction.sca _[Truncated at 4000 characters — full notes: https://github.com/scala/scala3/releases/tag/3.10.0-RC1]_