Skip to content

chore(deps): update scala (major)#5387

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/major-3-scala
Open

chore(deps): update scala (major)#5387
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/major-3-scala

Conversation

@renovate

@renovate renovate Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
org.scala-lang:scala-library (source) 2.13.183.8.4 age confidence

Release Notes

scala/scala3 (org.scala-lang:scala-library)

v3.8.4

Compare Source

Highlights of the release

Other changes and fixes

Annotations

  • Also copy param annots at mixin #​24916
  • Named arg may be deprecatedName #​21588
  • Use dealiasKeepRefiningAnnots in AvoidMap #​25609

Backend

  • Do not simplify isInstanceOf if unrelated types might be subtypes at run-time #​25535
  • Port more Scala2 tests + some mixin improvements #​25573
  • Use Objects.equals in translating == #​25314

Compiler Phases

  • Harden Period creation and use of Run/PhaseId #​25484
  • Make Phase.run protected #​25366

Context Functions

  • Fix crash when processing path dependent context functions using HKTs #​25530

Coverage

  • Fix #​25555: Preserve singleton precision during scoverage lifting #​25556
  • Fixes #​25482: Ensure package transformation properly handles language imports in InstrumentCoverage #​25546
  • Scoverage: do not instrument erased values. #​25298

Default parameters

  • Fix named arguments evaluation order with by-name parameters #​25161
  • Typer: remove by-name lifting and replace default-getter args with fresh syms #​25502

Documentation

  • Error mentions bad _1 selector #​25616
  • Document Scala compiler error codes #​24734
  • Fix capture checking doc links in language.scala #​25498
  • Docs: apply snippet compiler on new types reference docs #​19513
  • Remove outdated comment in value classes #​25428
  • Update IsIterable scaladoc #​24692

Enums

  • Make enum apply ascriptions inferred types #​25562

Extension Methods

  • Accept using right associative parameters #​24766
  • Better handling of illegal trees in extension #​25368

GADTs

  • Also trust TypeTest when there is a Bind #​24568

Implicits

  • Deprecation when inferring implicit from non-accessible companion #​25516
  • Fix missing deprecation warning for implicit in non-accessible companion #​25608
  • Update migration message #​25627

Inline

  • Ensure the inline match scrutinee type conforms to the recalculated type #​24988
  • Do not update Symbol defTrees when retyping after Inlining #​23870
  • Inlines: decide sealing against original target, while using widened type as cast destination #​25448
  • Do not generate access proxies for locally defined protected defs #​25056
  • Avoid useless scrutinee proxy vals in inline match reduction #​25279
  • Improve the test for creating protected method accessors for inlines #​25865

Linting

  • Match apply in PolyFunction for override #​25505
  • Value discard checks inline call for exemption #​25554
  • Introduce error message ids for shadow warnings #​25101
  • Warn if for with many vals and overloaded map #​25090

Match Types

  • Restore MatchTypeNoCases warning with correct source position #​25470

Named Tuples

  • Fix Ycheck crash from singleton tuple selects after specialization #​25331
  • Fix #​23621: make named tuples exhaustive checkable #​25267

Nullability

  • Patch to allow interop with XMLBuilder and -Yexplicit-nulls #​25221
  • Be honest about the nullability of ConsoleReporter.reader and SourcePosition.outer. #​25561

Opaque Types

Overloading

  • Pretype args before skipping clause of overloaded application #​23012

Parser

  • Fix #​20063: Java leading annotation parsing #​25503
  • Observe outdent also for type cases and type blocks in quotes #​25519
  • Fix: import resolution for Java #​25537
  • Fix #​25456: parser crash on polymorphic context bound #​25623
  • Accept primitive.class in annotations #​25363
  • InCase has indent width of case #​25295
  • Don't automatically insert OUTDENT before COMMA #​25501
  • Add "did you mean to use parentheses/a block" when finding a complex expression on the RHS of an infix operator #​25099
  • Pat var must be isVarPattern #​25701
  • Don't pop outermost region when skipping #​25738
  • Context bound always has a span #​25809
  • Don't lookahead from interpolation #​25834

Pattern Matching

  • Clean desugaring of simple tuple assignments #​25010
  • Extend caching in the space engine beyond local context #​23483
  • Prevent from getting children in case of non-sealed private #​25359
  • Use MatchCaseUnreachable #​24829
  • Fix wrong exhaustive check with sequence wildcard on case class with custom unapply #​24260
  • Try expanding case class to the product of its fields #​25454
  • Fix false-positive pat mat unreachable case warning #​25978

