Skip to content

Update dependency scala to v3#165

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

Update dependency scala to v3#165
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/scala-3.x

Conversation

@renovate

@renovate renovate Bot commented Jun 7, 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
scala (source) 2.13.123.8.4 age confidence

Release Notes

scala/scala3 (scala)

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
  • Simplify Level Chec

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: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


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

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

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants