Skip to content

Releases: scala/scala3

3.1.2

12 Apr 14:18
Compare
Choose a tag to compare

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 impl...
Read more

3.1.2-RC3

23 Mar 18:51
Compare
Choose a tag to compare
3.1.2-RC3 Pre-release
Pre-release

Notable Changes

  • Revert #14067: "Allow return in tailrec position" - the change was breaking tasty compatibility.

Contributors

For the record, according to git shortlog -sn --no-merges 3.1.2-RC2..3.1.2-RC3, contributors list looks like this:

  2  Paweล‚ Marks

3.1.2-RC2

09 Mar 17:42
Compare
Choose a tag to compare
3.1.2-RC2 Pre-release
Pre-release

Notable Changes

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

Contributors

Thank you to all the contributors who made this release possible ๐ŸŽ‰

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

     1  Jamie Thompson
     1  Michaล‚ Paล‚ka
     1  Nicolas Stucki
     1  Paweล‚ Marks
     1  Som Snytt
     1  Andrzej Ressel

3.1.2-RC1

26 Jan 10:12
Compare
Choose a tag to compare
3.1.2-RC1 Pre-release
Pre-release

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](https://github.com/lamp...
Read more

3.1.1

20 Jan 19:24
Compare
Choose a tag to compare

Improvements

  • Remove differences in diagnostic printing in the REPL #13266
  • Make trace typed, to avoid needless casting #13464
  • Change TastyFormat for REFINEDtype to conform to existing .tasty files #13507
  • Emit deferred reachability warnings & fix boxing/unboxing adapting #13485
  • Include scope completions for synthic select tree #13515
  • Setup snippet compiler for scala.quoted and fix snippets #13521
  • Scaladoc: UI/UX Changes #13566
  • Make members of the empty package invisible from inside other packages #13593
  • Prioritize ambiguous errors in extension method search #13588
  • Better nested lists rendering in scaladoc #13643
  • Clarify implicit scope of opaque type aliases #13666
  • Allow using clauses to introduce Scala-2 conversions #13662
  • Remove plugin related settings from common scala settings #13711
  • Remove RenameLifted phase #13717
  • Move part of settings to CommonScalaSettings #13712
  • Add init and last methods to NonEmptyTuple #13735
  • Allow dual Scala 2/3 macros in non-experimental scopes #13795
  • Refine check for caching companion in sum mirror #14035

Bug fixes

  • Do not bind inline parameters when lifting args #13429
  • Fix #13440: Avoid capturing var in message closure #13441
  • Scaladoc: Fix printing refined self-types in snippet-compiler #13436
  • Set correct source for generated TypeTrees #13465
  • Fix reachability of non-reducing match type children #13251
  • Use correct context when creating inline trace #13492
  • Fix #13497: Exception occurred while typechecking summon in nested flatMap #13499
  • Unwiden scrutinee types, fixing match analysis #13409
  • Don't count constructors in allMembers #13505
  • Fix crash on uninstantiated field access #13517
  • Fix #13320: add .type to modules in messages #13374
  • Fix #13518: Scala.js: fix primitive + string when the string is a TermRef. #13537
  • Fix running repl #13535
  • Fix specifity comparison for extensions in polymorphic givens #13509
  • Capture missing class when loading methods #13525
  • Fix snippets in scala.compiletime and fix snippet compiler reporting line numbers in specific cases #13528
  • Fix Java generic signatures for aliases #13574
  • Fix suggested stub implementation code #13529
  • Remove anomalies and gaps in handling annotations #13348
  • Do not remove accessors to early #13484
  • Fix #10349: Match type on Map crashes the compiler #13581
  • Fix wrong external mappings in Build.scala #13582
  • Add type modes to DottyTypeStealer #13576
  • Fix #12962: Fail verifyScalacArgs if dist/target/pack/bin/scalac not found #13029
  • Fix #13455: Also consider sealed classes closed sums #13483
  • Fix #13197: Deskolemize lifted named arguments #13590
  • Fix missing SymbolOccurrence for aliased symbol #13609
  • Fix #13487: Unification check in deriving is incorrect #13489
  • Fix #13552: Insert compiler libraries head of user-specified classpath #13562
  • repl: Handle user-defined res definitions #13600
  • Fix #13491: 3.0.2 typing incompatible with 3.0.1 #13585
  • Ignore StaleSymbol exceptions when testing whether dependencies should be ignored #13594
  • ExtractDependencies: more robust cycle check #13583
  • Check that right hand sides of implicit defs don't loop (directly) #13589
  • Fix #13495: Break completion cycles #13596
  • Fix #10886: Show full evaluation of match types in interactive #13597
  • Fix #13469: Type Function Alias behaves differently from the inlined version of the type alias #13598
  • Fix variable handling in super calls #13639
  • Avoid crash in parser when tree has no position #13640
  • Fix #12944: Match type failure to reduce with separate compilation #13636
  • Fix 13618: Undo windows wildcard classpath globbing #13619
  • Don't reduce inline matches, when a guard cannot be checked at compile time #13601
  • Eliminate newNakedSymbol methods #13641
  • Fix #13418: support AppliedType in outerTestNeeded #13420
  • Fix erasure of curried polymorphic function types #13664
  • Fix # 13670: Relax requirements for recognizing valid scala hashbang lines #13671
  • Make distinctRefs in ImportSuggestions use constant stackspace #13667
  • Remember compared polytypes #13663
  • Fix ordering propagation during parameter unification in constraint solver #13031
  • Don't lose paramSyms when unpickling from Scala 2 #13665
  • Skipping inlined tree reduction of type member selection #13578
  • Fix #12656 by setting the proper reporter for inlined methods #13543
  • Inliner: don't confuse method parameters and nested lambda parameters #13658
  • Strip Nulls from Java members when unsafeNulls is enabled #13337
  • Handle inline super prefix bindings #13649
  • Fix parents of tuple classes #13659
  • Fix broken lookups #13697
  • Fix overriding in explicit nulls #13647
  • Normalize prototype before decomposing as a function #13651
  • Do not perform completion on higher kinded trees #13700
  • Fix encoding of setters on anonymous classes with structural types #13707
  • Scaladoc: Fix bugs found while setting up cats #13705
  • Search for type tests when matching abstract applied type #13453
  • Avoid cycle with top-level export and trait #13719
  • Handle Java varargs T... where T is a class parameter #13718
  • Fix top level index #13710
  • Set the correct owner when quote making inlinable #13547
  • Fix error message when "import given" is missing #13731
  • Can mark var implementation as override #13744
  • under -source:future, don't warn on infix usage of Scala 2 defined methods with default arguments #13714
  • Add missing position to closure tree #13733
  • Collective extensions is sensitive to EOF #13432
  • Fix init soundness #13472
  • Fix F-Bounded types signatures [#13753](ht...
Read more

3.1.1-RC2

20 Dec 09:54
Compare
Choose a tag to compare
3.1.1-RC2 Pre-release
Pre-release

Notable Changes

  • Allow dual Scala 2/3 macros in non-experimental scopes #13795
  • Refine check for caching companion in sum mirror #14035
  • Scaladoc: generate valid api doc if class name contains / or \ #13827

Contributors

Thank you to all the contributors who made this release possible ๐ŸŽ‰

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

     3  Filip Zybaล‚a
     2  Nicolas Stucki
     1  Dale Wijnand
     1  Jamie Thompson
     1  Paweล‚ Marks

Reporting Bugs

If you encounter a bug, please open an issue! ๐Ÿ™

3.1.1-RC1

18 Oct 13:50
Compare
Choose a tag to compare
3.1.1-RC1 Pre-release
Pre-release

Improvements

  • Remove differences in diagnostic printing in the REPL #13266
  • Make trace typed, to avoid needless casting #13464
  • Change TastyFormat for REFINEDtype to conform to existing .tasty files #13507
  • Emit deferred reachability warnings & fix boxing/unboxing adapting #13485
  • Include scope completions for synthic select tree #13515
  • Setup snippet compiler for scala.quoted and fix snippets #13521
  • Scaladoc: UI/UX Changes #13566
  • Make members of the empty package invisible from inside other packages #13593
  • Prioritize ambiguous errors in extension method search #13588
  • Better nested lists rendering in scaladoc #13643
  • Clarify implicit scope of opaque type aliases #13666
  • Allow using clauses to introduce Scala-2 conversions #13662
  • Remove plugin related settings from common scala settings #13711
  • Remove RenameLifted phase #13717
  • Move part of settings to CommonScalaSettings #13712
  • Add init and last methods to NonEmptyTuple #13735

Bug fixes

  • Do not bind inline parameters when lifting args #13429
  • Fix #13440: Avoid capturing var in message closure #13441
  • Scaladoc: Fix printing refined self-types in snippet-compiler #13436
  • Set correct source for generated TypeTrees #13465
  • Fix reachability of non-reducing match type children #13251
  • Use correct context when creating inline trace #13492
  • Fix #13497: Exception occurred while typechecking summon in nested flatMap #13499
  • Unwiden scrutinee types, fixing match analysis #13409
  • Don't count constructors in allMembers #13505
  • Fix crash on uninstantiated field access #13517
  • Fix #13320: add .type to modules in messages #13374
  • Fix #13518: Scala.js: fix primitive + string when the string is a TermRef. #13537
  • Fix running repl #13535
  • Fix specifity comparison for extensions in polymorphic givens #13509
  • Capture missing class when loading methods #13525
  • Fix snippets in scala.compiletime and fix snippet compiler reporting line numbers in specific cases #13528
  • Fix Java generic signatures for aliases #13574
  • Fix suggested stub implementation code #13529
  • Remove anomalies and gaps in handling annotations #13348
  • Do not remove accessors to early #13484
  • Fix #10349: Match type on Map crashes the compiler #13581
  • Fix wrong external mappings in Build.scala #13582
  • Add type modes to DottyTypeStealer #13576
  • Fix #12962: Fail verifyScalacArgs if dist/target/pack/bin/scalac not found #13029
  • Fix #13455: Also consider sealed classes closed sums #13483
  • Fix #13197: Deskolemize lifted named arguments #13590
  • Fix missing SymbolOccurrence for aliased symbol #13609
  • Fix #13487: Unification check in deriving is incorrect #13489
  • Fix #13552: Insert compiler libraries head of user-specified classpath #13562
  • repl: Handle user-defined res definitions #13600
  • Fix #13491: 3.0.2 typing incompatible with 3.0.1 #13585
  • Ignore StaleSymbol exceptions when testing whether dependencies should be ignored #13594
  • ExtractDependencies: more robust cycle check #13583
  • Check that right hand sides of implicit defs don't loop (directly) #13589
  • Fix #13495: Break completion cycles #13596
  • Fix #10886: Show full evaluation of match types in interactive #13597
  • Fix #13469: Type Function Alias behaves differently from the inlined version of the type alias #13598
  • Fix variable handling in super calls #13639
  • Avoid crash in parser when tree has no position #13640
  • Fix #12944: Match type failure to reduce with separate compilation #13636
  • Fix 13618: Undo windows wildcard classpath globbing #13619
  • Don't reduce inline matches, when a guard cannot be checked at compile time #13601
  • Eliminate newNakedSymbol methods #13641
  • Fix #13418: support AppliedType in outerTestNeeded #13420
  • Fix erasure of curried polymorphic function types #13664
  • Fix # 13670: Relax requirements for recognizing valid scala hashbang lines #13671
  • Make distinctRefs in ImportSuggestions use constant stackspace #13667
  • Remember compared polytypes #13663
  • Fix ordering propagation during parameter unification in constraint solver #13031
  • Don't lose paramSyms when unpickling from Scala 2 #13665
  • Skipping inlined tree reduction of type member selection #13578
  • Fix #12656 by setting the proper reporter for inlined methods #13543
  • Inliner: don't confuse method parameters and nested lambda parameters #13658
  • Strip Nulls from Java members when unsafeNulls is enabled #13337
  • Handle inline super prefix bindings #13649
  • Fix parents of tuple classes #13659
  • Fix broken lookups #13697
  • Fix overriding in explicit nulls #13647
  • Normalize prototype before decomposing as a function #13651
  • Do not perform completion on higher kinded trees #13700
  • Fix encoding of setters on anonymous classes with structural types #13707
  • Scaladoc: Fix bugs found while setting up cats #13705
  • Search for type tests when matching abstract applied type #13453
  • Avoid cycle with top-level export and trait #13719
  • Handle Java varargs T... where T is a class parameter #13718
  • Fix top level index #13710
  • Set the correct owner when quote making inlinable #13547
  • Fix error message when "import given" is missing #13731
  • Can mark var implementation as override #13744
  • under -source:future, don't warn on infix usage of Scala 2 defined methods with default arguments #13714
  • Add missing position to closure tree #13733
  • Collective extensions is sensitive to EOF #13432
  • Fix init soundness #13472
  • Fix F-Bounded types signatures #13753
  • Fix #13758: Provide scala.home setting for scripts [#13759](https://github.c...
Read more

3.1.0

18 Oct 11:44
Compare
Choose a tag to compare

Scala 3.1 is backwards binary-compatible with Scala 3.0: libraries compiled with 3.0.x can be used from 3.1 without change.

Notable changes

  • New experimental feature: safer exceptions #11721
  • Emit efficient code for switch over strings #11937
  • Add reflect SourceFile.{getJPath,name,path} #13177
  • Support -Wconf and @nowarn #12857
  • Fix #9482: simplified Manifest synthesis #13142
  • Scaladoc: Integrate Scastie into Scaladoc #13258
  • Add reflect Unapply.apply #13298
  • Change @experimental spec #13305
  • Update the tasty inspector returned value #13316
  • Add Wildcard in reflection #13363
  • Add TypedOrTest as super type of Typed in reflection #13362

Stabilized API

  • scala.Selectable.WithoutPreciseParameterTypes #13315
  • Symbol member methods in reflection API #13314
  • scala.quoted.Type.valueOfTuple #13313
  • Quotes abort API #13312
  • Quotes.reflect.TermParamClause.isErased #13311

Other improvements

Language and compiler

  • Add CanEqual typeclass instances of Option, Either and Tuple for strictEquality #12419
  • Synthesise Mirror.Sum for nested hierarchies #11686
  • Added better explanation for tree, that cannot be typed #12717
  • Allowing local variables to be initialized with non-hot values in initialization checker #12867
  • Use StringConcatFactory for string concatenation on JDK 9+ #12929
  • Add explanation to "already defined" message #13090
  • Do not require @experimental on anonymous classes #13155
  • Make body of quotes inlinable #13188
  • REPL: display the compiler + Java version on startup #13193
  • Teach backend to emit iinc instructions #13214
  • Allow IntSetting's to be set with a colon #13267
  • Add CanEqual typeclass instance for Seq to match Nil case#13265
  • Simplify & clarify TASTy isVersionCompatible #13280
  • Allow semicolon between type match cases #13338
  • Allow experimental erased in experimental scopes #13394
  • Add TypeRepr.isTupleN to reflection API #13384
  • Allow experimental language imports in experimental scopes #13417
  • Allow -source 3.1 as a version #13617

Documentation

  • Update the docs, change sidebar url property to page/index #13004
  • Inkuire search engine UI improvements #13052
  • Generate flat documentation structure for API rather than putting everything in api directory #13130
  • Add heuristic to support Context Bounds #13172
  • Add snippet includes feature. Introduce new snippet UX/UI. #13217
  • Add version browsing for nightlies #13244
  • Fetch Inkuire at scaladoc build instead of documentation generation #13287

SemanticDB

  • Signature information #12885
  • Support new Scala3 modifiers #13239
  • Support synthetics: implicit params, context params, and implicit conversions #13288
  • Support overridden_symbols#13295

Other bug fixes

  • Fix parsing Java annotation values #11809
  • Fix #11318: Assertion failed when not adding prefix to extension method in method body #11882
  • Fix #10900: Avoid loop for F-bounds in checkCanEqual #12747
  • Fix regression in provablyDisjoint #12786
  • Do no widen constant type on selector type in inline matches #12902
  • Make def generated from givens not synthetic #12979
  • Fix non-determinism in -Ysafe-init external method trace: #12989
  • Exhaustivity warnings on nested case classes #13030
  • Fix constructors Java generic signatures #13047
  • Set TimeZone for version number #13051
  • Avoid auto-tupling in unapply unless a tuple is expected #13063
  • Handle overloaded members when generating Java varargs bridges #13066
  • Fix definition of enclosingExtensionMethod #13078
  • Fix syntax of extension methods #13079
  • Refine "can be handled by parent" condition when generting bridges #13092
  • Suppress "no outer defs" check for Java sources #13108
  • Fix MatchError in Scaladoc Scalajs script #13115
  • Escape illegal characters in scaladoc code blocks #13118
  • Run PatternMatcher earlier, in the group before ExplicitOuter #13124
  • Deskolemise patterns to suppress exhaustivity warnings #13137
  • Analyze end markers when looking ahead #13139
  • Fix #13131: escape java array in ClassTag #13156
  • Handle isDefinedInCurrentRun on no symbol #13157
  • call deleteOnExit() after creating temporary scripting compile directory #13171
  • Detect cyclic dependencies when loading modules #13178
  • Fix #12800: Clarify match type reduction error on empty scrutinee #13184
  • Fix intrinsic types documentation when there is no scala package on files to document path #13185
  • Remove color from scala.compiletime.codeOf #13186
  • Scaladoc fix 12813: type parameter in extension method is wrong #13191
  • Scaladoc fix #13148: Empty argument list is not shown in scaladoc in some cases #13192
  • Fix inherit doc warnings #13199
  • Fix bugs in RemoteLinksTests #13200
  • Scaladoc fix [#13194]: Ill formated codeblock #13202
  • Fix self types appearing as inherited in docs and docs leaking self type methods #13207
  • Fix #12178: cannot resolve ValueOf for type literal argument of opaque types #13210
  • Make Hole a proper Tree in Trees #13213
  • Weaken assertion for duplicate attachments #13224
  • Employ frozen_<:< instead of <:< within EtaExpansion extractor logic #13229
  • Fix docs of Reflect.Symbol.children #13232- Fix #13141 remove spurious coercion of * to a type identifier (was already a valid identifier) #13237
  • Don't export members that will be synthesized in case classes #13234
  • Fix a bug causi...
Read more

3.1.0-RC3

04 Oct 12:38
Compare
Choose a tag to compare
3.1.0-RC3 Pre-release
Pre-release

Notable Changes

  • Make batch files support installation path containing spaces #13577
  • Fix #13626: Wrong position of quote content #13627
  • Fix #10867: Normalize after applyIfParameterized in superType #13253
  • Generate static forwarders for object members in companion interface #13573
  • Allow -source 3.1 as a version #13617

Contributors

Thank you to all the contributors who made this release possible ๐ŸŽ‰

According to git shortlog -sn --no-merges 3.1.0-RC2..3.1.0-RC3 these are:

     4  Olivier Blanvillain
     2  Stรฉphane Micheloud
     1  Guillaume Martres
     1  Martin Odersky
     1  Matthieu Bovel
     1  Paweล‚ Marks

Reporting Bugs

If you encounter a bug, please open an issue! ๐Ÿ™

3.1.0-RC2

16 Sep 11:24
cf60061
Compare
Choose a tag to compare
3.1.0-RC2 Pre-release
Pre-release

Notable Changes

  • Fix #10747: Raise type error on unreducible match type #12768
  • Set typer phase after InteractiveDriver.run #13530
  • 3.1.0 line is no longer bootstrapped by the nightly build of the compiler

Contributors

Thank you to all the contributors who made this release possible ๐ŸŽ‰

According to git shortlog -sn --no-merges 3.1.0-RC1..3.1.0-RC2 these are:

     9 Olivier Blanvillain
     3 Jamie Thompson
     1 Andrzej Ratajczak
     1 Nicolas Stucki
     1 Tomasz Godzik

Reporting Bugs

If you encounter a bug, please open an issue! ๐Ÿ™