Skip to content

Releases: lampepfl/dotty

3.2.1-RC2

Compare
Choose a tag to compare
3.2.1-RC2 Pre-release
Pre-release

Backported fixes

  • Only look for synthetic applies under TypeApply with inferred arguments #15970
  • Improvements for implicit searches with top-level type variables #16001
  • Better types for class type parameters #15951
  • Avoid adding NoSymbol to gadt constraints in TypeOps.instantiateToSubType #15965

Contributors

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

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

     7  Martin Odersky
     3  Kacper Korban
     2  Paweł Marks

3.2.1-RC1

Compare
Choose a tag to compare
3.2.1-RC1 Pre-release
Pre-release

Highlights of the release

  • Add experimental capture checking #15877
  • Scaladoc: New UI design #15697

Other changes and fixes

Backend

  • Set ACC_FINAL access flag to final variable accessors #15707

Coverage

  • Avoid instrumentation of inline and erased definitions #15504

Erasure

  • Fix #15199: Exclude JavaDefined Modules from bridge generation. #15499

Extension Methods

  • Merge nested polytypes in more cases in resolveOverloaded #15636

GADTs

  • Fix GADT casting when typing if expressions #15646
  • Use GADT constraints in maximiseType #15544
  • Add the expected type to Poly's desugaring #15570
  • Allow refineUsingParent to infer GADT bounds #15706
  • Avoid leaking internal types in GadtConstraint.approximation #15558
  • Improve GADT usage tracing for MatchType reduction #15872
  • Add gadtAddBound to ExplainingTypeComparer tracing #15819

IDE Support

  • Recover from TypeErrors in isErroneous #15442
  • Add a guard against empty ident #15542

Initialization

  • Fix #15465: Use resolveThis for outerSelect resolution #15606
  • Fix #15459: Display uninitialized fields in promotion error #15488
  • Fix #15363: Improve error messages for leaking of this #15364
  • Make sure inner classes are checked first #15527
  • Handle super accessors in initialization checker #15703

Inline

  • Check is inline unapply has leading implicits #15583
  • Fix #15374: Make sure prefix of outer select has the correct class symbol #15592

Java Interoperability

  • Don't check import selectors for Java code #15617

JS Interoperability

  • Fix #15701: Implement js.dynamicImport for dynamic module loading. #15720
  • Implement support for js.new.target. #15734
  • Fix #14488: Scala.js: Add compiler support for scala.Enumeration. #15770

Match Types

  • Avoid null types when reducing match types #15748
  • Avoid references to unbound parameters in applied type patterns #15710

Nullability

  • Fix checking ctx to carry correct modes #15350

Pattern Matching

  • Teach provablyDisjoint to handle FromJavaObject #15769
  • Don't trust case class extractors with explicit type arguments #15669
  • Space: Fix how sealed abstract classes decompose #15553
  • Local classes are uncheckable (type tests) #15134
  • Fix ValDef span assignment in PatternMatcher #15783
  • Reject all explicitly written type references with bad bounds #15577

Pickling

  • Make simplify replace type parameters inside method types #15430

Quotes

  • Ignore types in macro runtime dependencies #15529

REPL

  • ReplDriver.run and :load take complete input #15811
  • REPL goes through a phase #15663
  • Avoid assertion failure for illegal trait inheritance #15631

Reporting

  • Underline assignment correctly in error message #15584
  • Better error message for "implicit search must be more specific" #15747
  • Provide better info on compiler crashes #15890

SemanticDB

  • Handle colons in file names when producing SemanticDB #15863

Standard Library

  • Fix throwReturn of NonLocalReturns to allow wider usage #15495

Tooling

  • Fix scala runner exit codes #15604
  • Command line parser respects outer escaped quote #15497
  • Added quotes to Scala home paths in scala and scalac scripts #15824
  • Retain partial type params typying information on error #15825

Transform

  • Implementation restriction: No partial functions with CFT results #15744
  • Fix treatment of parameter selections via this in constructors. #15737
  • Fix expansion and unexpansion of mixin qualified names #15712
  • Fix #15514 in Parser #15524
  • Check type arguments for bad bounds #15571

Typer

  • Fix swapKey #15894
  • Insert GADT casts for needy match types #15851
  • Add missing dealias in isContextFunctionRef #15742
  • Look for synthetic applies also under type applications #15572
  • Optimize isSameType for invariant applied types with the same structure #15556
  • Fix cycle detection for type aliases with wildcard arguments #15508
  • Handle recursions in isFullyDefined #15443
  • Do level checking on instantiation #15746
  • Use fullyDefinedType for mirror synthesis #15814
  • Instantiate more type variables to hard unions #15632
  • Simplify level fixing scheme #15936
  • Don't normalize in AppliedType#superType #15453
  • Try promotion while widening arguments #15467
  • Check import selectors at Typer #15477
  • Turn some calls to underlying into superType. #15455
  • Find more looping implicits #15481
  • Fix findFunctionType for OrTypes #15478
  • Fix looping implicits check #15655
  • Try to avoid static symbols if leaving them would make a leak #15548
  • Do not fold IsConst applied to dependent parameters #15759

