Skip to content

Releases: scala/scala3

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! 🙏

3.1.0-RC1

01 Sep 14:54
d8cf8a3
Compare
Choose a tag to compare
3.1.0-RC1 Pre-release
Pre-release

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

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 causing Scaladoc break when -release option is set. [#13233](https://github.com/lampepfl/dotty...
Read more

3.0.2

01 Sep 09:45
Compare
Choose a tag to compare

Notable Changes

Language & syntax

  • Don't insert semicolons in conditions unless indented #12801
  • Add escape hatch Selectable.WithoutPreciseParameterTypes #12268
  • Add Matchable to the parents of Null in explicit nulls #12697

Scaladoc

  • Add no links warning setting to scaladoc #12936
  • Search for methods also by type signature #12375

Metaprogramming

  • Map opaque types in arguments of inlined calls to proxies #12922
  • Don't forget side effects in prefixes of inlined function calls #12842
  • Drop "no inlines with opaques" implementation restriction #12815
  • Detect abstract inline method calls after inlining #12777
  • Fix implicit ValueOf synthesis #12615

Other improvements

  • Add Scala 3 batch commands for Windows #13006
  • Fix #12981: show diagnostics levels (warn | error) in REPL #13000
  • Use WeakHashSet instead of HashSet for hash-consing types #12935
  • Balance And/Or types when forming lubs and glbs #12928
  • Restricts isInstanceOf[Null] checks #12905
  • Add support for shallow capture sets #12875
  • Drop implementation restriction for polymorphic functions #12863
  • Preserve hard unions in more situations #12654
  • Better support type-heavy pattern matches #12549

Other bug fixes

  • Fix #13046: override is a valid identifier in Java, not a keyword #13048
  • Don't emit Java generic signatures for constructors #13047
  • Exhaustivity warnings on nested case classes #13030
  • Refine overriding pairs in RefChecks #12982
  • Let annotations on parameters see preceding type parameters #12980
  • Retain transparent flag on exports #12978
  • Widen unions before finding members #12925
  • ProtoTypes#normalizedCompatible: keep more constraints #12924
  • Detect provisional superclasses and recompute them in Typer #12912
  • Properly handle self-types in reflection member lookup #12893
  • Use Java rules for member lookup in .java sources #12884
  • Hide problematic static forwarders #12860
  • When checking tp1 <:< tycon2[args2], widen tp1 to reveal application #12846
  • Skip contexts for implicit search when resolving imports #12816
  • Insert conversions also on selections wrapped in type applications #12719
  • Emit generic signature for static forwarders to nullary methods #12710
  • Always generate a partial function from a lambda #12670
  • Fix #12572: Ignore default accessor bridges in non-native JS classes. #12657
  • Do not update source positions once initizlized #13201
  • Pick right type parameters for opaqueToBounds in TreeUnpickler #13206
  • Avoid crash by relaxing TyperState assertion #13150

Contributors

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

According to git shortlog -sn --no-merges 3.0.1..3.0.2 these are:

    94  Martin Odersky
    60  Liu Fengyun
    47  Kacper Korban
    28  Filip Zybała
    18  Andrzej Ratajczak
    17  Guillaume Martres
    15  Jamie Thompson
    10  bjornregnell
     9  tanishiking
     8  Dylan Halperin
     8  Anatolii Kmetiuk
     8  Tom Grigg
     7  Paweł Marks
     5  Som Snytt
     5  changvvb
     5  Michał Pałka
     5  Krzysztof Romanowski
     4  Aleksander Boruch-Gruszecki
     4  Sébastien Doeraene
     4  Nicolas Stucki
     3  Phil
     3  Magnolia.K
     2  xuwei-k
     2  Ben Plommer
     2  Florian Schmaus
     2  Lukas Rytz
     2  Maciej Gorywoda
     2  Markus Sutter
     2  Roman Kotelnikov
     2  Stéphane Micheloud
     2  noti0na1
     2  vincenzobaz
     1  Ondrej Lhotak
     1  KazuyaMiayshita
     1  odersky
     1  Julian Mendez
     1  Anton Sviridov
     1  GavinRay97
     1  EnzeXing
     1  Tomas Mikula
     1  Tomasz Godzik
     1  Vaastav Arora
     1  Vadim Chelyshov
     1  Will Sargent
     1  Zofia Bartyzel
     1  Dale Wijnand
     1  Bjorn Regnell
     1  dmitrii.naumenko
     1  Adrien Piquerez
     1  Meriam Lachkar
     1  Martin
     1  Olivier Blanvillain
     1  Lorenzo Gabriele

Reporting Bugs

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

3.0.2-RC2

23 Aug 20:39
b8b980d
Compare
Choose a tag to compare
3.0.2-RC2 Pre-release
Pre-release

Notable Changes

  • Do not update source positions once initizlized #13201
  • Pick right type parameters for opaqueToBounds in TreeUnpickler #13206
  • Avoid crash by relaxing TyperState assertion #13150

Contributors

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

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

     9  Martin Odersky
     2  Krzysztof Romanowski
     1  Andrzej Ratajczak
     1  Guillaume Martres
     1  Michał Pałka
     1  Paweł Marks
     1  Tom Grigg

Reporting Bugs

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

3.0.2-RC1

13 Jul 10:57
Compare
Choose a tag to compare
3.0.2-RC1 Pre-release
Pre-release

Notable Changes

Language & syntax

  • Don't insert semicolons in conditions unless indented #12801
  • Add escape hatch Selectable.WithoutPreciseParameterTypes #12268
  • Add Matchable to the parents of Null in explicit nulls #12697

Scaladoc

  • Add no links warning setting to scaladoc #12936
  • Search for methods also by type signature #12375

Metaprogramming

  • Map opaque types in arguments of inlined calls to proxies #12922
  • Don't forget side effects in prefixes of inlined function calls #12842
  • Drop "no inlines with opaques" implementation restriction #12815
  • Detect abstract inline method calls after inlining #12777
  • Fix implicit ValueOf synthesis #12615

Other improvements

  • Add Scala 3 batch commands for Windows #13006
  • Fix #12981: show diagnostics levels (warn | error) in REPL #13000
  • Use WeakHashSet instead of HashSet for hash-consing types #12935
  • Balance And/Or types when forming lubs and glbs #12928
  • Restricts isInstanceOf[Null] checks #12905
  • Add support for shallow capture sets #12875
  • Drop implementation restriction for polymorphic functions #12863
  • Preserve hard unions in more situations #12654
  • Better support type-heavy pattern matches #12549

Other bug fixes

  • Fix #13046: override is a valid identifier in Java, not a keyword #13048
  • Don't emit Java generic signatures for constructors #13047
  • Exhaustivity warnings on nested case classes #13030
  • Refine overriding pairs in RefChecks #12982
  • Let annotations on parameters see preceding type parameters #12980
  • Retain transparent flag on exports #12978
  • Widen unions before finding members #12925
  • ProtoTypes#normalizedCompatible: keep more constraints #12924
  • Detect provisional superclasses and recompute them in Typer #12912
  • Properly handle self-types in reflection member lookup #12893
  • Use Java rules for member lookup in .java sources #12884
  • Hide problematic static forwarders #12860
  • When checking tp1 <:< tycon2[args2], widen tp1 to reveal application #12846
  • Skip contexts for implicit search when resolving imports #12816
  • Insert conversions also on selections wrapped in type applications #12719
  • Emit generic signature for static forwarders to nullary methods #12710
  • Always generate a partial function from a lambda #12670
  • Fix #12572: Ignore default accessor bridges in non-native JS classes. #12657

Contributors

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

According to git shortlog -sn --no-merges 3.0.1..3.0.2-RC1 these are:

    85 Martin Odersky
    60 Liu Fengyun
    47 Kacper Korban
    28 Filip Zybała
    17	Andrzej Ratajczak
    16 Guillaume Martres
    15 Jamie Thompson
    10 bjornregnell
     9	tanishiking
     8	Dylan Halperin
     8	Anatolii Kmetiuk
     7	Tom Grigg
     5	Som Snytt
     5	changvvb
     4	Nicolas Stucki
     4	Aleksander Boruch-Gruszecki
     4	Sébastien Doeraene
     4	Michał Pałka
     3	Magnolia.K
     3	Phil
     3	Krzysztof Romanowski
     3	Paweł Marks
     2	xuwei-k
     2	Ben Plommer
     2	Florian Schmaus
     2	Lukas Rytz
     2	Maciej Gorywoda
     2	Markus Sutter
     2	Roman Kotelnikov
     2	Stéphane Micheloud
     2	noti0na1
     2	vincenzobaz
     1	Ondrej Lhotak
     1	KazuyaMiayshita
     1	odersky
     1	Julian Mendez
     1	Anton Sviridov
     1	GavinRay97
     1	EnzeXing
     1	Tomas Mikula
     1	Tomasz Godzik
     1	Vaastav Arora
     1	Vadim Chelyshov
     1	Will Sargent
     1	Zofia Bartyzel
     1	Dale Wijnand
     1	Bjorn Regnell
     1	dmitrii.naumenko
     1	Adrien Piquerez
     1	Meriam Lachkar
     1	Martin
     1	Olivier Blanvillain
     1	Lorenzo Gabriele

Reporting Bugs

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

3.0.1

09 Jul 10:02
Compare
Choose a tag to compare

Notable changes (in comparison to 3.0.0)

Language

  • Add @experimental annotation #12102
  • A simpler implementation of init checker #12495
  • Allow _ as a type lambda placeholder in -Ykind-projector:underscores compatiblity mode #12378
  • Support variance annotations in -Ykind-projector mode #12341
  • Better error message for errors arising from implicit completions #12002
  • Explain match type reduction failures in error messages #12053

Metaprogramming

  • Cache quote unpickling #12242
  • Add Expr.valueOrAbort and reflect.report.errorAndAbort #12056
  • Avoid pickled tasty for some captured quote reference #12248
  • Improve quote matcher performance #12418
  • Port scala.quoted.runtime.impl.QuoteMatcher #12402
  • Check transparent inline type argument bounds #12334
  • Improve constant folding logic #12080
  • Support inline val references in top level splices #12235

Scaladoc

  • Snippet compiler #11582
  • Update user manual for scaladoc #12083

Bug fixes

  • IArray.toArray: Deprecate broken method #12598
  • Fix comparison of dependent function types #12214
  • Make translucentSuperType handle match types #12153
  • Harden Type Inference #12560
  • Reject references to self in super constructor calls #12567
  • Provide mirror support after inlining #12062
  • Allow export paths to see imports #12134
  • Streamline given syntax #12107
  • Export constructor proxies #12311
  • Identify package and nested package object in isSubPrefix #12297
  • Treat Refinements more like AndTypes #12317
  • Fix #9871: use toNestedPairs in provablyDisjoint #10560
  • Fix TypeTest exhaustivity check #12059
  • TreeUnpickler: fix cycle involving param accessor #12873

Other

  • record end markers in trees and semanticdb, exclude top level def wrappers #12541
  • Use stringOf from REPL to avoid trimming #11562
  • sbt bridge reporting improvements #12845

Contributors

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

According to git shortlog -sn --no-merges 3.0.0..3.0.1 these are:

   122	Martin Odersky
   111	Liu Fengyun
    98	Nicolas Stucki
    32	Guillaume Martres
    24	Phil
    20	Olivier Blanvillain
    14	Tom Grigg
    14	Adrien Piquerez
    13	Natsu Kagami
    12	Andrzej Ratajczak
    10	Anatolii Kmetiuk
    10	Aleksander Boruch-Gruszecki
    10	odersky
     8	Jamie Thompson
     7	Michał Pałka
     6	Maxime Kjaer
     5	Krzysztof Romanowski
     5	Som Snytt
     3	Fengyun Liu
     3	noti0na1
     3	Filip Zybała
     3	Phil Walker
     3	Kai
     2	soronpo
     2	Kacper Korban
     2	Raphael Jolly
     2	Adam Warski
     2	tanishiking
     2	Vadim Chelyshov
     2	Sébastien Doeraene
     2	Johannes Rudolph
     1	xuwei-k
     1	Alexander Ioffe
     1	David Barri
     1	Devon Stewart
     1	Dmitrii Naumenko
     1	Ivan Kurchenko
     1	Jakub Kozłowski
     1	Jonas Ackermann
     1	Kevin Lee
     1	Markus Sutter
     1	Martin
     1	Miles Sabin
     1	Oron Port
     1	Paweł Marks
     1	Ruslan Shevchenko
     1	Seth Tisue
     1	nogurenn
     1	nurekata

Reporting Bugs

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

3.0.1-RC2

22 Jun 16:28
Compare
Choose a tag to compare
3.0.1-RC2 Pre-release
Pre-release

Notable Changes

  • sbt bridge reporting improvements #12845
  • TreeUnpickler: fix cycle involving param accessor #12873
  • Fix TyperState assertion failures #12837
  • ci fixes #12895

Contributors

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

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

     3  Guillaume Martres
     2  Krzysztof Romanowski
     1  Anatolii Kmetiuk
     1  Markus Sutter
     1  Martin Odersky
     1  Vadim Chelyshov

Reporting Bugs

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

3.0.1-RC1

02 Jun 09:32
Compare
Choose a tag to compare
3.0.1-RC1 Pre-release
Pre-release

Notable Changes

Language

  • Add @experimental annotation #12102
  • A simpler implementation of init checker #12495
  • Allow _ as a type lambda placeholder in -Ykind-projector:underscores compatiblity mode #12378
  • Support variance annotations in -Ykind-projector mode #12341
  • Better error message for errors arising from implicit completions #12002
  • Explain match type reduction failures in error messages #12053

Metaprogramming

  • Cache quote unpickling #12242
  • Add Expr.valueOrAbort and reflect.report.errorAndAbort #12056
  • Avoid pickled tasty for some captured quote reference #12248
  • Improve quote matcher performance #12418
  • Port scala.quoted.runtime.impl.QuoteMatcher #12402
  • Check transparent inline type argument bounds #12334
  • Improve constant folding logic #12080
  • Support inline val references in top level splices #12235

Scaladoc

  • Snippet compiler #11582
  • Update user manual for scaladoc #12083

Bug fixes

  • IArray.toArray: Deprecate broken method #12598
  • Fix comparison of dependent function types #12214
  • Make translucentSuperType handle match types #12153
  • Harden Type Inference #12560
  • Reject references to self in super constructor calls #12567
  • Provide mirror support after inlining #12062
  • Allow export paths to see imports #12134
  • Streamline given syntax #12107
  • Export constructor proxies #12311
  • Identify package and nested package object in isSubPrefix #12297
  • Treat Refinements more like AndTypes #12317
  • Fix #9871: use toNestedPairs in provablyDisjoint #10560
  • Fix TypeTest exhaustivity check #12059

Other

  • record end markers in trees and semanticdb, exclude top level def wrappers #12541
  • Use stringOf from REPL to avoid trimming #11562

Contributors

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

According to git shortlog -sn --no-merges 3.0.0-RC2..3.0.1-RC1 these are†:

   121  Martin Odersky
   111  Liu Fengyun
    98  Nicolas Stucki
    29  Guillaume Martres
    24  Phil
    20  Olivier Blanvillain
    14  Tom Grigg
    14  Adrien Piquerez
    13  Natsu Kagami
    12  Andrzej Ratajczak
    10  odersky
    10  Aleksander Boruch-Gruszecki
     9  Anatolii Kmetiuk
     8  Jamie Thompson
     6  Maxime Kjaer
     5  Som Snytt
     3  Filip Zybała
     3  Krzysztof Romanowski
     3  Kai
     3  Fengyun Liu
     3  noti0na1
     3  Phil Walker
     2  Johannes Rudolph
     2  soronpo
     2  tanishiking
     2  Adam Warski
     2  Kacper Korban
     2  Raphael Jolly
     2  Sébastien Doeraene
     1  xuwei-k
     1  Alexander Ioffe
     1  David Barri
     1  Devon Stewart
     1  Dmitrii Naumenko
     1  Ivan Kurchenko
     1  Jakub Kozłowski
     1  Jonas Ackermann
     1  Kevin Lee
     1  Martin
     1  Michał Pałka
     1  Miles Sabin
     1  Oron Port
     1  Paweł Marks
     1  Ruslan Shevchenko
     1  Seth Tisue
     1  Vadim Chelyshov
     1  nogurenn
     1  nurekata

†: Note that we measure against 3.0.0-RC2 and not 3.0.0 because we stabilized on 3.0.0-RC2. Only critical bug fixes found their way into 3.0.0-RC3 and further, while the majority of changes ended up in 3.0.1-RC1.

Reporting Bugs

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