Releases: scala/scala3
3.3.4-RC1
Highlights of the release
- Error when reading class file with unknown newer jdk version #18618
- Add support for xsbti.compile.CompileProgress #18739
- Add support for
@deprecatedInheritance
#19082 - Bump JLine 3.19.0 -> 3.24.1 & sbt 1.9.7 -> 1.9.9 #19744
- Repl - method signatures in autocomplete #19917
- Upgrade Scala 2 to 2.13.14 (was 2.13.12) #20902
Notable changes
- Backport of #20463 fixes and aligns generic signatures of value classes to match their behaviour with Scala 2. Before this change generic signatures containing parameters or result types defined as value classes have been using the signatures of value class field underlying type. This change can lead to MiMa failures if generic signature checks are enabled.
Other changes and fixes
Annotations
- Attempt implicit search for old style
implicit
parameters in Application matchArgs #19737
Artifacts
Backend
- Parallelise JVM backend - Scala 2 port #15392
- Fix Closure span assignment in makeClosure #15841
- Count size of parameters for platform limit check #18464
- Opt: Get rid of the LiftTry phase; instead handle things in the back-end. #18619
- Update asm to 9.6 #18712
- 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(#17255): cannot find Scala companion module from Java #19773
- Change isStatic to isStaticOwner in hasLocalInstantiation #19803
- Emit switch bytecode when matching unions of a switchable type #20411
- Fix EnclosingMethod for lifted anonfun #20558
- Fix deterministically adding additional interfaces #20593
Coverage
- Correctly prettify names in coverage info #18542
- Port coverage filter options for packages and files #19727
Default parameters
- Lift all non trivial prefixes for default parameters #19739
- Fix default args lookup for given classes #20256
- Fix implicit search failure reporting #20261
Derivation
- Fix infinite loop in Mirror synthesis of unreducible match type #20133
Desugaring
- Make apply proxies work with overloaded ctors #19464
- Fix possible crash in Desugar #19567
- Add explanation to checkCaseClassInheritanceInvariant error msg #20141
Documentation
- [spec] remove implementation details from enum spec #18579
- [spec] some fixes to tuples #18582
- [spec] Cosmetic changes in the lexical syntax chapter #18608
- Spec: Update the list of tokens that can start/end statements. #18611
- Update syntax.md #18648
- Sync
main
withlanguage-reference-stable
#18718 - Completion assert diffs will now show completion source #18890
- Fix Export Doc #18952
- reference doc: fix incorrect syntax production #19017
- State all known limitations of right-associative extension methods #19210
- Update explicit-nulls.md #19327
- update old
issues.scala-lang.org
url #19606 - Update syntax.md #19670
- Clear the not-backported documentation changes queue #19699
- remove implementation from asInstanceOf #19753
- Port tailrec spec and adjustments to annotations section #19978
- Optimize the documentation JS files #20075
- Optimize main.js #20093
- Improve documentation of implicit conversions #20103
- Update Quotes.scala #20174
- Supplement structural givens doc #20327
- Fix three dead links in spec Types doc chapter #20337
- Avoid jpath in example #20775
Erasure
- Make eraseInfo work for classes with EmptyScopes #19550
- Don't re-balance AndTypes arising from supertypes #20400
Exports
- Do not propagate
@tailrec
to exported methods #19509 - Fix retained flags in exports #19636
- Add annotations in parameters for exports #20140
- Fix isAliasType #20195
GADTs
- Only cache base types when gadt state is empty #19562
Implicits
- Tweak convertible implicits fix #18727
- 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
- Prefer extensions over conversions for member selection #19717
- Adjust owner in Interactive.contextOfPath causing crash in ImplicitSearch #19875
- Improve ConstraintHandling of SkolemTypes #20175
- Better error diagnostics under -explain-cyclic #20251
- Bring back ambiguity filter when we report an implicit not found error #20368
- Avoid stacked thisCall contexts #20488
Incremental Compilation
Inferencing
Infrastructure
- Fix listing release versions for bisect script. #19356
- Make tests resilient to exceptions thrown while reporting exceptions #19566
- Move CI management from lampepfl/dotty-ci #19697
- Switch to Java 17 in the CI #19703
- [regression] Publish nightly releases and releases using Java 8 #19722
- Bump scalacenter/sbt-dependency-submission from 2 to 3 #20440
Inline
- Fix regression: inline match crash when rhs uses private inlined methods #18595
- Add structural classes of dynamicApply before inlining #18766
- Inline transparent implicit parameters when typing Unapply trees #19646
- Specialized retained inline FunctionN apply methods #19801
- Restore pre-3.3.2 behavior of
inline implicit def
#19877 - Avoid crash after StopMacroExpansion #19883
- Check deprecation of inline methods #19914
- Fix by-name parameter in beta-reduction #20096
- Type desugared
transparent inline def unapply
call in the correct mode [#20108](https://gith...
3.5.0-RC4
Backported fixes
- Refine implicit priority change warnings #21045
- Use pathing jars in cli commands #21121
- expand classpath of pathing jars in scala_legacy command #21160
- Fix symbol reference retrivial of
scala.caps.Caps
#20493
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.5.0-RC3..3.5.0-RC4
these are:
5 Martin Odersky
3 Wojciech Mazur
2 Hamza REMMAL
1 Jamie Thompson
3.5.0-RC3
Backported fixes
- Release .zip instead of .tar.gz for windows in sdkman #20630
- SIP 46 - read classpath from file, remove lib directory in distribution #20631
- Bump scala-cli to 1.4.0 #20859
- Priority warning fix alternative #20487
- Add --skip-cli-updates by default to the scala command #20900
- Upgrade Scala 2 to 2.13.14 (was 2.13.12) #20902
- fix issue 20901: etaCollapse context bound type #20910
- Use final result type to check selector bound #20989
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.5.0-RC2..3.5.0-RC3
these are:
6 Wojciech Mazur
5 Jamie Thompson
5 Martin Odersky
4 Hamza Remmal
1 Hamza REMMAL
1 Seth Tisue
1 Som Snytt
3.5.0-RC2
Backported fixes
- Bundle scala-cli in scala command #20351
- Avoid stacked thisCall contexts #20488
- Adapt the workflow to release on SDKMAN! #20535
- Adapt the release workflow to SIP-46 #20565
- Disable ClasspathTests.unglobClasspathVerifyTest #20551
- Set default source version to 3.5 #20441
- Bring back ambiguity filter when we report an implicit not found error #20368
- Treat 3.5-migration the same as 3.5 for a warning about implicit priority change #20436
- Avoid forcing whole package when using -experimental #20409
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.5.0-RC1..3.5.0-RC2
these are:
4 Hamza Remmal
4 Wojciech Mazur
3 Martin Odersky
1 Jamie Thompson
1 Guillaume Martres
3.5.0-RC1
Highlights of the release
- Bundle scala-cli in scala command (For RC1 requires JVM 17, further RCs will use native launchers)
- Introduce Best Effort compilation options #17582
- Add support for Pipelined builds #18880
- Add support for
var
in refinements #19982 - Implement SIP-42 - Support for binary integer literals #19405
Other changes and fixes
Backend
- Fix Closure span assignment in makeClosure #15841
Default parameters
Derivation
- Fix infinite loop in Mirror synthesis of unreducible match type #20133
Desugaring
- Add explanation to checkCaseClassInheritanceInvariant error msg #20141
Exports
Implicits
- Fix implicitNotFound message for type aliases #19343
- Normalize types before collecting parts determining implicit scope #20077
- Better error diagnostics under -explain-cyclic #20251
- Update unreducible match types error reporting #19954
- Improve ConstraintHandling of SkolemTypes #20175
Incremental Compilation
- Retain default parameters with
export
#20167
Inline
- Fix by-name parameter in beta-reduction #20096
- Add warning for anonymous inline classes (#16723) #20291
- Avoid conversion of
Unit
type into()
term #20295 - Type desugared
transparent inline def unapply
call in the correct mode #20108 - Regression: fix compilation performance on Windows #20193
- Fix inline match on blocks with multiple statements #20125
- Inline
unapply
s in the inlining phase #19382 - Fix outerSelect in Inliner #20313
Linting
- Fix #20146: attach the original name if there is an import selection for an indent #20163
- Add regression test for issue 18632 #20308
Match Types
- Make aliases of
MatchAlias
es normalTypeAlias
es #19871 - Fix #19746: Do not follow param term refs in
isConcrete
. #20015 - Do match type reduction atPhaseNoLater than ElimOpaque #20017
- Do not flag match types as
Deferred
and amend #20077 #20147 - Always use baseType when constraining patternTp with scrutineeTp #20032
- Use
MirrorSource.reduce
result forcompanionPath
#20207 - Regression: Fix match type extraction of a MatchAlias #20111
Polyfunctions
- Discard poly-functions when trying to resolve overloading #20181
Presentation Compiler
- Stabilise returned completions by improving deduplication + extra completions for constructors #19976
- Fix active param index for empty param lists #20142
- Delias type members in hover #20173
- Interactive: handle context bounds in extension construct workaround #20201
- Fix: prefer non-export definition locations #20252
- Don't show enum completions in new keyword context #20304
- Chore: Backport changes for presentation compiler #20345
- Add custom matchers for completions (fuzzy search for presentation compiler) #19850
Quotes
- Fix TermRef prefixes not having their type healed #20102
- Improve reporting in staging about the possible use of an incorrect class loader #20137
- Introduce MethodTypeKind to quotes reflection API #20249
- Add quote ASTs to TASTy #20165
Reflection
- Allow to beta reduce curried function applications in quotes reflect #18121
- Set the inlining phase in the Context used for checking macro trees #20087
- Add Symbol.isSuperAccessor to reflection API #13388
- Stabilize reflect
SymbolMethods.isSuperAccessor
#20198
Repl
- Fix validity period of derived SingleDenotations #19983
- Fix #18383: Never consider top-level
import
s as unused in the repl. #20310
Reporting
- Warn if extension receiver already has member #17543
- Deprecation of case class elements #17911
- Support src filter in -WConf (Closes #17635) #18783
- Add note about type mismatch in automatically inserted apply argument #20023
- Make error reporting resilient to exception thrown while reporting #20158
- Remove duplicate comma from Matchable selector warning #20159
- Generalize warnings for top-level calls to Any or AnyRef methods #20312
- Make CheckUnused not slow. #20321
Rewrites
- Patch indentation when removing braces (and other bug fixes in
-indent -rewrite
) #17522 - Extra check to avoid converting block expressions on the rhs of an in… #20043
Scaladoc
- Fix scaladoc crash on Windows - illegal path character #20311
- Scaladoc: improve refined function types rendering #20333
- Relax font-weight reset #20348
Scala JS
- Optimize main.js #20093
Settings
- Lift Scala Settings from experimental to stabilized #20199
Tooling
- Detect macro dependencies that are missing from the classloader #20139
- Write pipelined tasty in parallel. #20153
- ConsoleReporter sends INFO to stdout #20328
Transform
- Fix overloaded default methods test in RefChecks #20218
- Fix handling of AppliedType aliases in outerPrefix #20190
- Elide unit binding when beta-reducing #20085
Typer
- Reduce projections of type aliases with class type prefixes #19931
- Re-lub also hard union types in simplify #20027
- Fix #19789: Merge same TypeParamRef in orDominator #20090
- Allow SAM types to contain match alias refinements #20092
- Don't dealias when deciding which arguments to defer #20116
- Avoid the TypeVar.inst trap #20160
- Avoid crash when superType does not exist after erasure #20188
- Refine overloading and implicit disambiguation #20084
- Refactor constant folding of applications #20099
- Rollback constraints if
isSameType
failed second direction #20109 - Suppress "extension method will never be selected" for overrides #20164
- Allow SAM types to contain multiple refinements #20172
- Normalize when verifying if TypeTestCasts ...
3.4.2
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
Experimental: Capture Checking
- Disallow covariant
cap
s 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 inrefersToParamOf
#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
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 matchTypeBoundsTree
s #19485 - Improve message when tree cannot be shown as source #19906
- Fix #19732: quotes.reflect.Ref incorrectly casting
This
toRefTree
#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
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(..)
intof
#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.4.2
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
9 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[bot...
3.4.2-RC1
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
Experimental: Capture Checking
- Disallow covariant
cap
s 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 inrefersToParamOf
#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
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 matchTypeBoundsTree
s #19485 - Improve message when tree cannot be shown as source #19906
- Fix #19732: quotes.reflect.Ref incorrectly casting
This
toRefTree
#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
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(..)
intof
#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[...
3.4.1
Highlights of the release
- Add support for
@deprecatedInheritance
#19082
Other changes and fixes
Coverage
- Correctly prettify names in coverage info #18542
Desugaring
Documentation
- Update
private[this]
deprecation warning and documentation #19393
Erasure
- Make eraseInfo work for classes with EmptyScopes #19550
Exports
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
- Fix(#18265): crash on extension method without type nor RHS #18743
- Warn when @volatile is used on vals #19462
- Fix(#16459) xml parse regression #19531
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
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
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