Skip to content

Releases: scala/scala3

3.4.2-RC1

29 Mar 12:05
Compare
Choose a tag to compare
3.4.2-RC1 Pre-release
Pre-release

Highlights of the release

  • Bump JLine 3.19.0 -> 3.24.1 & sbt 1.9.7 -> 1.9.9 #19744
  • Refactor settings & improve dx #19766
  • Publish scala2-library-tasty-experimental #19588
  • Repl - method signatures in autocomplete #19917

Other changes and fixes

Annotations

  • Attempt implicit search for old style implicit parameters in Application matchArgs #19737

Backend

  • Fix(#17255): cannot find Scala companion module from Java #19773
  • Change isStatic to isStaticOwner in hasLocalInstantiation #19803

Coverage

  • Port coverage filter options for packages and files #19727

Default parameters

  • Lift all non trivial prefixes for default parameters #19739

Doctool

  • Prevent HTML/XSS Injection in Scala Search #19980
  • Parse search query param in Scaladoc #19669

Experimental: Capture Checking

  • Disallow covariant caps in the lower bound of type members #19624
  • Ignore orphan parameters inside a retains annotation during Ycheck #19684
  • Fix the pickling of This inside capture sets #19797
  • Add updated to SeqViewOps #19798
  • Fix Function tree copier #19822
  • Drop FreeSeqFactory from stdlib-cc #19849
  • Fix i19859 #19860
  • Various fixes to stdlib-cc #19873
  • Add more methods in SeqViewOps #19993
  • Check This references in refersToParamOf #20005

Exports

  • Fix the tparam bounds of exported inherited classes #18647

Implicits

  • Prefer extensions over conversions for member selection #19717
  • Don't allow implicit conversions on prefixes of type selections #19934
  • Make sure typeParams returns a stable result even in the presence of completions #19974

Incremental Compilation

  • Fix undercompilation upon ctor change #19911
  • Load but not enter case accessors fields in Scala2Unpickler #19926

Initialization

  • Add supports for type cast and filtering type for field and method owner in global initialization checker #19612
  • Added a second trace for global init checker showing creation of mutable fields #19996
  • Suppressing repetitive warnings in the global initialization checker #19898

Inline

  • Specialized retained inline FunctionN apply methods #19801
  • Avoid crash after StopMacroExpansion #19883
  • Check deprecation of inline methods #19914
  • Inline transparent implicit parameters when typing Unapply trees #19646
  • Restore pre-3.3.2 behavior of inline implicit def #19877

Match Types

  • Cover patterns using reflect.TypeTest in isMatchTypeShaped #19923
  • Rework MatchType recursion in collectParts #19867

Nullability

  • Fix #19808: Don't force to compute the owner of a symbol when there is no denotation #19813

Parser

  • Add support for JEP-409 (sealed classes) + Add javacOpt directive #19080
  • Fix(#16458): regression in xml syntax parsing #19522
  • Fix parsing of conditional expressions in parentheses #19985

Presentation Compiler

  • Allow range selection on function parameter to select a parameter list #19777

Quotes

  • Disallow ill-staged references to local classes #19869
  • Add regression test for #19909 #19915
  • Detect non Expr[..] splice patterns #19944
  • Avoid spurious val binding in quote pattern #19948
  • Add regression test and imporve -Xprint-suspension message #19688

REPL

  • Repl truncation copes with null #17336
  • Catch stackoverflow errors in the highlighter #19836
  • Fix a REPL bad symbolic reference #19786

Reflection

  • Fix TypeTreeTypeTest to not match TypeBoundsTrees #19485
  • Improve message when tree cannot be shown as source #19906
  • Fix #19732: quotes.reflect.Ref incorrectly casting This to RefTree #19930
  • Add check for parents in Quotes (#19842) #19870

Reporting

  • Improve error reporting for missing members #19800
  • Avoid repetitions in name hints #19975
  • Improve error message when using experimental definitions #19782
  • Make -Xprompt work as desired under -Werror #19765
  • Fix #19402: emit proper error in absence of using in given definitions #19714
  • Bugfix: Choose correct signature is signatureHelp for overloaded methods #19707
  • Unify completion pos usage, fix presentation compiler crash in interpolation #19614

Scaladoc

  • Fix(#16610): warn ignored Scaladoc on multiple enum cases #19555

TASTy format

  • Add patch for undefined behavior with object $ #19705
  • Fix(#19806): wrong tasty of scala module class reference #19827
  • Used derived types to type arguments of dependent function type #19838

Tooling

  • Java TASTy: use new threadsafe writer implementation #19690
  • Remove -Yforce-inline-while-typing #19889
  • Cleanup unnecessary language flag #19865
  • Bugfix: Auto imports in worksheets in Scala 3 #19793
  • Refine behavior of -Yno-experimental #19741

Transform

  • Short-circuit isCheckable with classSymbol #19634
  • Avoid eta-reduction of (..., f: T => R, ...) => f.apply(..) into f #19966
  • Tweak parameter accessor scheme #19719

Typer

  • Update phrasing for NotClassType explain error message #19635
  • Fix java typer problems with inner class references and raw types #19747
  • Approximate MatchTypes with lub of case bodies, if non-recursive #19761
  • Revert broken changes with transparent inline #19922
  • Delay hard argument comparisons #20007
  • Fix #19607: Allow to instantiate wildcard type captures to TypeBounds. #19627
  • Fix #19907: Skip soft unions in widenSingle of widenInferred #19995
  • Fix untupling of functions in for comprehensions #19620

Contributors

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

According to git shortlog -sn --no-merges 3.4.1..3.42-RC1 these are:

    46	Nicolas Stucki
    33	Martin Odersky
    25	Dale Wijnand
    22	Hamza REMMAL
    18	Yichen Xu
    17	Jamie Thompson
    15	Szymon Rodziewicz
    11	EnzeXing
    11	i10416
     7	Paweł Marks
     6	Kacper Korban
     4	Dan13llljws
     4	Katarzyna Marek
     4	Matt Bovel
     4	Som Snytt
     4	noti0na1
     3	110416
     3	Eugene Flesselle
     3	Sébastien Doeraene
     3	dependabot[...
Read more

3.4.1

29 Mar 11:57
Compare
Choose a tag to compare

Highlights of the release

  • Add support for @deprecatedInheritance #19082

Other changes and fixes

Coverage

  • Correctly prettify names in coverage info #18542

Desugaring

  • Make apply proxies work with overloaded ctors #19464
  • Fix possible crash in Desugar #19567

Documentation

  • Update private[this] deprecation warning and documentation #19393

Erasure

  • Make eraseInfo work for classes with EmptyScopes #19550

Exports

  • Do not propagate @tailrec to exported methods #19509
  • Fix retained flags in exports #19636

GADTs

  • Only cache base types when gadt state is empty #19562
  • Add GADT symbols when typing typing-ahead lambda bodies#19644

Implicits

  • Run CheckStatic after UncacheGivenAliases #19318
  • Add tests to verify that crash is fixed elsewhere. Fixes #19328 #19329
  • Don't search for implicit conversions to NoType #19563
  • Instantiate argument type vars before implicit search #19096
  • Adjust owner in Interactive.contextOfPath causing crash in ImplicitSearch #19875

Java Interop

  • Classfile reader: handle JDK 9+ constant types in constant pool #19533

Linting

  • Make fatal warnings not fail compilation early & aggregate warns #19245

Macro Annotations

  • Check and enter missing symbols in MacroAnnotations only for definitions #19579

Match Types

  • Normalize MatchAlias in unrollTupleTypes #19565
  • Fix #19445: Remove too-strict test in match type matching. #19511

Opaque Types

  • Fix problems with cycle checks #19453

Parser

Pattern Matching

  • Fix false unreachable due to opaqueness #19368
  • Improve recursive decompose prefix fix #19375
  • Allow constraining a parameter to Nothing #19397
  • Add a test case, proving i15661 is fixed #19432

Presentation Compiler

  • Improvement: Support completions for implicit classes #19314
  • Chore: Backport changes from Metals #19410
  • Fix goto-def on exported forwarders #19494
  • Backport pc changes from metals #19617
  • Chore: Backport changes from Metals #19592
  • Use comma counting for all signature help types #19520
  • Make PC more resilient to crashes #19488
  • Make order of renames and missing imports deterministic #19468
  • Chore: backport changes from metals #19452
  • Improve signature help by more stable position calculation + better named arg support #19214
  • Instantiate Type Vars in completion labels of extension methods #18914

Quotes

  • Only evaluate transparent inline unapply once #19380
  • Update staging.Compiler.make documentation #19428
  • Error instead of StaleSymbol crash for certain cyclic macro dependencies #19549
  • Refine handling of StaleSymbol type errors #19605
  • Fix module symbol recovery from NoClassDefFoundError #19645
  • Fix HOAS pattern example and error message #19655
  • Set the correct type when copying reflect Inlined trees #19409

Reporting

  • Don't explain erroneous bounds #19338
  • Better error diagnostics for cyclic references #19408
  • Properly identify empty bounds in error message #19310

Scala-JS

  • Fix #19528: Actually remove Dynamic from interfaces of native JS classes. #19536
  • Consider static and non-static methods as non-double def #19400

Scaladoc

  • Scaladoc - add option for dynamic side menu #19337
  • Scaladoc: Fix "case case Foo" in enum's cases #19519
  • Fix(#19377): show inherited abstract members in dedicated section #19552
  • Jsoup: 1.14.3 → 1.17.2 #19564
  • Extend copyright into 2024 #19367

Tooling

  • Prioritize TASTy files over classfiles on classpath aggregation #19431

Transform

  • Fix purity check for val inside of object #19598
  • Drop special treatment of function types in overloading resolution #19654
  • Add checks for the consistency of the parents in TreeChecker #18935

Type Inference

  • More careful type variable instance improvements #19659

Typer

  • Reject wildcard types in using clauses #19459
  • Don't leave underspecified SAM types in the code #19461
  • Also compute base classes of wildcardTypes #19465
  • Fix(#15784): ident rule for pat match was too strict #19501
  • Heal occurrences of => T between ElimByName and Erasure #19558
  • Fix(#i18645): overload ext method body in braces didn't compile #19651
  • Fix #19202: Passing NotNullInfos to a mutable field of a Completer #19463
  • Fix Java record problems (#19578) and (#19386) #19583
  • Improve when deprecation warnings are emitted #19621
  • Space: Replace showType & make Space Showable #19370

Contributors

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

According to git shortlog -sn --no-merges 3.4.0..3.4.1 these are:

    53	Martin Odersky
    53	Nicolas Stucki
    22	Dale Wijnand
    11	Szymon Rodziewicz
    11	i10416
     8	Hamza REMMAL
     7	Paweł Marks
     7	noti0na1
     6	Yilin Wei
     5	Jędrzej Rochala
     3	Eugene Flesselle
     3	Seth Tisue
     2	Florian3k
     2	Hamza Remmal
     2	Jan Chyb
     2	Katarzyna Marek
     2	Sébastien Doeraene
     2	Tomasz Godzik
     2	dependabot[bot]
     1	Bersier
     1	Fabián Heredia Montiel
     1	Jakub Ciesluk
     1	Jakub Cieśluk
     1	Kacper Korban
     1	Kenji Yoshida
     1	Mehdi Alaoui
     1	Nikita Gazarov
     1	Oron Port
     1	Pascal Weisenburger
     1	Philippus Baalman
     1	Quentin Bernet
     1	Som Snytt
     1	Wojciech Mazur
     1	Yichen Xu
     1	aherlihy
     1	rochala

3.4.1-RC2

19 Mar 11:56
Compare
Choose a tag to compare
3.4.1-RC2 Pre-release
Pre-release

Backported fixes

  • Adjust owner in Interactive.contextOfPath causing crash in ImplicitSearch #19875
  • Add GADT symbols when typing typing-ahead lambda bodies #19644

Contributors

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

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

     4	Hamza REMMAL
     2	Dale Wijnand
     2	Paweł Marks
     1	Jędrzej Rochala

3.3.3

29 Feb 15:38
46683d0
Compare
Choose a tag to compare

HOTFIX 3.3.3

This is a hotfix release to a subtle bug in the TASTy reader managed to survive the Release Candidate (RC) process. The bug caused 3.3.2 to emit TASTy files incompatible with previous releases in the LTS line, namely 3.3.1 and 3.3.0.

Below you can find the original release notes for 3.3.2:

Highlights of the release

  • Improvements to the Coverage (detailed list below)
  • Add Stable Presentation Compiler #17528

Other changes and fixes

Backend

  • Make sure synthetic apply methods are generated in deterministic order #18210

Coverage

  • Only lift inner expressions when lifting repeated Typed arguments #18424
  • Fix: scoverage statement's line number should be 1-base #18932
  • Do not lift applications of context functions #18498
  • Don't lift the argument of a synchronized block in scoverage #16941
  • Fix the issue with coverage inside of a TypeApply #18420
  • Coverage: mark case bodies as branches; don't ignore branches with synthetic spans #18437

Documentation

  • Compiler plugin Scaladoc: document phase requirement #18394

Exports

  • Refine override exclude criterion for export forwarders #17590

Incremental Compilation

  • Fix overcompilation due to unstable context bound desugaring #18280

Inline

  • Don't generate a super accessor for an inline method call #17598

Linting

  • Wunused: Only use type treverser for checking refinements in refined type trees #17929

Parser

Pattern Matching

  • Properly refine type of inlined unapply pattern #18292

Presentation Compiler

  • Bugfix: suggest correct arg name completions for lambda expressions #18379
  • Improvement: print better bracket suffix in completion item label #18380
  • Fix presentation compiler autoimports, update presentation compiler dependencies #18264
  • Update scala3-presentation-compiler to 39e349e #18296
  • Update presentation compiler with changes from PR 5287 #18301
  • Update presentation compiler to a829a6a #18347
  • Bugfix: highlight enum cases correctly #18362

Quotes

  • Do not beta-reduce/eta-expand pattern splices with contextual function types #18198
  • XcheckMacro types of Block expression and Apply/TypeApply function #18242
  • Fix owner of splices in class statements #18359
  • Handle macro dependencies through class of this #18396
  • Add missing span in QuoteMatcher #18178
  • Fix stale symbol crashes in some path depended types in macro contexts #18077
  • Simplify avoidance of local types of Hole #17571

Reporting

  • Detail "not a constant type" message #17626
  • Suggest imports for the expected type of the underlying implicit not found error #17976
  • Fix: report correct location on a repeat modifier #17982
  • Warn when calling synchronized on AnyVal #18021
  • Fix compile error message in wildcard exports #18189
  • Improve parameter type inference error messaging #18190
  • Don't report warnings in migration when performing rewrites #15589
  • Fix crash reporter, units and phases #17754
  • Omit more prefixes in non-package module printing #17758
  • Fix pretty printer to handle using and erased modifier #17952
  • Add -Yprint-tasty compiler flag #17986
  • Add actionable item to PatternMatchExhaustivity diagnostic #18314

Scaladoc

  • Fix: -no-link-warnings does not work #17028
  • Fix: Validation for API link #17099
  • Scaladoc: type rendering fixes and improvements #17213
  • Feat: Add a custom icon #17241
  • Fix: Correction of the siteRoot path #17297
  • Fix: Correct the navigation to anchor #17910
  • Fix: Style for wiki syntax #18079
  • Fix NoSuchElementException in scaladoc #18184
  • Update jsoup dependency of Scaladoc to 7.2 #19584

SemanticDB

  • Check for primary constructor in namePresentInSource #18325
  • Add -semanticdb-text compiler option #18307

Typer

  • Fix pattern generation in "ordinal" mirror method #17570
  • Fix superType of SuperType #17574
  • Avoid crash in erasure when reference cannot be emitted #18056
  • Disallow overloading from breaking stable patterns #18327
  • Fix widen types before checking an implicit view exists #18719
  • Properly handle SAM types with wildcards #18201
  • Handle recursion in collectParts #18214
  • Allow eta-expansion of inline defs #18249
  • Stable names for lambda lifted methods #18281
  • Fix expandParam's use of argForParam/isArgPrefixOf. #19412

Contributors

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

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

    42	Paweł Marks
    38	Nicolas Stucki
    28	Chris Kipp
    15	Sébastien Doeraene
    13	Lucas Leblanc
    13	Martin Odersky
    12	Guillaume Martres
    11	Dale Wijnand
    10	Jamie Thompson
     8	ghostbuster91
     6	Florian3k
     5	Kacper Korban
     4	Jan Chyb
     4	Jędrzej Rochala
     4	Katarzyna Marek
     4	Quentin Bernet
     4	Seth Tisue
     3	Lucas
     3	Matt Bovel
     2	Julien Richard-Foy
     2	Wojciech Mazur
     1	Aleksey Troitskiy
     1	Arnout Engelen
     1	Bjorn Regnell
     1	Eugene Yokota
     1	Fabián Heredia Montiel
     1	Justin Reardon
     1	Kisaragi
     1	Martin Kučera
     1	Matthew Rooney
     1	Matthias Kurz
     1	Ondrej Lhotak
     1	Rikito Taniguchi
     1	Stefan Wachter
     1	Yuito Murase
     1	rochala

3.4.1-RC1

29 Feb 15:39
Compare
Choose a tag to compare
3.4.1-RC1 Pre-release
Pre-release

Highlights of the release

  • Add support for @deprecatedInheritance #19082

Other changes and fixes

Coverage

  • Correctly prettify names in coverage info #18542

Desugaring

  • Make apply proxies work with overloaded ctors #19464
  • Fix possible crash in Desugar #19567

Documentation

  • Update private[this] deprecation warning and documentation #19393

Erasure

  • Make eraseInfo work for classes with EmptyScopes #19550

Exports

  • Do not propagate @tailrec to exported methods #19509
  • Fix retained flags in exports #19636

GADTs

  • Only cache base types when gadt state is empty #19562

Implicits

  • Run CheckStatic after UncacheGivenAliases #19318
  • Add tests to verify that crash is fixed elsewhere. Fixes #19328 #19329
  • Don't search for implicit conversions to NoType #19563
  • Instantiate argument type vars before implicit search #19096

Java Interop

  • Classfile reader: handle JDK 9+ constant types in constant pool #19533

Linting

  • Make fatal warnings not fail compilation early & aggregate warns #19245

Macro Annotations

  • Check and enter missing symbols in MacroAnnotations only for definitions #19579

Match Types

  • Normalize MatchAlias in unrollTupleTypes #19565
  • Fix #19445: Remove too-strict test in match type matching. #19511

Opaque Types

  • Fix problems with cycle checks #19453

Parser

Pattern Matching

  • Fix false unreachable due to opaqueness #19368
  • Improve recursive decompose prefix fix #19375
  • Allow constraining a parameter to Nothing #19397
  • Add a test case, proving i15661 is fixed #19432

Presentation Compiler

  • Improvement: Support completions for implicit classes #19314
  • Chore: Backport changes from Metals #19410
  • Fix goto-def on exported forwarders #19494
  • Backport pc changes from metals #19617
  • Chore: Backport changes from Metals #19592
  • Use comma counting for all signature help types #19520
  • Make PC more resilient to crashes #19488
  • Make order of renames and missing imports deterministic #19468
  • Chore: backport changes from metals #19452
  • Improve signature help by more stable position calculation + better named arg support #19214
  • Instantiate Type Vars in completion labels of extension methods #18914

Quotes

  • Only evaluate transparent inline unapply once #19380
  • Update staging.Compiler.make documentation #19428
  • Error instead of StaleSymbol crash for certain cyclic macro dependencies #19549
  • Refine handling of StaleSymbol type errors #19605
  • Fix module symbol recovery from NoClassDefFoundError #19645
  • Fix HOAS pattern example and error message #19655
  • Set the correct type when copying reflect Inlined trees #19409

Reporting

  • Don't explain erroneous bounds #19338
  • Better error diagnostics for cyclic references #19408
  • Properly identify empty bounds in error message #19310

Scala-JS

  • Fix #19528: Actually remove Dynamic from interfaces of native JS classes. #19536
  • Consider static and non-static methods as non-double def #19400

Scaladoc

  • Scaladoc - add option for dynamic side menu #19337
  • Scaladoc: Fix "case case Foo" in enum's cases #19519
  • Fix(#19377): show inherited abstract members in dedicated section #19552
  • Jsoup: 1.14.3 → 1.17.2 #19564
  • Extend copyright into 2024 #19367

Tooling

  • Prioritize TASTy files over classfiles on classpath aggregation #19431

Transform

  • Fix purity check for val inside of object #19598
  • Drop special treatment of function types in overloading resolution #19654
  • Add checks for the consistency of the parents in TreeChecker #18935

Type Inference

  • More careful type variable instance improvements #19659

Typer

  • Reject wildcard types in using clauses #19459
  • Don't leave underspecified SAM types in the code #19461
  • Also compute base classes of wildcardTypes #19465
  • Fix(#15784): ident rule for pat match was too strict #19501
  • Heal occurrences of => T between ElimByName and Erasure #19558
  • Fix(#i18645): overload ext method body in braces didn't compile #19651
  • Fix #19202: Passing NotNullInfos to a mutable field of a Completer #19463
  • Fix Java record problems (#19578) and (#19386) #19583
  • Improve when deprecation warnings are emitted #19621
  • Space: Replace showType & make Space Showable #19370

Contributors

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

According to git shortlog -sn --no-merges 3.4.0..3.4.1-RC1 these are:

    53	Martin Odersky
    53	Nicolas Stucki
    20	Dale Wijnand
    11	Szymon Rodziewicz
    11	i10416
     7	noti0na1
     6	Yilin Wei
     4	Hamza REMMAL
     4	Jędrzej Rochala
     3	Eugene Flesselle
     3	Paweł Marks
     3	Seth Tisue
     2	Florian3k
     2	Hamza Remmal
     2	Jan Chyb
     2	Katarzyna Marek
     2	Sébastien Doeraene
     2	Tomasz Godzik
     2	dependabot[bot]
     1	Bersier
     1	Fabián Heredia Montiel
     1	Jakub Ciesluk
     1	Jakub Cieśluk
     1	Kacper Korban
     1	Kenji Yoshida
     1	Mehdi Alaoui
     1	Nikita Gazarov
     1	Oron Port
     1	Pascal Weisenburger
     1	Philippus Baalman
     1	Quentin Bernet
     1	Som Snytt
     1	Wojciech Mazur
     1	Yichen Xu
     1	aherlihy
     1	rochala

3.4.0

29 Feb 15:39
Compare
Choose a tag to compare

Highlights of the release

  • Make polymorphic functions more efficient and expressive #17548
  • SIP-56: Better foundations for match types #18262
  • Make SIP 54 (Multi-Source Extension Overloads) a standard feature #17441
  • Value parameter inference for polymorphic lambdas #18041
  • Add @publicInBinary annotation and -WunstableInlineAccessors linting flag #18402
  • Stabilize Quotes defn.PolyFunction #18480
  • Stabilize Quotes Flags.AbsOverride #18482
  • Add -experimental compiler flags #18571
  • Stabilize SIP-53 (quote pattern explicit type variable syntax) #18574
  • Add reflect TypeRepr.dealiasKeepOpaques #18583
  • Add attributes section to TASTy and use it for Stdlib TASTy #18599
  • Error when reading class file with unknown newer jdk version #18618
  • Add support for xsbti.compile.CompileProgress #18739
  • Improve type inference for functions like fold #18780
  • Improve error message for mismatched tasty versions, allow configuration of header unpickler #18828
  • In 3.4 make refutable patterns in a for comprehension an error #18842
  • Disallow use of PolyFunction in user code #18920
  • Store source file in TASTY attributes #18948
  • First step to pipelining support - enable reading Java symbols from TASTy #19074
  • Activate constrainResult fix in 3.4 #19253
  • Parallelise JVM backend - Scala 2 port #15392
  • Avoid generating given definitions that loop #19282

Deprecation warnings for old syntax

  • _ type wildcards #18813
  • private[this] #18819
  • var x = _ #18821
  • with as a type operator #18837
  • xs: _* varargs #18872
  • trailing _ to force eta expansion #18926
  • Make explicit arguments for context bounds an error from 3.5 #19316

Other changes and fixes

Backend

  • Count size of parameters for platform limit check #18464
  • Don't emit line number for synthetic unit value #18717
  • Avoid too eager transform of $outer for lhs & accessor rhs #18949
  • Make more anonymous functions static #19251
  • Fix deadlock in initialization of CoreBTypes using Lazy container #19298
  • Fix #18769: Allow HK type args in Java signatures. #18883
  • Loading symbols from TASTy files directly #17594
  • Use dedicated equals method for univerval equality of chars #18770

Erasure

  • Get generic signature of fields entered after erasure from their accessor #19207
  • Detect case where two alternatives are the same after widening ExprTypes #18787
  • Improve erased params logic #18433

Experimental: Capture Checking

  • Fix capture set variable installation in Setup #18885
  • Don't follow opaque aliases when transforming sym info for cc #18929
  • Reset comparersInUse to zero in ContextState.reset #18915
  • Special handling of experimental.captureChecking import #17427
  • Change handling of curried function types in capture checking #18131
  • Fix #18246: correctly compute capture sets in TypeComparer.glb #18254
  • New capture escape checking based on levels #18463
  • A more robust scheme for resetting denotations after Recheck #18534
  • A more flexible scheme for handling the universal capability #18699
  • Fix potential soundness hole when adding references to a mapped capture set #18758
  • Alternative scheme for cc encapsulation #18899
  • Make reach refinement shallow #19171

F-bounds

  • Don't check bounds of Java applications in Java units #18054

GADTs

  • Avoid embedding SelectionProtos in Conversions #17755
  • Freeze constraints while calculating GADT full bounds #18222

Implicits

  • Followup fix to transparent inline conversion #18130
  • Select local implicits over name-imported over wildcard imported #18203
  • Fix how implicit candidates are combined #18321
  • Improve error message about missing type of context function parameter #18788
  • Support implicit arguments before extractor method #18671
  • Tweak convertible implicits fix #18727
  • Turn given loop prevention on for -source future #19392
  • Fix algorithm to prevent recursive givens #19411
  • Handle default implicits to context parameters under -3.4-migration [#19512] (#19512)

Incremental Compilation

  • Make incremental compilation aware of synthesized mirrors #18310

Inference

  • Honour hard unions in lubbing and param replacing #18680

Infrastructure

  • Use -Yscala2-library-tasty to add Scala 2 lib TASTY to scalac (internal only) #18613
  • Rename stdlib-bootstrapped-tasty to scala2-library-tasty #18615
  • Fix #19286: Freeze rubygems-update at < 3.5.0. #19288

Initialization

  • Fix #17997: Handle intersection type as this type of super type #18069
  • Add test for issue #17997 affecting the global object initialization checker #18141
  • Fix i18624 and add test case for it #18859
  • Treat new Array(0) as immutable #19192
  • Fix #18407: Ignore Quote/Slice in init checker #18848
  • Check safe initialization of static objects #16970
  • Pattern match support in checking global objects #18127
  • Fix crash in global object initialization checker when select target has no source #18627
  • Fix warning underlining in global init checker #18668
  • Fix i18629 #18839
  • I18628 #18841
  • Make safe init checker skip global objects #18906
  • Handle local lazy vals properly #18998

Inline

  • Fix regression: inline match crash when rhs uses private inlined methods #18595
  • Add structural classes of dynamicApply before inlining #18766
  • Set missing expansion span for copied inlined node #18229
  • Fix callTrace of inlined methods #18738

Linting

  • Keep tree of type ascriptions of quote pattern splices #18412
  • Fix false positive in WUnused for renamed path-dependent imports #18468
  • Fix false positive in WUnused for renamed path-dependent imports (2) #18617
  • Fix w...
Read more

Scala 3.3.2

29 Feb 15:38
Compare
Choose a tag to compare

Notice

Summary: please skip this release and wait for 3.3.3

Unfortunately, a subtle bug in the TASTy reader managed to survive the Release Candidate (RC) process. The bug caused 3.3.2 to emit TASTy files incompatible with previous releases in the LTS line, namely 3.3.1 and 3.3.0. This means that, should a library author release a new version using 3.3.2, all users still based on older 3.3.x releases will encounter issues. While a simple workaround exists - users can bump their patch version in the LTS line, which is safe and recommended - we regard compatibility in the LTS as paramount. Therefore, we have decided to abandon the 3.3.2 release completely. New testing measures will be introduced to avoid such situations in the future and to guarantee that LTS line remains internally consistent in all cases.

Highlights of the release

  • Improvements to the Coverage (detailed list below)
  • Add Stable Presentation Compiler #17528

Other changes and fixes

Backend

  • Make sure synthetic apply methods are generated in deterministic order #18210

Coverage

  • Only lift inner expressions when lifting repeated Typed arguments #18424
  • Fix: scoverage statement's line number should be 1-base #18932
  • Do not lift applications of context functions #18498
  • Don't lift the argument of a synchronized block in scoverage #16941
  • Fix the issue with coverage inside of a TypeApply #18420
  • Coverage: mark case bodies as branches; don't ignore branches with synthetic spans #18437

Documentation

  • Compiler plugin Scaladoc: document phase requirement #18394

Exports

  • Refine override exclude criterion for export forwarders #17590

Incremental Compilation

  • Fix overcompilation due to unstable context bound desugaring #18280

Inline

  • Don't generate a super accessor for an inline method call #17598

Linting

  • Wunused: Only use type treverser for checking refinements in refined type trees #17929

Parser

Pattern Matching

  • Properly refine type of inlined unapply pattern #18292

Presentation Compiler

  • Bugfix: suggest correct arg name completions for lambda expressions #18379
  • Improvement: print better bracket suffix in completion item label #18380
  • Fix presentation compiler autoimports, update presentation compiler dependencies #18264
  • Update scala3-presentation-compiler to 39e349e #18296
  • Update presentation compiler with changes from PR 5287 #18301
  • Update presentation compiler to a829a6a #18347
  • Bugfix: highlight enum cases correctly #18362

Quotes

  • Do not beta-reduce/eta-expand pattern splices with contextual function types #18198
  • XcheckMacro types of Block expression and Apply/TypeApply function #18242
  • Fix owner of splices in class statements #18359
  • Handle macro dependencies through class of this #18396
  • Add missing span in QuoteMatcher #18178
  • Fix stale symbol crashes in some path depended types in macro contexts #18077
  • Simplify avoidance of local types of Hole #17571

Reporting

  • Detail "not a constant type" message #17626
  • Suggest imports for the expected type of the underlying implicit not found error #17976
  • Fix: report correct location on a repeat modifier #17982
  • Warn when calling synchronized on AnyVal #18021
  • Fix compile error message in wildcard exports #18189
  • Improve parameter type inference error messaging #18190
  • Don't report warnings in migration when performing rewrites #15589
  • Fix crash reporter, units and phases #17754
  • Omit more prefixes in non-package module printing #17758
  • Fix pretty printer to handle using and erased modifier #17952
  • Add -Yprint-tasty compiler flag #17986
  • Add actionable item to PatternMatchExhaustivity diagnostic #18314

Scaladoc

  • Fix: -no-link-warnings does not work #17028
  • Fix: Validation for API link #17099
  • Scaladoc: type rendering fixes and improvements #17213
  • Feat: Add a custom icon #17241
  • Fix: Correction of the siteRoot path #17297
  • Fix: Correct the navigation to anchor #17910
  • Fix: Style for wiki syntax #18079
  • Fix NoSuchElementException in scaladoc #18184
  • Update jsoup dependency of Scaladoc to 7.2 #19584

SemanticDB

  • Check for primary constructor in namePresentInSource #18325
  • Add -semanticdb-text compiler option #18307

Typer

  • Fix pattern generation in "ordinal" mirror method #17570
  • Fix superType of SuperType #17574
  • Avoid crash in erasure when reference cannot be emitted #18056
  • Disallow overloading from breaking stable patterns #18327
  • Fix widen types before checking an implicit view exists #18719
  • Properly handle SAM types with wildcards #18201
  • Handle recursion in collectParts #18214
  • Allow eta-expansion of inline defs #18249
  • Stable names for lambda lifted methods #18281
  • Fix expandParam's use of argForParam/isArgPrefixOf. #19412

Contributors

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

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

    42	Paweł Marks
    38	Nicolas Stucki
    28	Chris Kipp
    15	Sébastien Doeraene
    13	Lucas Leblanc
    13	Martin Odersky
    12	Guillaume Martres
    11	Dale Wijnand
    10	Jamie Thompson
     8	ghostbuster91
     6	Florian3k
     5	Kacper Korban
     4	Jan Chyb
     4	Jędrzej Rochala
     4	Katarzyna Marek
     4	Quentin Bernet
     4	Seth Tisue
     3	Lucas
     3	Matt Bovel
     2	Julien Richard-Foy
     2	Wojciech Mazur
     1	Aleksey Troitskiy
     1	Arnout Engelen
     1	Bjorn Regnell
     1	Eugene Yokota
     1	Fabián Heredia Montiel
     1	Justin Reardon
     1	Kisaragi
     1	Martin Kučera
     1	Matthew Rooney
     1	Matthias Kurz
     1	Ondrej Lhotak
     1	Rikito Taniguchi
     1	Stefan Wachter
     1	Yuito Murase
     1	rochala

3.4.0-RC4

05 Feb 11:53
Compare
Choose a tag to compare
3.4.0-RC4 Pre-release
Pre-release

Backported fixes

  • Update jsoup dependency of Scaladoc to 7.2 #19584

Contributors

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

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

     2	Paweł Marks
     1	Fabián Heredia Montiel

3.3.2-RC3

05 Feb 11:53
Compare
Choose a tag to compare
3.3.2-RC3 Pre-release
Pre-release

Backported fixes

  • Update jsoup dependency of Scaladoc to 7.2 #19584

Contributors

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

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

     2	Paweł Marks
     1	Fabián Heredia Montiel

3.3.2-RC2

05 Feb 11:53
Compare
Choose a tag to compare
3.3.2-RC2 Pre-release
Pre-release

Backported fixes

  • Update Scala Library to 2.13.12 #19454
  • Fix expandParam's use of argForParam/isArgPrefixOf. #19412

Contributors

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

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

     2	Paweł Marks
     1	Dale Wijnand
     1	Jan Chyb
     1	Nicolas Stucki
     1	Seth Tisue