Skip to content

3.1.3-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 13 Apr 10:38

Highlights of the release

  • f-interpolator: Scala 2 parity and bugfixes #13367
  • Show inlined positions with source code on errors #14002
  • Add reflect ClassDef.apply and Symbol.newClass #14124
  • Add experimental TupledFunction #14414

Other changes and fixes

Backend

  • Filter out static forwarders for Java package private methods #14662
  • Emit all classes as public to avoid object deserialization issues #14686
  • Upgrade to ASM 9.2 #14711

Desugaring

  • Adapt function arguments to n-ary prototype #14651

Erasure

  • Don't optimize explicitly written isInstanceOf tests away. #14715

Exports

  • Fix use of exported prefix #14461
  • Export constructor proxies for parameterized classes #14681

GADT

  • Fix #14726: call exclusiveLower before addLess during unification #14727
  • Avoid unsound GADT constraints derived from subtyping relations between singletons and refined types #14728
  • Keep correct kind when preparing constraint in stripParams #14761

Initialization

  • Add special case to init checker to always allow certain methods #14352

Implicits

  • Avoid unnecessary under-constrained implicit searches #14353
  • Prevent implicit conversion chaining #14750
  • Fix hasKnownMembers #14762

Match types

  • Fix #13855: Chaining Match Types fails at value level #14354
  • Constrain pattern types when typing a match type case #14563
  • Fix bounds of match type cases #14645

Metaprogramming

  • Allow nested Quotes with a different owners #13652
  • Add typed versions of Mirror.ProductOf#fromProduct #14114
  • Fix #14393: foldOver in default TreeAccumulator can't process Typed nodes #14396
  • Fix invariant quote type holes #14425
  • Make singleton operations covariant #14452
  • Find inline calls inserted in synthetic members #14480
  • Don't generate Mirror.Sum for simple enum cases #14525
  • Collect all local class definitions #14528
  • Only make the staged parts of a quote inlineable #14604
  • Tolerate some faults when copying trees in InlineTreeMap #14674
  • Handle this prefix in objects (in quote patterns) #14732
  • Detect when position is not in known source #14801
  • Handle SummonFrom in reflect TreeAccumulator #14809
    -Handle situation where an inline info cannot be computed #14827

Opaque Types

  • Disallow overriding opaque type aliases #14665
  • Disallow private opaque type aliases #14666
  • Generate opaque proxies also for base classes #14668

Parser

  • Accept supplementary Unicode characters #13136
  • Don't compute indents when in a string #14441
  • Parse empty arguments in (invalid) Apply more often #14463
  • Expand span errorTermTree to include skipped span. #14492
  • Fix lookahead logic in Scanner #14562
  • Add private inteface methods parsing in JavaParser #14643
  • Reject postfix ops already in Parser #14677
  • Syntax error recovery #14695

Pattern matching

  • For generic tuples, call Tuples.apply instead of _1/_2/.. #14296
  • Preserve the intersection of disjoint numbers in match analysis #14550
  • Fix casting of generic tuple selection #14590
  • Ignore private/sealed abstract class/traits #14599
  • Drop special treatment for Scala-2 code in unapply #14766

Pickling

  • Disable type simplify in unpickler #14506
  • Check if package names will be encoded in desugar #14597
  • Fix picking default syntax for comments #14725

Refchecks

  • Don't skip override tests when overridden is AbsOverride #14527
  • Extend "cannot override mutable variable" restriction to deferred var… #14724

Repl

  • Avoid stale import context during REPL parsing #14493
  • Fix #11202: Incorrect highlight for type constructor #14518
  • Make empty catch an incomplete. #14519
  • Add in feedback when resetting REPL state #14521
  • Fix #14535: End marker now has the same color as its definition in repl #14555
  • Add backticks when needed in completions #14594
  • Autocomplete repl commands #14627
  • Harden REPL in presence of values that fail to initialize #14702

Reporting

  • Change error message text from "fully-initialized" to "fully initialized" #14400
  • Improve -explain rendering #14357
  • Propagate unreported features when flushing a reporter #14503
  • Avoid using · character #14453
  • Fix explain rendering with Windows EOL #14456
  • Fix #14576: Ensure unreported warning summaries are also emitted via sbt-bridge #14602
  • Add context to safe-init warnings for inlined methods #14646
  • Show unique ids of pattern bound symbols #14716
  • Don't replace typevars by their f-bounds in error messages #14723
  • Error message improvement for illegal access extension methods #14730
  • Warn on misleading indentation in single-case catch #14738
  • Use correct ErrorMessageID for EmptyCatchOrFinallyBlock #14786
  • Correct highlight interpolation in explain message #14802
    Don't issue implicit errors if parameter has default value #14849

