Skip to content

Releases: scala/scala3

3.3.1-RC5

10 Aug 14:54
Compare
Choose a tag to compare
3.3.1-RC5 Pre-release
Pre-release

Backported fixes

  • Heal stage inconsistent prefixes of type projections #18239
  • Fix regression #17245: Overloaded methods with ClassTags #18286
  • Disallow taking singleton types of packages again #18232
  • A slightly more conservative version of #14218 #18352
  • Record failures to adapt application arguments #18269
  • Fix regression in exhaustivity of HK types #18303

Contributors

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

According to git shortlog -sn --no-merges 3.3.1-RC4..3.3.1-RC5 these are:

     5 Dale Wijnand
     2 Martin Odersky
     2 PaweΕ‚ Marks
     1 Jan Chyb
     1 Nicolas Stucki

3.3.1-RC4

11 Jul 15:03
Compare
Choose a tag to compare
3.3.1-RC4 Pre-release
Pre-release

Backported fixes

  • Revert "Include top-level symbols from same file in outer ambiguity error" #17438

Contributors

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

According to git shortlog -sn --no-merges 3.3.1-RC3..3.3.1-RC4 these are:

     2 PaweΕ‚ Marks
     1 Nicolas Stucki

3.3.1-RC3

06 Jul 09:58
Compare
Choose a tag to compare
3.3.1-RC3 Pre-release
Pre-release

Backported fixes

  • Add clause for protected visibility from package objects #18134

Contributors

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

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

     2 PaweΕ‚ Marks
     1 Martin Odersky

3.3.1-RC2

29 Jun 11:16
Compare
Choose a tag to compare
3.3.1-RC2 Pre-release
Pre-release

Backported fixes

  • Dealias types in `New`` before matching quotes #17615
  • Fix accessibleType for package object prefixes #18057

Contributors

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

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

     2 Martin Odersky
     2 PaweΕ‚ Marks
     1 Nicolas Stucki

3.3.1-RC1

30 May 10:15
Compare
Choose a tag to compare
3.3.1-RC1 Pre-release
Pre-release

Highlights of the release

  • Support records in JavaParsers #16762
  • Port JVM backend refactor from Scala 2 #15322

Other changes and fixes

Backend

  • Disallow mixins where super calls bind to vals #16908
  • Fix #15107: Avoid re-emitting a LineNumber after only LabelNodes. #16813

Coverage

  • Fix #17042: Preserve the shape of secondary ctors in instrumentCoverage. #17111

Default parameters

  • Dupe fix when finding default arg getters #17058

Documentation

  • Fix: ensure syntax blocks for ebnf are marked as such #16837

Erasure

  • Handle @companionClass and @companionMethod meta-annotations #17091

Extension Methods

  • Support extension methods imported from different objects #17050

GADTs

  • Fix tuple member selection so it works with GADT healing #16766
  • Fix upper bound constraints, that are higher-kinded #16744
  • Split out immutable GadtConstraint #16602

Implicits

  • Improve subtyping check for not yet eta-expanded higher kinded types #17139
  • Harden tpd.Apply/TypeApply in case of errors #16887
  • Try to be more subtle when inferring type parameters of class parents #16896
  • Include P in the implicit scope of P.this.type #17088

Incremental Compilation

  • Fix under-compilation when the method type in a SAM changes #16996

Infrastructure

  • Set reference version to 3.3.0-RC6 #17504
  • Fix #17119: Download Coursier from GitHub directly #17141

Inline

  • Remove NamedArg from inlined arguments #17228
  • Don't generate a Select for a TermRef with NoPrefix #16754
  • Prepare bodies of inline forwarders eagerly #16757
  • Do not remove inline method implementations until PruneErasedDefs #17408

Java Interop

  • ClassfileParser: allow missing param names (for JDK 21) #17536

Linting

  • Improve -Wunused: locals, privates with unset vars warning #16639 #17160
  • Fix wunused false positive when deriving alias type #17157
  • Port -Wnonunit-statement setting for dotty #16936

Match Types

  • Normalize match type usage during implicit lookup #17457
  • Fix #13757: Explicitly disallow higher-kinded scrutinees of match types. #17322
  • Fix match type reduction with wildcard type arguments #17065
  • Fix check whether classtag can be generated for match types #16708

Parser

  • Allow lines starting with . to fall outside previous indentation widths #17056

Pattern Matching

  • Fix #11541: Specialize ClassTag[T] in exhaustivity check #17385
  • Check outer class prefixes in type projections when pattern matching #17136
  • Make unchecked cases non-@unchecked and non-unreachable #16958
  • Fix #16899: Better handle X instanceOf P where X is T1 | T2 #17382

Pickling

  • ClassfileParser: Avoid cycle when accessing companion in inner class lookup #16882

Polyfunctions

  • Fix type aliases in beta-reduction of polyfunctions #17054

Quotes

  • Register paramProxy and thisProxy in Quote type #17541
  • Only check newVal/newMethod privateWithin on -Xcheck-macros #17437
  • Unencode quote and splice trees #17342
  • Correctly type Expr.ofTupleFromSeq for arity > 22 #17261
  • Use TermRef to distinguish distinct Type[T] instances #17205
  • Check level consistency of SingletonTypeTree as a type #17209
  • Fix splice type variable pattern detection #17048
  • Avoid creation of @SplicedType quote local refrences #17051
  • Dealias type references when healing types in quotes #17049
  • Replace quoted type variables in signature of HOAS pattern result #16951
  • Beta-reduce directly applied PolymorphicFunction #16623
  • Use Object.toString for quoted.{Expr, Type} #16663
  • Fix Splicer.isEscapedVariable #16838
  • Fix references to class members defined in quotes #17107
  • Handle pickled forward references in pickled expressions #16855
  • Fix #16615 - crashes of path dependent types in spliced Type.of #16773
  • Disallow local term references in staged types #16362
  • Refactor level checking / type healing logic #17082
  • Dealias quoted types when staging #17059
  • Fix quotes with references to path dependent types #17081
  • Make arguments order in quote hole deterministic #17405
  • Only transform the body of the quote with QuoteTransformer #17451
  • Place staged type captures in Quote AST #17424
  • Add SplicePattern AST to parse and type quote pattern splices #17396

Reflection

  • -Xcheck-macros: add hint when a symbol in created twice #16733
  • Assert that symbols created using reflect API have correct privateWithin symbols #17352
  • Fix reflect.LambdaType type test #16972
  • Improve New/Select -Ycheck message #16746
  • Improve error message for CyclicReference in macros #16749
  • Add reflect defn.FunctionClass overloads #16849

REPL

  • Always load REPL classes in macros including the output directory #16866

Reporting

  • Improve missing argument list error #17126
  • Improve implicit parameter error message with aliases #17125
  • Improve "constructor proxy shadows outer" handling #17154
  • Clarify ambiguous reference error message #16137
  • Hint about forbidden combination of implicit values and conversions #16735
  • Attach explanation message to diagnostic message #16787
  • Propagate implicit search errors from implicit macros #16840
  • Detail UnapplyInvalidReturnType error message #17167
  • Add way to debug -Xcheck-macros tree checking #16973
  • Enrich and finesse compiler crash reporting #17031
  • Allow @implicitNotFound messages as explanations #16893
  • Include top-level symbols from same file in outer ambiguity error #17033
  • Do not issue deprecation warnings when declaring deprecated case classes #17165

Scala-JS

  • Fix #17344: Make implicit references to this above dynamic imports explicit. #17357
  • Fix #12621: Better error message for JS trait ctor param. #16811
  • Fix #16801: Handle Closure's of s.r.FunctionXXL. #16809
  • Fix #17549: Unify...
Read more

3.3.0

30 May 10:15
Compare
Choose a tag to compare

Highlights of the release

  • Stabilize new lazy vals #16614
  • Experimental Macro annotations #16392 #16454 #16534
  • Fix stability check for inline parameters #15511
  • Make fewerBraces a standard feature #16297
  • Add new front-end phase for unused entities and add support for unused imports #16157
  • Implement -Wvalue-discard warning #15975
  • Introduce boundary/break control abstraction. #16612

Other changes and fixes

Annotations

  • Support use-site meta-annotations #16445

Desugaring

  • Reuse typed prefix for applyDynamic and applyDynamicNamed #16552
  • Fix object selftype match error #16441

Erasure

  • Dealias before checking for outer references in types #16525
  • Fix generic signature for type params bounded by primitive #16442
  • Avoid EmptyScope.cloneScope crashing, eg on missing references #16314

GADTs

  • Inline GADT state restoring in TypeComparer #16564
  • Add extension/conversion to GADT selection healing #16638
  • Split out immutable GadtConstraint #16602
  • Avoid bidirectional GADT typebounds from fullBounds #15683

Incremental compilation

  • Unpickle arguments of parent constructors in Templates lazily #16688

Initialization

  • Fix #16438: Supply dummy args for erroneous parent call in init check #16448

Inline

  • Dealias in ConstantValue, for inline if cond #16652
  • Set Span for top level annotations generated in PostTyper #16378
  • Interpolate any type vars from comparing against SelectionProto #16348
  • Handle binding of beta reduced inlined lambdas #16377
  • Do not add dummy RHS to abstract inline methods #16510
  • Warn on inline given aliases with functions as RHS #16499
  • Support inline overrides in value classes #16523

Java interop

  • Represent Java annotations as interfaces so they can be extended, and disallow various misuses of them #16260

Linting

  • Fix -Wunused:import registering constructor <init> instead of its owner (also fix false positive for enum) #16661
  • Fix #16675 : -Wunused false positive on case class generated method, due to flags used to distinguish case accessors. #16683
  • Fix #16682: CheckUnused missed some used symbols #16690
  • Fix "-Wunused: False positive on parameterless enum member" #16927
  • Register usage of symbols in non-inferred type trees in CheckUnused #16939
  • Traverse annotations instead of just registering in -Wunused #16956
  • Ignore parameter of accessors in -Wunused #16957
  • Ignore parameter of accessors in -Wunused #16957
  • Improve override detection in CheckUnused #16965
  • WUnused: Fix unused warning in synthetic symbols #17020
  • Fix WUnused with idents in derived code #17095
  • WUnused: Fix for symbols with synthetic names and unused transparent inlines #17061
  • Skip extension method params in WUnused #17178
  • Fix wunused false positive when deriving alias type #17157
  • Fix WUnused for accessible symbols that are renamed #17177
  • Fix WUnused false positive in for #17176
  • Make CheckUnused run both after Typer and Inlining #17206
  • Disable WUnused for params of non-private defs #17223
  • Wunused: Check if symbol exists before isValidMemberDef check #17316
  • Wunused: Include import selector bounds in unused checks #17323
  • Fix compiler crash in WUnused #17340

Opaque Types

  • Delay opaque alias checking until PostTyper #16644

Overloading

  • Handle context function arguments in overloading resolution #16511

Parser

  • Improve support for Unicode supplementary characters in identifiers and string interpolation (as in Scala 2) #16278
  • Require indent after colon at EOL #16466
  • Help givens return refined types #16293

Pattern Matching

  • Tweak AvoidMap's derivedSelect #16563
  • Space: Use RHS of & when refining subtypes #16573
  • Freeze constraints in a condition check of maximiseType #16526
  • Restrict syntax of typed patterns #16150
  • Test case to show that #16252 works with transparent #16262
  • Support inline unapplySeq and with leading given parameters #16358
  • Handle sealed prefixes in exh checking #16621
  • Detect irrefutable quoted patterns #16674
  • Patmat: Use less type variables in prefix inference #16827

Pickling

  • Allow case classes with up to 254 parameters #16501
  • Correctly unpickle Scala 2 private case classes in traits #16519

Polyfunctions

  • Fix #9996: Crash with function accepting polymorphic function type with singleton result #16327

Quotes

  • Remove contents of inline methods #16345
  • Fix errors in explicit type annotations in inline match cases #16257
  • Handle macro annotation suspends and crashes #16509
  • Fix macro annotations spliceOwner #16513
  • Fix HK quoted pattern type variables #16907

REPL

  • REPL: Fix crash when printing instances of value classes #16393
  • Attempt to fix completion crash #16267
  • Fix REPL shadowing bug #16389
  • Open up for extensibility #16276
  • Don't crash if completions throw #16687

Reflection

  • Fix reflect typeMembers to return all members #15033
  • Deprecate reflect Flags.Static #16568

Reporting

  • Suppress follow-on errors for erroneous import qualifiers #16658
  • Fix order in which errors are reported for assignment to val #16660
  • Fix class name in error message #16635
  • Make refined type printing more source compatible #16303
  • Add error hint on local inline def used in quotes #16572
  • Fix Text wrapping #16277
  • Fix #16680 by registering Ident not containing a symbol #16689
  • Fix the non-miniphase tree traverser #16684
  • Just warn on type ascription on a pattern #17454

Scala-JS

  • Fix #14289: Accept Ident refs to js.native in native member rhs. #16185

Scaladoc

  • Added jpath check to `ClassLi...
Read more

3.3.0-RC6

15 May 08:17
Compare
Choose a tag to compare
3.3.0-RC6 Pre-release
Pre-release

Backported fixes

  • Patmat: Use less type variables in prefix inference #16827
  • Just warn on type ascription on a pattern #17454
  • Fix #17187: allow patches with same span #17366

Contributors

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

According to git shortlog -sn --no-merges 3.3.0-RC5..3.3.0-RC6 these are:

     2  Adrien Piquerez
     2  MichaΕ‚ PaΕ‚ka
     2  PaweΕ‚ Marks
     1  Dale Wijnand

3.3.0-RC5

28 Apr 12:45
Compare
Choose a tag to compare
3.3.0-RC5 Pre-release
Pre-release

Backported fixes

  • Remove experimental from Mirror#fromProductTyped #16829
  • Wunused: Check if symbol exists before isValidMemberDef check #17316
  • Wunused: Include import selector bounds in unused checks #17323
  • Fix compiler crash in WUnused #17340

Contributors

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

According to git shortlog -sn --no-merges 3.3.0-RC4..3.3.0-RC5 these are:

     2 Kacper Korban
     2 Michael Pilquist
     2 PaweΕ‚ Marks
     2 Szymon Rodziewicz
     1 Matt Bovel


3.3.0-RC4

19 Apr 08:29
Compare
Choose a tag to compare
3.3.0-RC4 Pre-release
Pre-release

Backported fixes

  • Fix HK quoted pattern type variables #16907
  • Fix caching issue caused by incorrect isProvisional check #16989
  • Fix race condition in new LazyVals #16975
  • Fix "-Wunused: False positive on parameterless enum member" #16927
  • Register usage of symbols in non-inferred type trees in CheckUnused #16939
  • Traverse annotations instead of just registering in -W #16956
  • Ignore parameter of accessors in -Wunused #16957
  • Improve override detection in CheckUnused #16965
  • WUnused: Fix unused warning in synthetic symbols #17020
  • Fix WUnused with idents in derived code #17095
  • WUnused: Fix for symbols with synthetic names and unused transparent inlines #17061
  • Skip extension method params in WUnused #17178
  • Fix wunused false positive when deriving alias type #17157
  • Fix WUnused for accessible symbols that are renamed #17177
  • Fix WUnused false positive in for #17176
  • Make CheckUnused run both after Typer and Inlining #17206
  • Disable WUnused for params of non-private defs #17223

Contributors

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

According to git shortlog -sn --no-merges 3.3.0-RC3..3.3.0-RC4 these are:

    41 Szymon Rodziewicz
     4 Paul Coral
     3 PaweΕ‚ Marks
     1 Guillaume Martres
     1 Kacper Korban
     1 Nicolas Stucki

3.3.0-RC3

17 Feb 19:18
Compare
Choose a tag to compare
3.3.0-RC3 Pre-release
Pre-release

Backported fixes

  • Added jpath check to ClassLikeSupport getParentsAsTreeSymbolTuples #16759
  • Split out immutable GadtConstraint #16602
  • Avoid bidirectional GADT typebounds from fullBounds #15683
  • Fix static lazy field holder for GraalVM #16800
  • Add support for disabling redirected output in the REPL driver for usage in worksheets in the Scala Plugin for IntelliJ IDEA #16810
  • Add missing criterion to subtype check #16889

Contributors

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

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

     7 Dale Wijnand
     5 Szymon Rodziewicz
     2 PaweΕ‚ Marks
     2 Vasil Vasilev
     1 Martin Odersky
     1 Mohammad Yousuf Minhaj Zia