Skip to content

3.6.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 24 Oct 10:50

This is a broken release, please, don't use it

It was published by mistake during the 3.6.0-RC1 release.
See details in Scala 3.6.0 Post Mortem blogpost


Highlights of the release

  • Stabilise SIP-47 (Adding Clause Interleaving to method definitions) #20861
  • Implement SIP-57 - add runtimeChecked method and annotation #20987
  • Implement SIP-62 - For comprehension improvements #20522
  • Implement SIP-64 as non-experimental #21668
  • Make named tuples a standard feature #21680
  • Switch mapping of context bounds to using clauses in 3.6 #21257
  • Require named arguments for java defined annotations #21329

Other changes and fixes

Annotations

  • Tighten java annot value parsing #21650

Dependencies

  • REPL: JLine 3.27.0 (was 3.25.1) #21752
  • Scala 2.13.15 (was .14) #21648

Erasure

  • Fixes IllegalAccessError with Java package protected class #21362

Experimental: Capture Checking

  • Existential Capabilities #20566
  • Fix setup of CapSet arguments. #21309
  • Check all top-level covariant capture sets in checkNotUniversal #21428
  • Charge also dcs of local reaches to capture set of enclosing method #21443
  • No need to unbox if expected type is LhsProto #21508
  • Treat more closure parameter types as inferred #21583
  • Fixes for cleanup retains scheme #21350
  • Improve Contains handling #21361
  • Expand Capability types T to T^ only if no explicit capture set is given #21375
  • Tighten closure extractor in TreeInfo #21621

Experimental: Strict Equality

  • Fix #21392: Adjust canComparePredefined(Nothing, T) in explicit nulls #21504
  • Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) #21389

Experimental: Modularity

Experimental: Global Initialization

  • Analyze object when selecting from package #21511
  • Fix bug in init checker while compiling scodec-bits community project #21574

Experimentals

  • [experimental feature] Support HOAS pattern with type variables for quote pattern matching #18271

Exports

  • Re-use attachment in exportForwarders to handle ambiguous overloads #21518
  • Allow export statements in AnyVal #21653

Extension Methods

  • Make right assoc ext method fwd refs error #21641

Inline

  • Fix: throw an error before assigning ErrorType when expanding constValue #21364

Implicits

  • Fix prioritization of givens over implicits #21226

JVM backend

  • Backend computes line number from source of position #21763

Linting

  • CheckUnused checks type param annotations #20549

Library

  • Finalize named tuples #21710

Match Types

  • Enable betterMatchTypeExtractors in >= 3.6 #21198
  • Do not propagate TypeErrors of ops from TypeComparer#tryAlso #21070
  • Fix #21402: Always allow type member extraction for stable scrutinees in match types. #21700
  • Add a 3.6-migration warning for MT lubbing #21336
  • Always interpret underscores inside patterns as type bounds #21718

Opaque Types

  • Capture the kse3 issue in test cases and close it #21260

Parser

  • Guard against recursive lower bounds in constraints #21587

Pattern Matching

  • Fix a bundle of patmat issues #21000

Pickling

  • Some fixes for AnnotatedTypes mapping #19957

Polyfunctions

  • Fix: Check if a PolyFunction TypeTree has no ByName parameters #21671

Presentation Compiler

  • Add regression test for issue 18726 #20318
  • Remove artificial CURSOR added to code in the completions #20899
  • Fix autoimports with using directives #21590

Quotes

  • Handle suspension due to macro call in arbitrary phases #21651
  • Have a better error message when healing types #21711
  • Bound TypeRepr by Matchable in Quotes #21377
  • Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType) #20494

Reflection

  • Add the possibility to create a typeSymbol in the Quotes API #20347
  • Fix stale symbols connected to lazy vals in macros #21559

Reporting

  • Add better error reporting for inlined non-immutable paths #21639
  • Only replace new errors by warnings under -migration #21289

REPL

  • Ignore best effort settings in repl and update docs #21540

Rewrites

  • Remove empty argument lists for classes with only context bounds #21513
  • Fix rewrite logic for old <function> _ syntax #21715
  • Remove the -rewrite option for typechecks methods in Quotes #21547
  • Add migration rewrite for non-named arguments in Java annotations #21397

Scaladoc

  • Only trim one newline when preprocessing the content of a markdown code snippet #21519
  • Filter opaque modifier from object documentation #21640
  • Bump Inkuire version to fix it for the new Scala versions #21611

Standard Library

  • Move NamedTuple.head to NamedTupleDecomposition #21308
  • Define binary symbolic compiletime ops as infix #21683

Transform

  • Fix treatment of separately compiled @Native methods in FirstTransform #21593
  • Three fixes to SAM type handling #21596
  • Always rewrite empty List() to Nil #21689
  • Add support for clauseInterleaving in JVM generic signatures #21709

Typeclass Derivation

  • Nicer error message in case a derived method has an explicit term param #21332

Typer

  • Calm param autotupling for overloads #21552
  • Survive inaccessible types when computing implicit scope #21589
  • Avoid cyclic errors forcing default arg types #21597
  • Fix incorrect caching with dependent method parameters #21699

Contributors

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

According to git shortlog -sn --no-merges 3.5.2..3.6.0-RC1 these are:

   128  Martin Odersky
    35  Hamza REMMAL
    34  Dale Wijnand
    27  Eugene Flesselle
    22  Hamza Remmal
    22  Wojciech Mazur
    12  Kacper Korban
    11  Katarzyna Marek
     9  noti0na1
     9  rochala
     8  Jamie Thompson
     8  Jan Chyb
     7  Adrien Piquerez
     7  Matt Bovel
     7  Som Snytt
     7  dependabot[bot]
     6  Yichen Xu
     5  EnzeXing
     5  Guillaume Martres
     5  Sébastien Doeraene
     4  Fengyun Liu
     4  kasiaMarek
     3  Martin Duhem
     3  Oliver Bracevac
     3  Piotr Chabelski
     2  Aleksander Rainko
     2  David Hua
     2  Florian3k
     2  HarrisL2
     2  Joel Wilsson
     2  Jędrzej Rochala
     2  Kenji Yoshida
     1  Eugene Yokota
     1  Kavin Satheeskumar
     1  Lorenzo Gabriele
     1  Michel Charpentier
     1  Ondrej Lhotak
     1  Raphael Jolly
     1  Tomasz Godzik
     1  Yuito Murase
     1  crunchyfrog
     1  philippus