Contributors

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

According to git shortlog -sn --no-merges 3.2.0..3.2.1-RC1 these are:

   204 Martin Odersky
    94 Filip Łukasik
    69 Fengyun Liu
    57 Filip Zybała
    31 Dale Wijnand
    14 Sébastien Doeraene
    10 Guillaume Raffin
     9 rochala
     8 Chris Kipp
     8 Paweł Marks
     8 Som Snytt
     7 Jędrzej Rochala
     7 Nicolas Stucki
     7 Yichen Xu
     6 Jamie Thompson
     6 Tom Grigg
     5 noti0na1
     2 Arman Bilge
     2 Kacper Korban
     2 Matt Bovel
     2 Ondrej Lhotak
     2 Quentin Bernet
     2 Tomasz Godzik
     1 Adrien Piquerez
     1 Florian3k
     1 Gagandeep Kalra
     1 Jentsch
     1 Kieren Davies
     1 Michał Pałka
     1 Naveen
     1 Oron Port
     1 Rubin Simons
     1 Seth Tisue
     1 Wojciech Mazur
     1 esteban marin
     1 naveen

3.2.0

Compare
Choose a tag to compare

Highlights of the release

  • Add runtime.TupleMirror to avoid anonymous classes for mirrors of tuples #15404
  • Fix TupleXXL.productPrefix #15411
  • Synthesize mirrors for small generic tuples #15250
  • Fix #14150: Constrain refinements to type parameters #15014
  • Gradual warning for deprecated nonlocal return #15303
  • Restrict mirrors of any union type #15279
  • Stabilize 3.2 APIs #15197
  • Add error reporting for mirror synthesis #15164
  • Fix #14432: Check if scala 2 case class is accessible #15008
  • Fix #12919: Summon anonymous mirror when companion is a case object #14986
  • Erase Int | Nothing signatures types into Int #14971
  • Allow exports in extension clauses #14497
  • Fix Scala Wart about implicit () class parameters #14840
  • Re-architecture quote pickling #12540
  • Add scala.annotation.MainAnnotation #14558
  • Add in initial support for code coverage #13880
  • Support tuple specialisation #15060
  • Remove support for -scala-output-version flag #15146
  • Make lazy vals and object native image friendly #14780
  • Allow return in tailrec position #14067

Other changes and fixes

Backend

  • Keep annotation order #15063
  • Update asm to 9.3 #14926
  • Fix #14773: Reuse the param slots for the tailrec local mutable vars. #14865
  • Better error messages in case of TooLarge* exceptions in GenBCode #14943

Coverage

  • Fix relativizing paths in coverage serializer #15240
  • Fix lifting of arguments with -coverage-out #15530
  • Avoid instrumentation of inline and erased definitions #15504
  • Keep fun and args together when instrumenting TypeApply for coverage #15739

Erasure

  • Handle & and | types when computing tuple arity #15330
  • Fix two problems related to match types as array elements #15625

Experimentals

  • Fix check experimental inline references #15147

Exports

  • Refine criterion when to skip identifiers in pattern constructors #15367
  • Simplify and harden duplicates checking in exports #14879
  • Fix isAbsType prediction in TreeUnpickler #14861

F-bounds

  • Recursion brake for joins in TypeComparer #14880

GADTs

  • Heal pattern-bound type by gathering constraints #15095
  • Consider GADT upper bounds when upcasting the scrutinee type #15351
  • Extract wildcard GADT constraints more directly #14832
  • Fix constraining against HKTypeLambda arguments #15688

IDE Support

  • Docs: Add a comment to pathTo mentioning that it might return errorTermTree #15420
  • Fix completions to properly contain public fields if they were shadowed #15236
  • Add proper signatureHelp for unapply methods #15203
  • Fix signatureHelp to show enclosing apply instead of closest one. #15119
  • Fix implicit conversion type resolve in completions #15061
  • Fix type alias completion, unify completion tests style #15047
  • Support code completion for refined types #15283
  • Fix SourceFile.column method. #15209

Initialization

  • Check method arguments with parametricity when static #14916
  • Add safe-init test to prevent adding cold elements to hot arrays #14895
  • Allow non-hot values in SeqLiterals #14794

Inline

  • Make private inline accessors final #15324
  • Fix inlining when outer select is needed from inline call prefix #15327
  • Support inline methods calling private inline methods on this #15075
  • Types with only an abstract inline method are not SAMs #14874
  • Don't issue unreachable error messages for inlined code #14871
  • Dealias arg type to detect opaque types #15074
  • Fix dependency status calculation for refined type aliases in method result types #15390
  • Fix computation of class nesting level in inliner #15671
  • Always expand inline accessor names #15619

Java Compatibility

  • Java generic signatures can't refer to type members #15093
  • Simplify and correctify calculation of the InnerClass attribute #15153
  • Fix #13523: Survive missing Java inner annotation classfiles #15094

Match Types

  • Implement provablyDisjoint for refined types and type aliases #15375
  • Cache skolem types #14909
  • Refine Matchtype checking #15423

Nullability

  • Speed up .nn #15418
  • Fix handling imports in TreeUnpickler #15137
  • Honor language imports when unpickling #14962
  • Remove special eq/ne in unsafeNulls #15186
  • Add eq/ne extension for AnyRef|Null to Scala3RunTime #14632

Parser

  • Fix parser error for type arguments with trailing comma #15395
  • Change fewerbraces to always use a colon, even before lambdas #15273
  • Deprecate 3.1-migration, err on import #14978
  • Treat all incomplete ifs as statements #14960
  • Clarify and test rules for newline suppression #14877
  • Tweak assertion in withMods #14857
  • Fix loop in parser #15421
  • Parse unary operators as regular identifiers when backquoted #15198
  • Harden erasure of TermRefs #15658

Pattern Matching

  • Preserve modifiers when desugaring for-comps #15403
  • Extract unapply types like typedUnApply #15254
  • Force Java enum children to be queried #15109
  • Enable stricter pattern binding warnings by default #14294
  • Irrefutable for generators don't require withFilter under -source:future #15593
  • Refutable extractor may be an Apply tree #15651

Pickling

  • Survive unpickling crashes when completing from Tasty #14884

Quotes

  • Transform RHS of captured assignment reference #15247
  • Properly look for inline methods #15072
  • Fix hash code of ExprImpl and TypeImpl #15281
  • Compute correct argument type in ExprMap #15269
  • Detect quoted pattern variables in alternatives #15073
  • Disallow old uses of quoted and spliced types #15012
  • Fix capturing conditions of HOAS quote patterns #14822

Reflection

  • Add missing cases in SourceCode printer #15032
  • Add reflect AppliedType constructor #14923
  • Add regression test #14924

Reporting

  • Case class must have at least one leading non-implicit parameter list #15382
  • Improve opaque type with no RHS error message #15285
  • Refine condition when to report errors in an inserted apply #15016
  • Accept soft modifiers separated by blank lines #14959
  • Fix warning with leaking this into Scala2 synthetic apply #15307
  • Refine error messages for early promotion #15263
  • Standardize -rewrite advertisements and suppress them in REPL #14955
  • Improve diagnostic for refutable extractors in pattern bindings #14988
  • Fix: correction to ClassTooLargeException message #14974

Scaladoc

  • Fix rendering ThisType #15440
  • Add extension suffixes and fqName to scaladoc searchbar #15048
  • Fix implicit members resolution #15021
  • Fix windows paths handling in legacy external link provider #15023
  • Warn about special characters in filenames according to the default Jekyll rules #14657
  • Scaladoc annotations rework #15361
  • Fix expanding docstrings in Scaladoc #15045

Scripting

  • Fix #13760: Running script compiled jar no longer restricted to java.base module #15103

SemanticDB

  • Do not register SymbolOccurrence for non-symbol endmarker #15143

Standard Library

  • Implement new main annotation #14841
  • Add compiletime.ops.string.CharAt #14431
  • Make EmptyTuple a case object #14972
  • Deprecate ToString type which should be deprecated at 3.2.0 #15645

Tasty Inspector

  • Handle this prefix in classes (in quote patterns) #14800
  • Fix parameter untupling #14816

Tooling

  • Add -Vprofile option #15406
  • Fix rewrite for type-ascribed refutable pattern binding #15314
  • Fix rewrites for refutable pattern bindings #14954

Transform

  • Also hoist lifted arguments in super calls #14919
  • Add deprecated overriding checks #15432
  • Don't cast to a value class as self type #14885
  • Disallow @targetName on top-level class, trait, and object #15068
  • Handle case where abstract overrides miss an implementation #14893
  • Treat RecTypes as potentially uncheckable #14894
  • Allow multiple wildcard vals #14906
  • Handle non-specialized functions in EtaReduce #15498

Typeclass Derivation

  • Support intersection types in mirrorCompanionRef #15192
  • Fix #15222: Recursively check for product ctor accessibility #15231
  • Fix 14025: Restrict curried type lambdas in mirror generation #15006
  • Make anonymous mirrors serializable #15391
  • Support Mirror synthesis for local and inner classes #15847

Typer

  • Fix #15405: Dealias Or type constituents when finding its dominator #15416
  • Handle unconstrained TypeVars when synthesizing ClassTags #15376
  • Allow for unqualified apply as context functions #15417
  • Prevent crash when reporting an error #15320
  • Show a match type trace for "not a class type" errors #15218
  • Don't constrain type variables in normalize #15223
  • Eta expand CFTs in super accessors if needed #15092
  • Reject structural applications of polymorphic methods #15090
  • Hande clashes between same-named exports #14967
  • Fix outer reference detection in class parents #14961
  • Avoid redundant type test for irrefutable @unchecked patterns #14898
  • Detect clashes involving renamed exports #14831
  • Guard against stackoverflows when instantiating HK-Lambdas #14851
  • Don't try conversions or extensions on Java companion objects #14881
  • Revert #14452 and make compile-time operations on stable arguments stable #15268
  • Better handling of type parameters in constructor pattern #15356
  • Handle AvoidMap recursions #15393
  • Add missing condition in checking synthetic apply #15362
  • Harden type assignment of lambda trees #14887
  • Disallow package names as types #14888
  • Fix constToLiteral #14853
  • Survive TypeErrors in isMatchedBy #15675
  • Don't ignore expected types of New #15679
  • Better infos for dependent class parameter references #15667

Contributors

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

According to git shortlog -sn --no-merges 3.1.3..3.2.0 these are:

   154 odersky
    62 Nicolas Stucki
    51 Filip Zybała
    42 Jamie Thompson
    39 Dale Wijnand
    30 Tom Grigg
    29 Paweł Marks
    29 rochala
    25 Guillaume Raffin
    13 Fengyun Liu
    13 Ondrej Lhotak
    11 Guillaume Martres
    11 Sébastien Doeraene
     7 Matt Bovel
     7 Som Snytt
     6 Szymon Rodziewicz
     5 Julien Richard-Foy
     5 Martin Odersky
     5 Wojciech Mazur
     4 Chris Kipp
     4 Olivier Blanvillain
     4 Xavientois
     3 Rikito Taniguchi
     3 Vadim Chelyshov
     2 Adrien Piquerez
     2 Albert Chen
     2 Anatolii Kmetiuk
     2 Arnout Engelen
     2 Jan Chyb
     2 Lan, Jian
     2 Phil
     2 Philippus
     2 Raphael Jolly
     2 Robert Stoll
     2 Tim Spence
     2 cgccuser
     2 gagandeepkalra
     2 manojo
     2 noti0na1
     2 Артём
     1 Aleksander Boruch-Gruszecki
     1 Dmitrii Naumenko
     1 Humberto Rodríguez A
     1 Johannes Rudolph
     1 Jędrzej Rochala
     1 Krzysztof Romanowski
     1 Magnolia.K
     1 Michał Pałka
     1 Ondřej Lhoták
     1 Stéphane Micheloud
     1 Timothée Loyck Andres
     1 Yichen Xu
     1 adampauls
     1 johannes karoff
     1 ouertani
     1 xuwei-k
     1 yoshinorin

3.2.0-RC4

Compare
Choose a tag to compare
3.2.0-RC4 Pre-release
Pre-release

Backported fixes

  • Refutable extractor may be an Apply tree #15651
  • Bump compiler-interface and capture the diagnosticCode #15565
  • Support Mirror synthesis for local and inner classes #15847

Contributors

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

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

     2  Chris Kipp
     2  Paweł Marks
     1  Jamie Thompson
     1  odersky

3.2.0-RC3

Compare
Choose a tag to compare
3.2.0-RC3 Pre-release
Pre-release

Backported fixes

  • Refutable extractor may be an Apply tree #15672
  • Fix coverage instrumentation of Java-defined and parameterless methods #15648
  • Keep fun and args together when instrumenting TypeApply for coverage #15739
  • Fix two problems related to match types as array elements #15625
  • Survive TypeErrors in isMatchedBy #15675
  • deprecate ToString type which should be deprecated at 3.2.0 #15645
  • Fix constraining against HKTypeLambda arguments #15688
  • Fix computation of class nesting level in inliner #15671
  • Don't ignore expected types of New #15679
  • Better infos for dependent class parameter references #15667
  • Always expand inline accessor names #15619
  • Harden erasure of TermRefs #15658

Contributors

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

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

    13  odersky
     5  Guillaume Raffin
     2  Paweł Marks
     2  Tom Grigg
     1  Dale Wijnand
     1  rochala

3.2.0-RC2

Compare
Choose a tag to compare
3.2.0-RC2 Pre-release
Pre-release

Backported fixes

  • Handle non-specialized functions in EtaReduce #15498
  • Refine Matchtype checking #15423
  • Fix lifting of arguments with -coverage-out #15530
  • Avoid instrumentation of inline and erased definitions #15504
  • Irrefutable for generators don't require withFilter under -source:future #15593

Contributors

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

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

     4  Guillaume Raffin
     4  odersky
     2  Paweł Marks
     1  Nicolas Stucki
     1  Sébastien Doeraene
     1  Tom Grigg

3.2.0-RC1

Compare
Choose a tag to compare
3.2.0-RC1 Pre-release
Pre-release

Highlights of the release

  • Add runtime.TupleMirror to avoid anonymous classes for mirrors of tuples #15404
  • Fix TupleXXL.productPrefix #15411
  • Synthesize mirrors for small generic tuples #15250
  • Fix #14150: Constrain refinements to type parameters #15014
  • Gradual warning for deprecated nonlocal return #15303
  • Restrict mirrors of any union type #15279
  • Stabilize 3.2 APIs #15197
  • Add error reporting for mirror synthesis #15164
  • Fix #14432: Check if scala 2 case class is accessible #15008
  • Fix #12919: Summon anonymous mirror when companion is a case object #14986
  • Erase Int | Nothing signatures types into Int #14971
  • Allow exports in extension clauses #14497
  • Fix Scala Wart about implicit () class parameters #14840
  • Re-architecture quote pickling #12540
  • Add scala.annotation.MainAnnotation #14558
  • Add in initial support for code coverage #13880
  • Support tuple specialisation #15060
  • Remove support for -scala-output-version flag #15146
  • Make lazy vals and object native image friendly #14780
  • Allow return in tailrec position #14067

Other changes and fixes

Backend

  • Keep annotation order #15063
  • Update asm to 9.3 #14926
  • Fix #14773: Reuse the param slots for the tailrec local mutable vars. #14865
  • Better error messages in case of TooLarge* exceptions in GenBCode #14943

Coverage

  • Fix relativizing paths in coverage serializer #15240

Erasure

  • Handle & and | types when computing tuple arity #15330

Experimentals

  • Fix check experimental inline references #15147

Exports

  • Refine criterion when to skip identifiers in pattern constructors #15367
  • Simplify and harden duplicates checking in exports #14879
  • Fix isAbsType prediction in TreeUnpickler #14861

F-bounds

  • Recursion brake for joins in TypeComparer #14880

GADTs

  • Heal pattern-bound type by gathering constraints #15095
  • Consider GADT upper bounds when upcasting the scrutinee type #15351
  • Extract wildcard GADT constraints more directly #14832

IDE Support

  • Docs: Add a comment to pathTo mentioning that it might return errorTermTree #15420
  • Fix completions to properly contain public fields if they were shadowed #15236
  • Add proper signatureHelp for unapply methods #15203
  • Fix signatureHelp to show enclosing apply instead of closest one. #15119
  • Fix implicit conversion type resolve in completions #15061
  • Fix type alias completion, unify completion tests style #15047
  • Support code completion for refined types #15283
  • Fix SourceFile.column method. #15209

Initialization

  • Check method arguments with parametricity when static #14916
  • Add safe-init test to prevent adding cold elements to hot arrays #14895
  • Allow non-hot values in SeqLiterals #14794

Inline

  • Make private inline accessors final #15324
  • Fix inlining when outer select is needed from inline call prefix #15327
  • Support inline methods calling private inline methods on this #15075
  • Types with only an abstract inline method are not SAMs #14874
  • Don't issue unreachable error messages for inlined code #14871
  • Dealias arg type to detect opaque types #15074
  • Fix dependency status calculation for refined type aliases in method result types #15390

Java Compatibility

  • Java generic signatures can't refer to type members #15093
  • Simplify and correctify calculation of the InnerClass attribute #15153
  • Fix #13523: Survive missing Java inner annotation classfiles #15094

Match Types

  • Implement provablyDisjoint for refined types and type aliases #15375
  • Cache skolem types #14909

Nullability

  • Speed up .nn #15418
  • Fix handling imports in TreeUnpickler #15137
  • Honor language imports when unpickling #14962
  • Remove special eq/ne in unsafeNulls #15186
  • Add eq/ne extension for AnyRef|Null to Scala3RunTime #14632

Parser

  • Fix parser error for type arguments with trailing comma #15395
  • Change fewerbraces to always use a colon, even before lambdas #15273
  • Deprecate 3.1-migration, err on import #14978
  • Treat all incomplete ifs as statements #14960
  • Clarify and test rules for newline suppression #14877
  • Tweak assertion in withMods #14857
  • Fix loop in parser #15421
  • Parse unary operators as regular identifiers when backquoted #15198

Pattern Matching

  • Preserve modifiers when desugaring for-comps #15403
  • Extract unapply types like typedUnApply #15254
  • Force Java enum children to be queried #15109
  • Enable stricter pattern binding warnings by default #14294

Pickling

  • Survive unpickling crashes when completing from Tasty #14884

Quotes

  • Transform RHS of captured assignment reference #15247
  • Properly look for inline methods #15072
  • Fix hash code of ExprImpl and TypeImpl #15281
  • Compute correct argument type in ExprMap #15269
  • Detect quoted pattern variables in alternatives #15073
  • Disallow old uses of quoted and spliced types #15012
  • Fix capturing conditions of HOAS quote patterns #14822

Reflection

  • Add missing cases in SourceCode printer #15032
  • Add reflect AppliedType constructor #14923
  • Add regression test #14924

Reporting

  • Case class must have at least one leading non-implicit parameter list #15382
  • Improve opaque type with no RHS error message #15285
  • Refine condition when to report errors in an inserted apply #15016
  • Accept soft modifiers separated by blank lines #14959
  • Fix warning with leaking this into Scala2 synthetic apply #15307
  • Refine error messages for early promotion #15263
  • Standardize -rewrite advertisements and suppress them in REPL #14955
  • Improve diagnostic for refutable extractors in pattern bindings #14988
  • Fix: correction to ClassTooLargeException message #14974

Scaladoc

  • Fix rendering ThisType #15440
  • Add extension suffixes and fqName to scaladoc searchbar #15048
  • Fix implicit members resolution #15021
  • Fix windows paths handling in legacy external link provider #15023
  • Warn about special characters in filenames according to the default Jekyll rules #14657
  • Scaladoc annotations rework #15361
  • Fix expanding docstrings in Scaladoc #15045

Scripting

  • Fix #13760: Running script compiled jar no longer restricted to java.base module #15103

SemanticDB

  • Do not register SymbolOccurrence for non-symbol endmarker #15143

Standard Library

  • Implement new main annotation #14841
  • Add compiletime.ops.string.CharAt #14431
  • Make EmptyTuple a case object #14972

Tasty Inspector

  • Handle this prefix in classes (in quote patterns) #14800
  • Fix parameter untupling #14816

Tooling

  • Add -Vprofile option #15406
  • Fix rewrite for type-ascribed refutable pattern binding #15314
  • Fix rewrites for refutable pattern bindings #14954

Transform

  • Also hoist lifted arguments in super calls #14919
  • Add deprecated overriding checks #15432
  • Don't cast to a value class as self type #14885
  • Disallow @targetName on top-level class, trait, and object #15068
  • Handle case where abstract overrides miss an implementation #14893
  • Treat RecTypes as potentially uncheckable #14894
  • Allow multiple wildcard vals #14906

Typeclass Derivation

  • Support intersection types in mirrorCompanionRef #15192
  • Fix #15222: Recursively check for product ctor accessibility #15231
  • Fix 14025: Restrict curried type lambdas in mirror generation #15006
  • Make anonymous mirrors serializable #15391

Typer

  • Fix #15405: Dealias Or type constituents when finding its dominator #15416
  • Handle unconstrained TypeVars when synthesizing ClassTags #15376
  • Allow for unqualified apply as context functions #15417
  • Prevent crash when reporting an error #15320
  • Show a match type trace for "not a class type" errors #15218
  • Don't constrain type variables in normalize #15223
  • Eta expand CFTs in super accessors if needed #15092
  • Reject structural applications of polymorphic methods #15090
  • Hande clashes between same-named exports #14967
  • Fix outer reference detection in class parents #14961
  • Avoid redundant type test for irrefutable @unchecked patterns #14898
  • Detect clashes involving renamed exports #14831
  • Guard against stackoverflows when instantiating HK-Lambdas #14851
  • Don't try conversions or extensions on Java companion objects #14881
  • Revert #14452 and make compile-time operations on stable arguments stable #15268
  • Better handling of type parameters in constructor pattern #15356
  • Handle AvoidMap recursions #15393
  • Add missing condition in checking synthetic apply #15362
  • Harden type assignment of lambda trees #14887
  • Disallow package names as types #14888
  • Fix constToLiteral #14853

Contributors

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

According to git shortlog -sn --no-merges 3.1.3..3.2.0-RC1 these are:

   136  odersky
    61  Nicolas Stucki
    51  Filip Zybała
    41  Jamie Thompson
    38  Dale Wijnand
    28  rochala
    27  Tom Grigg
    19  Paweł Marks
    16  Guillaume Raffin
    13  Ondrej Lhotak
    13  Fengyun Liu
    11  Guillaume Martres
    10  Sébastien Doeraene
     7  Matt Bovel
     6  Som Snytt
     6  Szymon Rodziewicz
     5  Wojciech Mazur
     5  Julien Richard-Foy
     5  Martin Odersky
     4  Xavientois
     4  Olivier Blanvillain
     3  Rikito Taniguchi
     3  Vadim Chelyshov
     2  Артём
     2  Albert Chen
     2  Anatolii Kmetiuk
     2  Arnout Engelen
     2  Chris Kipp
     2  Jan Chyb
     2  Lan, Jian
     2  Phil
     2  Philippus
     2  Raphael Jolly
     2  Robert Stoll
     2  Tim Spence
     2  cgccuser
     2  gagandeepkalra
     2  manojo
     2  noti0na1
     2  Adrien Piquerez
     1  Timothée Loyck Andres
     1  Jędrzej Rochala
     1  Johannes Rudolph
     1  Humberto Rodríguez A
     1  Yichen Xu
     1  adampauls
     1  ouertani
     1  Aleksander Boruch-Gruszecki
     1  johannes karoff
     1  xuwei-k
     1  yoshinorin
     1  Ondřej Lhoták
     1  Stéphane Micheloud
     1  Michał Pałka
     1  Magnolia.K
     1  Dmitrii Naumenko
     1  Krzysztof Romanowski

3.1.3

Compare
Choose a tag to compare

Highlights of the release

  • f-interpolator: Scala 2 parity and bugfixes #13367
  • Show inlined positions with source code on errors #14002
  • Add reflect ClassDef.apply and Symbol.newClass #14124
  • Add experimental TupledFunction #14414

Other changes and fixes

Backend

  • Filter out static forwarders for Java package private methods #14662
  • Emit all classes as public to avoid object deserialization issues #14686
  • Upgrade to ASM 9.2 #14711

Desugaring

  • Adapt function arguments to n-ary prototype #14651

Erasure

  • Don't optimize explicitly written isInstanceOf tests away. #14715

Exports

  • Fix use of exported prefix #14461
  • Export constructor proxies for parameterized classes #14681

GADT

  • Fix #14726: call exclusiveLower before addLess during unification #14727
  • Avoid unsound GADT constraints derived from subtyping relations between singletons and refined types #14728
  • Keep correct kind when preparing constraint in stripParams #14761

Initialization

  • Add special case to init checker to always allow certain methods #14352

Implicits

  • Avoid unnecessary under-constrained implicit searches #14353
  • Prevent implicit conversion chaining #14750
  • Fix hasKnownMembers #14762

Match types

  • Fix #13855: Chaining Match Types fails at value level #14354
  • Constrain pattern types when typing a match type case #14563
  • Fix bounds of match type cases #14645
  • More aggressive reduction of type selection (fixes parboiled2) #14987
  • Relax avoidance checks more for match type reduction #15036
  • Re-establish missing symbol from previous phase (in one specific case) #15295

Metaprogramming

  • Allow nested Quotes with a different owners #13652
  • Add typed versions of Mirror.ProductOf#fromProduct #14114
  • Fix #14393: foldOver in default TreeAccumulator can't process Typed nodes #14396
  • Fix invariant quote type holes #14425
  • Make singleton operations covariant #14452
  • Find inline calls inserted in synthetic members #14480
  • Don't generate Mirror.Sum for simple enum cases #14525
  • Collect all local class definitions #14528
  • Only make the staged parts of a quote inlineable #14604
  • Tolerate some faults when copying trees in InlineTreeMap #14674
  • Handle this prefix in objects (in quote patterns) #14732
  • Detect when position is not in known source #14801
  • Handle SummonFrom in reflect TreeAccumulator #14809
  • Handle situation where an inline info cannot be computed #14827

Opaque Types

  • Disallow overriding opaque type aliases #14665
  • Disallow private opaque type aliases #14666
  • Generate opaque proxies also for base classes #14668

Parser

  • Accept supplementary Unicode characters #13136
  • Don't compute indents when in a string #14441
  • Parse empty arguments in (invalid) Apply more often #14463
  • Expand span errorTermTree to include skipped span. #14492
  • Fix lookahead logic in Scanner #14562
  • Add private inteface methods parsing in JavaParser #14643
  • Reject postfix ops already in Parser #14677
  • Syntax error recovery #14695

Pattern matching

  • For generic tuples, call Tuples.apply instead of _1/_2/.. #14296
  • Preserve the intersection of disjoint numbers in match analysis #14550
  • Fix casting of generic tuple selection #14590
  • Ignore private/sealed abstract class/traits #14599
  • Drop special treatment for Scala-2 code in unapply #14766

Pickling

  • Disable type simplify in unpickler #14506
  • Check if package names will be encoded in desugar #14597
  • Fix picking default syntax for comments #14725
  • Fix lack of type avoidance in argument lifting #15229

Refchecks

  • Don't skip override tests when overridden is AbsOverride #14527
  • Extend "cannot override mutable variable" restriction to deferred var… #14724

Repl

  • Avoid stale import context during REPL parsing #14493
  • Fix #11202: Incorrect highlight for type constructor #14518
  • Make empty catch an incomplete. #14519
  • Add in feedback when resetting REPL state #14521
  • Fix #14535: End marker now has the same color as its definition in repl #14555
  • Add backticks when needed in completions #14594
  • Autocomplete repl commands #14627
  • Harden REPL in presence of values that fail to initialize #14702

Reporting

  • Change error message text from "fully-initialized" to "fully initialized" #14400
  • Improve -explain rendering #14357
  • Propagate unreported features when flushing a reporter #14503
  • Avoid using · character #14453
  • Fix explain rendering with Windows EOL #14456
  • Fix #14576: Ensure unreported warning summaries are also emitted via sbt-bridge #14602
  • Add context to safe-init warnings for inlined methods #14646
  • Show unique ids of pattern bound symbols #14716
  • Don't replace typevars by their f-bounds in error messages #14723
  • Error message improvement for illegal access extension methods #14730
  • Warn on misleading indentation in single-case catch #14738
  • Use correct ErrorMessageID for EmptyCatchOrFinallyBlock #14786
  • Correct highlight interpolation in explain message #14802
    Don't issue implicit errors if parameter has default value #14849

Typer

  • Fix approximating RefinedTypes (n>1) #14361
  • Allow override protected[C] in companion #14105
  • Hide apply generated for rotected case class constructor #14266
  • Infer parameters of eta applications with vararg parameters #14397
  • Keep softness when widening unions #14399
  • Fix #11008: Support generic tuples as a valid unapply result #14434
  • Fix TreeTypeMap to correctly substitute type parameters #14537
  • Handle ownership changes in InlineTyper #14568
  • Handle more corner cases in etaReduce #14628
  • Remove false unchecked warnings on refined types #14703
  • Fix hoisting local symbols #14714
  • Fix desugaring empty argument blocks in normArgs #14719
  • Improve overloading resolution if expected type is not FunProto #14733
  • Don't force LazyRefs when computing DepStatus #14774
  • Avoid NPE in simplify #15310
  • Eta expand export forwarders that have context function types #15217
  • Partially revert #14026 - Fixes 4 regressions #15343