Typer

  • Fix approximating RefinedTypes (n>1) #14361
  • Allow override protected[C] in companion #14105
  • Hide apply generated for rotected case class constructor #14266
  • Infer parameters of eta applications with vararg parameters #14397
  • Keep softness when widening unions #14399
  • Fix #11008: Support generic tuples as a valid unapply result #14434
  • Fix TreeTypeMap to correctly substitute type parameters #14537
  • Handle ownership changes in InlineTyper #14568
  • Handle more corner cases in etaReduce #14628
  • Remove false unchecked warnings on refined types #14703
  • Fix hoisting local symbols #14714
  • Fix desugaring empty argument blocks in normArgs #14719
  • Improve overloading resolution if expected type is not FunProto #14733
  • Don't force LazyRefs when computing DepStatus #14774

Explicit nulls

  • Fix override containing type param #13975
  • Fix case null on non-nullable type in unsafe null #13976
  • Thread context through block in transforms correctly and efficiently #14523
  • Fix intercept TypeApply #14617
  • Fix #14682: fix overriding check in mergeSingleDenot #14755

IDE Support

  • Fix contextOfPath for Template #12783
  • Search all source trees for a given span #14436
  • Set zero span for synthetic enum import selector #14498
  • Set zero span for synthetic tuple type #14499
  • Set proper position for ValDefs generated from tuples #14513
  • Provide signature help for unapply methods #14611
  • Add completions for specific MatchType cases #14639
  • Support backticked imports in completions #14649
  • Change completions filtering to now include package module classes #14756

Scaladoc

  • Correctly handle context functions #14371
  • Fix rendering dependent function types #14327
  • Unescaped special characters in Quotes documentation #14377
  • Refactor static site loading and directory structure #14378
  • Make member filtering case-insensitive #14430
  • Add member position IDs to anchors in searchbar #14454
  • Repair links #14475
  • Follow renames in content contributors script #14478
  • Change default blog directory to blog #14485
  • Refactor generation configuration in sbt. Generate reference documentation using Scaladoc #14489
  • Fix issues with incorrect external links and special characters #14516
  • Grouping entries in searchbar. Add hints to searchbar #14539
  • Fix #14481: certain functions not being shown in searchbar #14546
  • Fix function classpathArgs() #14559
  • Add necessary parentheses in function types #14565
  • Fix groupping entries using markdown syntax #14577
  • Add table of content to static sites #14607
  • Allow to set a comment syntax based on path to source #14650
  • Tweak Language Reference documentation #14669
  • Don't add extra newlines when there aren't extra sections in doc markdown #14734
  • Fix regression with extension methods not being shown in searchbar #14779
  • Fix snippets hiding and buttons animation #14839

SemanticDB

  • Update generated semanticdb code with the latest scalapb #14591
  • Support MatchType#14608

Other

  • Kotlin interop: Find nested class if InnerClass entry is missing #14426
  • Add 3.2 language mode internally, treat it like 3.0, 3.1 #14690
  • Add -h to alternatives for -help #14792

Contributors

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

According to git shortlog -sn --no-merges 3.1.2..3.1.3-RC1 these are:

    59  odersky
    48  Nicolas Stucki
    38  Filip Zybała
    36  Martin Odersky
    29  noti0na1
    27  Som Snytt
    24  Dale Wijnand
    19  Anatolii Kmetiuk
    19  Chris Kipp
    17  Rikito Taniguchi
    13  Xavientois
    12  Jan Chyb
    11  Tom Grigg
     8  Matt Bovel
     8  Guillaume Martres
     8  Paweł Marks
     7  Jamie Thompson
     6  Tomasz Godzik
     5  Michael Pilquist
     5  rochala
     4  Kacper Korban
     4  adampauls
     3  Phil
     3  Sébastien Doeraene
     3  Andrzej Ressel
     3  Seth Tisue
     3  Olivier Blanvillain
     2  Arman Bilge
     2  Julien Richard-Foy
     2  Adrien Piquerez
     2  Yichen Xu
     1  ireina7
     1  Alexander Ioffe
     1  Jentsch
     1  Jędrzej Rochala
     1  Michał Pałka
     1  Ondrej Lhotak
     1  Pascal Weisenburger
     1  Quentin Bernet
     1  Ruslan Shevchenko
     1  SrTobi
     1  Stephane MICHELOUD
     1  Stéphane Micheloud
     1  Vadim Chelyshov
     1  Vasil Vasilev
     1  bjornregnell
     1  ghostbuster91
     1  som-snytt
     1  Łukasz Wroński