Positions

  • Preserve span of this during statification of trait constructors #​25354

Presentation Compiler

  • Improvement: Add fallbacks in non critical places for presentation compiler #​25483
  • Improvement: Use method type if it's available #​25641
  • Bugfix: Fix wrong type in InferredType code action #​25469
  • Fix & feat: improvements in selection ranges #​25290
  • Fix: ignore implicit apply for signature help #​25294
  • Bugfix: remove stale top-level symbols between runs #​25317
  • feature: Improve the logical sources provider #​26079

Quotes

  • Fix crashing for context bound type variables in quoted patterns #​25286
  • Remove redundant mapOver in fixThisTypeModuleClassReferences #​25440
  • Improve LambdaTypes handling in Quotes reflect memberType #​25786

Reflection

  • Fix Select.copy in reflect API losing DerivedName for default getters #​25269
  • Do not expose ClassInfo in memberType in reflect API #​24922

Reporting

  • Force conditional warnings when configured #​25552
  • Suppressions before finalize #​25576
  • Use dollar-free param names in stub implementations #​25646
  • Fix #​24711: Use dot notation for Java nested types in error messages #​24919
  • Use deprecatedOverriding message #​25439
  • Improve message for misplaced using #​15624
  • Use other tree for actual symbol of Assign #​22869
  • Add ErrorMessageID to -Winfer-union warnings (#​25073) #​25249
  • Fix TastyPrinter's JAR-walking logic to include subdirectories #​25678

REPL

  • Allow global language imports in REPL and snippet compiler #​25458
  • Fix all REPL tests when production behavior is enabled #​25449
  • Add setting to control REPL print height #​25560
  • Fix #​25691: scalaXml Elem rendering in repl #​25781
  • Fix Ctrl+C handling in the REPL #​25782
  • Fix "Fix Ctrl-C Handling in the REPL" #​25835

Rewrites

  • Fix incorrect rewrite of expr _ when expr has a function type #​25457

Runner

  • Fix for #​22443: prevent stty from being called when not running in a terminal #​22444

Scala.js

Scaladoc

  • Use <sup> tags for exponents in Scaladoc comments #​25645
  • Do not hide when a class or a trait extends Any #​25403
  • Do not generate documentation for AnyVal, it exists now #​25399
  • Ability to hide snippets from the documentation #​25411
  • Update scaladoc signature for given methods #​25325
  • Fetch the right kind for synthesised definitions #​25405
  • Scaladoc: Take title from sidebar.yml into account #​18997
  • Bump jackson-* to 3.1.2 (was 2.15.1) #​25785
  • Parse HTML properly in Scaladoc #​25681

SemanticDB

  • Encapsulate SemanticDB package, unify symbol and document printing #​25084
  • Better refinement symbols in semanticDB #​18604

Standard Library

  • Array.range trusts NumericRange.count #​24878
  • Chore: optimize lazy val with power of two. #​22428
  • Move process parse exceptions to sys.error instead of a custom exception #​25675

Syntax

  • Check protected parent constructor accesses only occurs in child constructors #​25511
  • Fix protected constructor access #​25523
  • Do not warn for package object at the top level #​25826

TASTy

  • Fix infinite loop with bad section ends in TastyHeaderUnpickler #​25676

Tooling

  • Fix MSI installer reporting wrong Scala version on Windows #​25591
  • Fix -Ymagic-offset-header for DoubleDefinition error and implicitNotFound errors, and remove global unmanaged cache #​25706

Transform

  • Always encode in derived name #​23478
  • Fix "Scala 3.8.3 compiling covariant overrides with separate compilation causes AbstractMethodError at runtime" #​25659
  • Do not overwrite the supertype of non-trait super in Erasure #​26081

Tuples

  • Normalize tuple types when typing patterns #​25335
  • Rewrite Desugar.makePatDef to fix typing issues and be more understandable #​24972

Typeclass Derivation

Typer

  • Preserve pattern, use tuple type when optimizing #​25566
  • Detect InsertedApply on Apply to break synthetic apply loops, not just Select #​25463
  • Fail self-recursive deferred given impl #​22595
  • Use TypeComparer.constValue in TypeEval #​24718
  • Add the transparent flag to java.lang.Object #​25394
  • Make type arguments to default methods InferredTypeTrees #​25852

Experimental: Capture Checking

  • Distribute capture set into and-type on RHS of comparison #​25509
  • Fix global capabilities support in scaladoc #​25563
  • Improve capture-error precision for lambdas #​25583
  • Make result types of hoisted superArg defs InferredTypes #​25577
  • Transform result any to fresh in Setup.transformSym #​25584
  • Propagate expected types when rechecking match return expressions #​25580
  • Drop assertion in toFunctionType #​25628
  • Delay normalization of capture sets of vals and defs #​25640
  • Fluidify explicit self types for non-CC classes #​25639
  • Add missing TypeMap in Setup: FreshCapToResult #​25648
  • Fixes for capture checking case class methods #​25278
  • Don't add capture variables for type arguments with pure upper bounds #​25316
  • Two fixes for #​25251 #​25488
  • Fixed #​25430: Add missing CaptureChecked flag during ExpandSAMs #​25443
  • Fix accessibility check for any's in static objects #​25582
  • Disallow type parameters in OnlyCapability annotations #​25496
  • Capture check Try #​25072
  • Make Capability types have implied capture sets for new #​25346

Experimental: Safe Mode

  • Enhance safe mode #​25638
  • Fixes to Safe Mode Checking #​25603
  • Reject scala.runtime's mutable refs in safe mode #​25749
  • Tweak SafeRefs allow list for java.util classes #​25783
  • Tune SafeRefs allow list for scala.util classes #​25787
  • Require explicit types in assumeSafe definitions in the empty package #​25795
  • Skip checkSafeAnnots for synthetic symbols #​25773
  • Reject News with unsupported Java classes #​25761

Experimental: Explicit Nulls

  • Recognize Nullable annotations in explicit nulls #​25237

Contributors

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

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

   156	Solal Pirelli
    84	Martin Odersky
    45	Wojciech Mazur
    36	Som Snytt
    15	Piotr Chabelski
    13	Matt Bovel
    13	Tomasz Godzik
    12	Hamza Remmal
    12	Rikito Taniguchi
    10	Jan Chyb
     9	Oliver Bračevac
     9	noti0na1
     8	Yichen Xu
     8	dependabot[bot]
     7	Jakub Warchoł
     5	Emil Ejbyfeldt
     4	Kenji Yoshida
     4	Li Haoyi
     3	Anatolii Kmetiuk
     3	HarrisL2
     3	Lukas Rytz
     3	Sébastien Doeraene
     2	110416
     2	James You
     2	Matt Dziuban
     2	Ondřej Lhoták
     2	Patryk Zieliński
     2	Ruslan Shevchenko
     1	Aviral Garg
     1	Bbn08
     1	Eugene Flesselle
     1	Harrishan Raveendran
     1	He-Pin(kerr)
     1	Jakub Cieśluk
     1	Jeon Yoonjae
     1	Mark Hammons
     1	Natsu Kagami
     1	Oliver Marienfeld
     1	Piotr Paradziński
     1	Vadim Chelyshov
     1	philwalk

v3.8.3

Compare Source

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
  • Add safe mode capture checking extension #​25307
  • Port the Scala2 JVM backend optimizer #​25165

Other changes and fixes

Desugaring

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
  • Drop SafeMode attribute in Tasty #​25357
  • Fix @​assumeSafe addition in safe mode #​25364
  • Disallow @​assumeSafe under safe mode #​25462

Experimental: Modularity

  • Fix nested desugaring of applied constructor types #​25288

Exports

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
  • Enforce JVM UTF-8 string limits in the backend #​25300
  • Fix class super-call invokespecial owner #​25437

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
  • Force REPL to not evaluate LazyList #​25444

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

Runner

  • Bump Scala CLI to v1.12.3 (was v1.12.2) #​25365
  • Bump Scala CLI to 1.12.4 (was 1.12.3) #​25434

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
  • Docs: Enforce links checks in the generated docs #​25425

Scala.js

  • Fix issues in presentation compiler when using Scala JS #​25450
  • Fix issues with Scala JS and the presentation compiler #​25550

Settings

  • Don't enable compact annotations under 2.13. #​25419

Standard Library

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

TASTy format

  • Don't absolutize sources outside of the sourceroot in TASTy #​25429

Tooling

Typer

  • Never widen constant type on selector type in matches #​25197
  • Preserve insertion order when balancing And/OrType #​25361
  • Improve ref check of constructors #​24342

Quotes

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 these are:

    92	Martin Odersky
    68	Solal Pirelli
    65	Wojciech Mazur
    27	Som Snytt
    13	Tomasz Godzik
    11	Li Haoyi
     9	Kenji Yoshida
     9	Oliver Bračevac
     8	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
     3	Piotr Chabelski
     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	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

v3.8.2

Compare Source

Highlights of the release

  • Warn if for with many vals and overloaded map #​25090
  • Support :dep ... to add library dependencies in the Scala REPL #​24131
  • Upgrade to Scala.js 1.20.2. #​24898
  • Bump Scala CLI to v1.12.2 (was 1.11.0) #​25217:
    • New aliases for RC and nightly Scala versions
    • Detailed changelog available in scala-cli release notes for versions: v1.12.0, v1.12.1 and v1.12.2

Other changes and fixes

Context Functions

  • Inferred Contextual params are less nameable #​24381

Desugaring

  • A comprehension with valdef aliases is never a candidate for map elimination. #​23448

Experimental: Capture Checking

  • Capture Checking of Lazy Vals #​24261
  • Represent read-only with a classifier #​24295
  • Fix typing closure blocks where result type refers to a closure parameter. #​24299
  • Systematically recompute denotations when needed in rechecker phases #​24302
  • Ensure that read-only methods don't use exclusive capabilities #​24311
  • Handle capture parameters in dcs #​24328
  • Don't prematurely force info of fields with inferred types #​24336
  • Disallow fresh caps from parameter bounds in results #​24541
  • Avoid box failures and better diagnosis if they come back #​24546
  • Freshen all explicit arguments of type applications #​24354
  • Optimize and harden isCaptureChecking tests #​24439
  • Add Unscoped classifier #​24470
  • Optimization: Introduce CompactAnnotation #​24679

Experimental: Seperation Checking

  • Changes to Mutable #​24352
  • Don't crash when update is used as a modifier outside cc #​24378
  • Imply update only for consume methods in Mutable classes #​24383
  • Decompose Mutable #​24495
  • Add freeze wrapper (2) #​24518
  • Make Arrays mutable types under separation checking #​24649

Experimental: Explcit Nulls

  • Relax flow typing checks on Flexible Types #​24278
  • Do not expose flexible types #​24292
  • Do not search contextual function type in union types in general #​24393
  • Add jspecify NonNull annotation to NotNullAnnots list #​24487
  • Recognize Nullable annotations in explicit nulls #​25237

Experimental: Global Initialization

  • Global object init checker gives warning when accessing an object before its super constructor finishes #​24349

Annotations

  • Accommodate adapted Scala 2 annotation value #​17516
  • Harden Annotation.refersToParamOf #​24647
  • Do not allow @targetName on primary constructor too #​24682

Coverage

  • Fix issues with Scala.js and coverage #​24769
  • Make coverage support incremental compilation #​24773
  • Improvement: Try to optimize coverage phase #​24925

Enums

Exports

  • Preserve select of exported member in newExpr #​24570

Erasure

  • Fix isJvmAccessible to handle nested protected Java classes #​24625

Inline

  • Allow references to erased values in types #​24421
  • Cast inline call results to result type, not method type #​25111
  • Fix "Compiler crash when calling another file's inline def that uses a private constructor" #​24941

Implicits

  • Avoid more constraints in result if trying views #​24369

Initialization

  • Skip caret when source is missing in initialization checker #​23926

JVM Backend

  • Preserve singleton types for final val aliases to Java enum constants #​24980

Linting

  • Suppression matches inlined positions #​24092
  • Wshadow option recognizes Wall #​24469

Nullability

  • Record NotNullInfo for exceptional try-catch #​24320

Overloading

  • Ignore selection prototypes when typing type applications #​24489
  • Fix varargs overload resolution with wildcard types #​24669
  • Fix override checking for Java methods with covariant array #​24408

Parser

Pattern Matching

  • Fix false exhaustivity for GADT under separate compilation #​23966

Presentation Compiler

  • Create extension method in infer method action #​24721
  • Exclude XRayModeHint for synthetics #​24722
  • Fix incorrect XRay hint #​24738
  • Improve multi-line code message rendering #​24723
  • Improvement: Allow passing -explain to the presentation compiler #​24740
  • Handle inlined tree in implicit parameter inlay hints #​24762

REPL

  • Improve REPL code, echo and exception highlighting with pprint and fansi #​24298
  • Replace REPL signal handling with raw mode jline terminal to make Ctrl-C handling work when REPL is a child process #​24842
  • Fix "Colon as operator part at beginning of line in REPL" #​24942
  • Fix "REPL dependency on scala-parallel-collections doesn't work" #​25064
  • Fix "Still can't use scala-parallel-collections in REPL via :dep" #​25092

Reporting

  • Addendum when apply error involves default arg #​21133
  • Forward reference error includes line numbers #​22534
  • Improve error messages for scope extrusion errors #​24318
  • Use a better span for an anonymous class #​24640
  • Add ErrorMessageID to -Winfer-union warnings (#​25073) #​25249

Scaladoc

  • Allow to additional scalacOptions in Markdown code snippets #​24755

Standard Library

  • Enable capture checking on Tuple #​24345
  • Update StringOps.padTo implementation #​24575
  • Use String.repeat in scala.io.Source #​24594
  • Ensure stability of IArray.tapEach #​24727

TASTy

  • Pickle CompactAnnotations as regular annotations #​25213
  • Drop spurious applies in unpickler and inliner #​25201

Transform

  • Adjust purity of trait with lazy member #​23788

Tuples

  • Fix inconsistent typeSize calculation for TupleN vs recursive pair encodings #​24743

Typer

  • Dealias type of type constructor in typedAppliedTypeTree #​24522
  • Improve TypeVar instantiation logic #​24697
  • Try to instantiate TypeVars inside pt when possible #​24231
  • Error instead of crash when generating trees referring to skolems #​24380
  • Try to fix callee type inference in typedFunctionValue #​24732
  • Fix wildcardArgOK for mixed wildcard/concrete type args #​25001

Union types

  • Dealias in isSimpleThrowable check #​24744

Value class

  • Avoid NPE when calling hashCode on a value class wrapping null #​25110

Quotes

  • Make quotes.reflect.Position.ofMacroExpansion consider -Ymagic-offset-header #​24301

Contributors

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

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

   103	Martin Odersky
    93	Hamza Remmal
    79	Wojciech Mazur
    36	Som Snytt
    27	noti0na1
    16	Rikito Taniguchi
     9	Li Haoyi
     8	Matt Bovel
     8	Oliver Bračevac
     7	Kenji Yoshida
     7	Natsu Kagami
     7	Tomasz Godzik
     7	Yichen Xu
     6	Jan Chyb
     6	Piotr Chabelski
     5	Zieliński Patryk
     5	dependabot[bot]
     4	HarrisL2
     4	Lukas Rytz
     3	Jamie Thompson
     2	Chua Chee Seng
     2	Fengyun Liu
     2	Guillaume Martres
     2	Lluc Santamaria Riba
     2	Sébastien Doeraene
     1	Alex1005a
     1	Bill Venners
     1	Emil Ejbyfeldt
     1	EnzeXing
     1	Evgeny Vereshchagin
     1	Jeon Yoonjae
     1	Lorenzo Gabriele
     1	Seth Tisue
     1	matsu-chara
     1	rjolly
     1	zielinsky

v3.8.1

Compare Source

Highlights of the release

Scala 3.8.1 is a hotfix release for 3.8.0.
It addresses runtime regressions found after the 3.8.0 artifacts were released, specifically JVM linkage errors affecting a small subset of Scala 2 specialized types and members.

Additional regressions

The following regressions still present in 3.8.1 will be addressed in a forthcoming 3.8.2 hotfix release:

  • Some for comprehensions have incorrect behavior at runtime (#​24673)
  • Certain code involving calls to certain parts of the Java standard library fail to compile (#​25133)

Cautious users may wish to wait for 3.8.2.

Fixed regressions

  • Revert addition of new base trait to ReturnThrowable #​24975
  • Use uninlined version of Scala 2 standard-library in ScalaLibraryPlugin #​25008
  • Add missing specialized method in NumericRange #​25020
  • Correct the list of files to copy from Scala 2 #​25033

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

v3.8.0

Please use Scala 3.8.1
Version 3.8.0 was published with runtime regressions.

Highlights of the release

  • Require JDK 17+ #​24146
  • Add explicit null checks to Scala 3 Standard Library #​23566
  • Add capture-checking to Scala 3 Standard Library #​23688
  • Add capture-checking to Scala 2 collections #​23769
  • Extract REPL to be its own artifact #​24243
  • SIP-57: Make runtimeChecked a standard feature #​23262
  • SIP-62: Make better-fors a stable feature #​23630
  • Preview SIP-71: Make into preview feature #​24090
  • Experimental SIP-67: Strict equality pattern matching #​23803
  • Experimental SIP-70: Allow multiple spreads in function arguments #​23855
  • Experimental SIP-75: Allow single-line lambdas after : #​23821
  • Experimental: Match if sub cases #​23786
  • Support JDK 26 #​24430
  • Make scala.caps.Pure non-experimental #​23745
  • Allow annotations to annotate themselves #​24447
  • Changed indicator for LTS/Next series indicator in pom.xml #​24709

Other changes and fixes

Annotations

  • Emit deprecation warnings when a symbol is annotated by a deprecated annotation #​23906
  • Deprecate scala.annotation.elidable #​23913
  • Deprecate scala.annotation.transparentTrait #​23116

Experimental: Capture Checking

  • Make scala.caps.Pure transparent #​23914
  • Make scala.caps.Capability non-experimental #​23507
  • Check conformance to scala.caps.Pure upper bound only under cc #​23784
  • Widen type parameters before box adaptation #​23809
  • Level checking: distinguish between certain capset vars with same owner #​24077
  • Implement FreshCap Handling for Classes and Objects #​24136
  • Skip capture sets in checkNoPrivateLeaks and drop them in posttyper when cc is not enabled #​23886
  • Changes around reaches and uses #​23584
  • Revise capability hierarchy and fix classifiers #​23656
  • Improve closure typing #​23700
  • Better printing of capabilities in error messages #​23701
  • More improvements to error messages #​23721
  • CC Language Ref Polishings #​23762
  • CC Language Reference Improvements v2 #​23818
  • Changes in CC around classes, constructors, this #​23874
  • Various fixes and simplifications [#​23881](https://redirect.github.

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Jun 2, 2026
@renovate renovate Bot enabled auto-merge (squash) June 2, 2026 19:33
@DanySK DanySK force-pushed the renovate/major-3-scala branch from 727a3b8 to 2bc2cd4 Compare June 2, 2026 20:54
@renovate renovate Bot assigned DanySK Jun 2, 2026
@DanySK DanySK force-pushed the renovate/major-3-scala branch 2 times, most recently from 4089f89 to 07aa163 Compare June 3, 2026 20:39
@renovate renovate Bot force-pushed the renovate/major-3-scala branch from 07aa163 to 3ee22d2 Compare June 3, 2026 20:52
@DanySK DanySK force-pushed the renovate/major-3-scala branch from 3ee22d2 to d814640 Compare June 3, 2026 22:53
@renovate renovate Bot force-pushed the renovate/major-3-scala branch from d814640 to 2a1007f Compare June 3, 2026 22:54
@DanySK DanySK force-pushed the renovate/major-3-scala branch 3 times, most recently from 2485514 to d4ff80f Compare June 4, 2026 03:11
@renovate renovate Bot force-pushed the renovate/major-3-scala branch from d4ff80f to a194843 Compare June 4, 2026 03:14
@DanySK DanySK force-pushed the renovate/major-3-scala branch 12 times, most recently from 3d708c5 to 3188d9d Compare June 11, 2026 02:18
@DanySK DanySK force-pushed the renovate/major-3-scala branch 5 times, most recently from 9d3a677 to 3b90048 Compare June 11, 2026 12:23
@DanySK DanySK force-pushed the renovate/major-3-scala branch 6 times, most recently from 0e9f040 to 4584852 Compare June 14, 2026 12:49
@renovate renovate Bot force-pushed the renovate/major-3-scala branch from 4584852 to 7f4fc46 Compare June 14, 2026 12:50
@DanySK DanySK force-pushed the renovate/major-3-scala branch 4 times, most recently from 135faaf to 8daf8e8 Compare June 14, 2026 18:16
@renovate renovate Bot force-pushed the renovate/major-3-scala branch from 8daf8e8 to a68f9c5 Compare June 14, 2026 18:17
@DanySK DanySK force-pushed the renovate/major-3-scala branch 3 times, most recently from 76c29e0 to 0cf771b Compare June 15, 2026 12:36
@renovate renovate Bot force-pushed the renovate/major-3-scala branch from 0cf771b to 3b46606 Compare June 15, 2026 12:37
@DanySK DanySK force-pushed the renovate/major-3-scala branch 11 times, most recently from a51e904 to 473868a Compare June 17, 2026 20:10
@mergify

mergify Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Hi @renovate[bot]! 👋
This pull request has conflicts 😖
Could you fix it? 🔧
Thank you! 🙏

@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant