Skip to content

3.1.2-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 26 Jan 10:12

Forward compatibility improvements

  • Enable generation of TASTy files readable for older compilers #14156

General improvements

  • Add eval (-e) expression evaluation to command line #14263
  • Format compiler crash stack traces #14269
  • Improve typer traces #14270
  • Add -Xmacro-settings option and API #14234
  • Add reflect TypeRepr.substituteTypes #13166
  • Expand compiletime.ops #13400
  • Cache isSubspace for a 3000% speedup #13637
  • lint trivially self-recursive extension methods #13709
  • add printTypesAndErasure test main method to compare typer and erasure #13745
  • Warning for infinite recursive lazy vals #13749
  • Provide scala.home setting for scripts #13759
  • Improve message when -Xmax-inlines limit reached #13783
  • Add append operator to Tuple #13786
  • Allow passing any JMH option to scala3-bench #13787
  • Warn on lossy conversion of literals & constants #13792
  • Consider minTargetVersion as always supported #13811
  • Add -Xmacro-check for Block constructors #13824
  • Navigate the AST within AnnotatedType and ImportType #13834
  • Refine handling of CanThrow capabilities #13866
  • Indicate name of classfile where leaky mapping of existential type happens #13879
  • Refine treatment of TypeBounds in patterns #13881
  • Impose implicit search limit #13886
  • Better handling of multiple exceptions for saferExceptions #13914
  • Complete when importing same symbol multiple times #13972
  • Implement :settings in the REPL #13982
  • Fixes and improvements to trace logging #13984
  • Fail compilation of attempting a 0-arity product extraction #14029
  • Traverse the types to find experimental references #14047
  • Retain HasDefaultParams flag on export. #14051
  • Also consider private symbols in implicit scope of type #14054
  • Allow return in tailrec position #14067
  • Make outer references Java-synthetic #14084
  • Add Reflect TypeRepr.typeArgs #14088
  • Reject empty target names #14090
  • Use =>> instead of => for printing a LambdaTypeTree #14107
  • REPL: Add compiler options to :reset #14139
  • Add hint on -Xcheck-macro scope extrusion failure #14203
  • Support quoted PolyFunction #14222
  • Update wording of uninitialized value error to be grammatically correct #14292

Scaladoc

  • Fix missing known subtypes #13794
  • Markdown preprocessor #13140
  • Add source position for errors from doc-root-content file #13908
  • Fix double implicit modifier #13909
  • Fix links to unexisting types sites #13917
  • Add support for tables in wiki syntax #13933
  • Improve features parity with old scaladoc/docs.scala-lang #13954
  • Add missing styles to snippets that are not Scala #13959
  • Fix filtering extensions. Better support for exports #14125

SemanticDB

