Skip to content

3.5.1-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 22 Aug 07:46

Highlights of the release

  • Add sources of synthetic classes to sources jar #20904

Other changes and fixes

Annotations

  • Preventing compilation of a @tailrec method when it does not rewrite, but an inner method does #20143
  • #20145 - bugfix when a return tailrec is called inside a val def. #20652

Backend

  • Fix EnclosingMethod for lifted anonfun #20558
  • Emit switch bytecode when matching unions of a switchable type #20411
  • Fix deterministically adding additional interfaces #20593

Documentation

  • Avoid jpath in example #20775
  • Chore: Fix doc link in clauseInterleaving docstring #20590
  • Chore: fix doc link in namedTuples docstring #20770

Erasure

  • Don't re-balance AndTypes arising from supertypes #20400

GADTs

  • Harden GADT constraint handling to survive illegal F-bounds #20325

Inferencing

  • Adapt toInstantiate in interpolateTypeVars to consider #20399 #20426

Infrastructure

  • Update addToBackportingProject.scala #20461
  • Simple scripts to run non-bootstrapped compiler after 'sbt buildQuick' #19894
  • Bump from 3.4.0 to 3.5.0-RC1 for MiMA #20404
  • Set reference version to 3.5.0-RC4 #21175
  • Bring back windows performance improvements #20423
  • Bump scalacenter/sbt-dependency-submission from 2 to 3 #20440
  • Fix incorrect paths to sha256 check sum files in release workflow #20709
  • Bump VirtusLab/scala-cli-setup from 1.3.2 to 1.4.0 #20906

Inline

  • Mark genSJSIR as disabled (rather than non-runnable) when no -scalajs. #20815
  • Map over refs of ImportTypes in TypeMap #20837

Initialization

  • More principled filtering of abstract values in initialization check #20548

Match Types

  • TryCompiletimeConstantFold in disjointnessBoundary #20168

Opaque Types

  • Heal member-select on opaque reference #19730

Pattern Matching

  • Fix #20372: Check pattern match exhaustivity in inlined code #20403

Presentation Compiler

  • Add pattern completion for unapply contexts #20274
  • Bugfix: Exclude newer LSP4j, which is built on JDK 11 #20771
  • Chore: Bump mtags to latest stable #20442
  • Weekly metals backport #20542
  • Port pc find references from metals #20544

Quotes

  • Add regression test for issue 20309 #20387

REPL

  • Only consider methods with 0 parameters in valueOf #20543

Reflection

  • Fix erasure crash for Inlined rhs of a context function closure #20398
  • Fix #20458: do not expose ClassInfo in quotes reflect widenTermRefByName #20468

Reporting

  • Fix error message on setter with wrong type #20444
  • Add a specific error message for local final defs #20557
  • Explain unresolvable references better #20477
  • Add error code to diagnostics about unused code #19780
  • Better error diagnostics for illegal match cases #20905

Scaladoc

  • Fix handling of right associative extension methods across scaladoc and printers #20467

Specification

  • Add binary lits to syntax summaries #19551

Settings

  • Enhance help message for language flag #20247
  • Accept legacy language features #20454
  • Set default source version to 3.5 #20435

Tooling

  • Improve source positions emited for synthetic unit in if-conditions #20431
  • Adjust the API name entry for nested classes #20279
  • Fix declaring product of straight-to-jar compilation #20592

Transform

  • Correct Java signature for value classes appearing in type arguments #20463

Typer

  • Retry constraint.replace after constraint.updateEntry #20399
  • Add special handling for comparisons with Singleton types #20474
  • Reinstantiate restriction to transparent inline methods #20371
  • Add regression test for #20288 fixed in #20527 #20857
  • Fix isEffectivelySingleton #20486
  • Fall back to direct subtype comparison at the end in dropIfSuper and dropIfSub #20523
  • Mark AppliedType cachedSuper valid Nowhere when using provisional args #20527

Experimentqal Changes

Capture Checking

  • Fix soundness hole of forgotten reach capabilities #20524
  • Drop @capability annotations #20396
  • Fix symbol reference retrivial for scala.caps.Caps #20493
  • Refactor adaptBoxed #20525
  • Fix error related to reaches when using scala2-library-cc-tasty #20528

Named tuples

  • Make NamedTuple.Empty an alias to NamedTuple #20502
  • Move NamedTuple methods to separate scope. re-export #20504
  • WidenDealias before extracting namedTupleElementTypes #20505
  • Improve type inference for literal named tuples #20497
  • Fix issue #20267 with regression test #20506
  • Only set AppliedType#validSuper after AppliedType#cachedSuper #20553
  • Fix NamedTuple selection on an unstable prefix #20455
  • Allow apply adaptation on Selectable with Fields #20489

Contributors

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

According to git shortlog -sn --no-merges 3.5.0..3.5.1-RC1 these are:

    77 Martin Odersky
    18 Wojciech Mazur
    17 Hamza REMMAL
    14 Jamie Thompson
    13 Eugene Flesselle
    13 noti0na1
    11 Hamza Remmal
     9 Katarzyna Marek
     7 Fengyun Liu
     7 Jan Chyb
     6 Guillaume Martres
     5 Dale Wijnand
     5 Som Snytt
     4 dependabot[bot]
     3 Adrien Piquerez
     3 Derek Wickern
     3 Matt Bovel
     3 OlegYch
     2 Florian3k
     2 Kacper Korban
     2 Lucy Martin
     2 Paweł Marks
     2 Tomasz Godzik
     1 Arnout Engelen
     1 Eugene Yokota
     1 João Ferreira
     1 Kasper Kondzielski
     1 Lucas Nouguier
     1 Lukas Rytz
     1 Mikołaj Fornal
     1 Nafer Sanabria
     1 Natsu Kagami
     1 Seth Tisue
     1 Sébastien Doeraene