Explicit nulls

  • Fix override containing type param #13975
  • Fix case null on non-nullable type in unsafe null #13976
  • Thread context through block in transforms correctly and efficiently #14523
  • Fix intercept TypeApply #14617
  • Fix #14682: fix overriding check in mergeSingleDenot #14755

IDE Support

  • Fix contextOfPath for Template #12783
  • Search all source trees for a given span #14436
  • Set zero span for synthetic enum import selector #14498
  • Set zero span for synthetic tuple type #14499
  • Set proper position for ValDefs generated from tuples #14513
  • Provide signature help for unapply methods #14611
  • Add completions for specific MatchType cases #14639
  • Support backticked imports in completions #14649
  • Change completions filtering to now include package module classes #14756

Scaladoc

  • Correctly handle context functions #14371
  • Fix rendering dependent function types #14327
  • Unescaped special characters in Quotes documentation #14377
  • Refactor static site loading and directory structure #14378
  • Make member filtering case-insensitive #14430
  • Add member position IDs to anchors in searchbar #14454
  • Repair links #14475
  • Follow renames in content contributors script #14478
  • Change default blog directory to blog #14485
  • Refactor generation configuration in sbt. Generate reference documentation using Scaladoc #14489
  • Fix issues with incorrect external links and special characters #14516
  • Grouping entries in searchbar. Add hints to searchbar #14539
  • Fix #14481: certain functions not being shown in searchbar #14546
  • Fix function classpathArgs() #14559
  • Add necessary parentheses in function types #14565
  • Fix groupping entries using markdown syntax #14577
  • Add table of content to static sites #14607
  • Allow to set a comment syntax based on path to source #14650
  • Tweak Language Reference documentation #14669
  • Don't add extra newlines when there aren't extra sections in doc markdown #14734
  • Fix regression with extension methods not being shown in searchbar #14779
  • Fix snippets hiding and buttons animation #14839

SemanticDB

  • Update generated semanticdb code with the latest scalapb #14591
  • Support MatchType#14608

Other

  • Kotlin interop: Find nested class if InnerClass entry is missing #14426
  • Add 3.2 language mode internally, treat it like 3.0, 3.1 #14690
  • Add -h to alternatives for -help #14792
  • Avoid overeager completion of Java annotations in classfile parser #15185
  • Implement scalac script in Scala #15212
  • Fix #15220: Windows scripts do not delegate to MainGenericRunner #15325

Contributors

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

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

  66  odersky
  48  Nicolas Stucki
  38  Filip Zybała
  36  Martin Odersky
  29  noti0na1
  27  Som Snytt
  24  Dale Wijnand
  19  Anatolii Kmetiuk
  19  Chris Kipp
  18  Paweł Marks
  17  Rikito Taniguchi
  13  Xavientois
  13  Tom Grigg
  12  Jan Chyb
  11  Guillaume Martres
    8  Jamie Thompson
    8  Matt Bovel
    6  Tomasz Godzik
    5  Michael Pilquist
    5  rochala
    4  adampauls
    4  Kacper Korban
    3  Sébastien Doeraene
    3  Andrzej Ressel
    3  Olivier Blanvillain
    3  Phil
    3  Seth Tisue
    2  Stéphane Micheloud
    2  Yichen Xu
    2  Arman Bilge
    2  Julien Richard-Foy
    2  Adrien Piquerez
    1  ireina7
    1  Alexander Ioffe
    1  Jentsch
    1  Jędrzej Rochala
    1  Michał Pałka
    1  Ondrej Lhotak
    1  Pascal Weisenburger
    1  Quentin Bernet
    1  Ruslan Shevchenko
    1  SrTobi
    1  Stephane MICHELOUD
    1  Vadim Chelyshov
    1  Vasil Vasilev
    1  bjornregnell
    1  ghostbuster91
    1  som-snytt
    1  Łukasz Wroński

3.1.3-RC5

Compare
Choose a tag to compare
3.1.3-RC5 Pre-release
Pre-release

Notable changes

  • Avoid NPE in simplify #15310
  • Eta expand export forwarders that have context function types #15217
  • Fix #15220: Windows scripts do not delegate to MainGenericRunner #15325
  • Re-establish missing symbol from previous phase (in one specific case) #15295
  • Partially revert #14026 - Fixes 4 regressions #15343

Contributors

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

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

  7  odersky
  2  Paweł Marks
  1  Stéphane Micheloud
  1  Tom Grigg

3.1.3-RC4

Compare
Choose a tag to compare
3.1.3-RC4 Pre-release
Pre-release

Notable changes

  • Fix lack of type avoidance in argument lifting #15229
  • Avoid overeager completion of Java annotations in classfile parser #15185
  • Implement scalac script in Scala #15212

Contributors

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

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

2  Paweł Marks
1  Guillaume Martres
1  Jamie Thompson
1  Tom Grigg