Bug fixes

  • Fix #13855: Chaining Match Types fails at value level #14354
  • Fix #12260: Add underscore to match type syntax #12261
  • Fix #11861 - hash nested calls to inline definitions #12931
  • Avoid shadowing of name 'name' #13442
  • Fix #13633: Can't reduce match types inside a type alias #13635
  • Fix erased context function types #13736
  • Widen qualifier skolems #13748
  • Change order of proxy evaluation when inlining #13755
  • Fix init checker on secondary constructor parameter access #13776
  • Add missing @experimental in Tuples #13778
  • Fix improper usage of constrained breaking type inference #13779
  • Fix error message when deriving an obstract type #13812
  • Handles Nothing when synthesizing CanEqual #13828
  • Fix #13026: No longer print VBAR and padding in the middle of the message #13829
  • Solves dotc assertion error on (non-sensical?) parameter type. #13769 #13830
  • Fix missing code-completion on standalone annotations #13831
  • Fix comparing AnyVal | Null to Null and selecting in UnsafeNulls #13837
  • Fix error summary printed twice #13843
  • Detect opaque aliases in inline val types #13857
  • Fix @experimental @main methods #13858
  • Fix #13860: Ignore bridges when looking for a default getter's attached method. #13870
  • Add missing position when expanding error #13872
  • Try to instantiate type variables in tryInsertImplicitOnQualifier #13884
  • Fix crasher for missing integer argument on command line #13894
  • Fix messages leaking via suspended messages #13911
  • Don't lift try-catch statements that are already in local functions #13944
  • Initialize quote cache on tasty inspector run #13953
  • Tighten product match logic in irrefutable check #13962
  • Fix Mirror.Product for type lambdas #14003
  • Sound type avoidance (hopefully!) #14026
  • Fix REPL clashing with CWD artefacts #14021
  • Don't retypecheck erroneous arguments when fixing function #14043
  • Fix #13994: initialise inline ctx in lateEnter #14050
  • Inline inlined private methods before checking accessibility #14049
  • Handle hoisted super arguments correctly in elimByName #14057
  • Check variance of RHS of opaque type #14058
  • Don't insert INDENT/UNINDENT without anything in between #14066
  • Don't generate illegal types when clarifying implicit errors #14068
  • Allow import <ident> to show completions #14069
  • Bypass eligible caches for implicit search under GADT constraints #14072
  • Fix passing jvm options #14073
  • Harden erasure of PolyFunction apply's #14075
  • Test for non-open classes warning #14079
  • Avoid field/field clashes #14081
  • Fix reachability of unapplySeq of non-List sequences #14112
  • Check for splices in quoted macro parameters #14117
  • Fix reachability by retaining spaces of Prod params #14118
  • Extract GADT constraints from wildcard type arguments #14132
  • Fix derivedPolyProto to use the correct result type #14148
  • Remove reflect TypeApply TypeVars #14201
  • Clear temp var for captured var expr to permit GC #14205
  • Re-type implicit candidate if expected type is context function #14219
  • Adapt generic tuples to be able to access members #14242
  • Fix Scala.JS source map URIs #14243
  • Disallow erased inline definitions #14250
  • Fix #7512: Normalize type arguments before instantiation #14259
  • Disallow bottom types in erased implementations #14267
  • Fix checkNoModuleClash & avoid types with less precision loss #14274
  • Parse splices inside quoted patterns as patterns #14277
  • Make initialization checker see through synthetic applys #14283
  • Fix byte code generation for by-name parameters #14310
  • Avoid misleading error message #14331

Contributors

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

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

    57  Martin Odersky
    43  Nicolas Stucki
    28  Dale Wijnand
    17  Jamie Thompson
    16  Guillaume Martres
    16  Filip Zybała
    16  Andrzej Ratajczak
    14  Paweł Marks
    14  Michał Pałka
    10  Olivier Blanvillain
     8  Som Snytt
     8  Matt Bovel
     7  Tomasz Godzik
     7  Fengyun Liu
     6  danicheg
     6  Sébastien Doeraene
     6  oronpo
     6  Gagandeep Kalra
     5  Seth Tisue
     5  Arman Bilge
     4  Stephane MICHELOUD
     4  noti0na1
     3  Phil
     3  adampauls
     3  ghostbuster91
     3  Eric Torreborre
     2  Matthieu Bovel
     2  philwalk
     2  Kacper Korban
     2  Ruslan Shevchenko
     2  Oron Port
     2  Chris Kipp
     1  Łukasz Wroński
     1  Anatolii Kmetiuk
     1  Arthur Sengileyev
     1  Cédric Chantepie
     1  Denis Zolkin
     1  Georgi Krastev
     1  Hugo van Rijswijk
     1  Jakob Odersky
     1  Julien Richard-Foy
     1  Kien Dang
     1  Natsu Kagami
     1  Ondrej Lhotak
     1  Ondřej Lhoták
     1  Rikito Taniguchi
     1  SDSR
     1  Tom Grigg
     1  Yang, Bo
     1  comcx
     1  kenji yoshida
     1  mzcu
     1  soronpo
     1  Adrien Piquerez

Reporting Bugs

If you encounter a bug, please open an issue! 🙏