Skip to content

3.1.2

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Apr 14:18

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
  • Rename -Yscala-release, -release and -Xtarget settings to make them more consistent #14606

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
  • Set context when reporting summonInline errors #14405
  • Fix #14541: Problem running @main methods with command line arguments #14543
  • Check defined in src for cache in companion #14557

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 these are:

  57  Martin Odersky
  44  Nicolas Stucki
  28  Dale Wijnand
  20  Paweł Marks
  18  Jamie Thompson
  16  Andrzej Ratajczak
  16  Filip Zybała
  16  Guillaume Martres
  15  Michał Pałka
  10  Olivier Blanvillain
    9  Som Snytt
    8  Matt Bovel
    7  Fengyun Liu
    7  Tomasz Godzik
    6  danicheg
    6  Sébastien Doeraene
    6  Gagandeep Kalra
    6  oronpo
    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  Andrzej Ressel
    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  Łukasz Wroński
    1  Adrien Piquerez

Reporting Bugs

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