Releases: scala/scala3
3.5.2-RC1
Highlights of the release
- Add the -Wall option that enables all warnings (Plan B) #20577
- Add origin filter to WConf, DeprecationWarning #21404
Other changes and fixes
Implicits
- Streamline
tryNormalize
withunderlyingMatchType
#20268
Infer
Infrastructure
- Add the project's icon for Intellij #21188
- Add the link to scala's security policy #21220
- Add _spec to dependabot #21227
- Bump redcarpet from 3.5.1 to 3.6.0 in /docs/_spec #21231
- Bump webrick from 1.7.0 to 1.8.1 in /docs/_spec #21232
- Bump VirtusLab/scala-cli-setup from 1.4.0 to 1.4.1 #21233
- Bump VirtusLab/scala-cli-setup from 1.4.1 to 1.4.3 #21371
- Bump VirtusLab/scala-cli-setup from 1.4.3 to 1.5.0 #21441
- Update ScAS #21283
- Bump hamzaremmal/sdkman-release-action from 4cb6c8cf99cfdf0ed5de586d6b38500558737e65 to 1f2d4209b4f5a38721d4ae20014ea8e1689d869e #21440
JVM Backend
- Update asm to patched 9.7 #20144
Overloading
- Report only non-overridden unimplemented members #21337
Parser
- SimplePattern errors should now be recovered as wildcard instead of unimplemented expr #21438
Pattern matching
- Fix a bundle of patmat issues #21000
Positions
- Fix trailing comma Ident's span #20445
Presentation Compiler
- fix: don't use color codes for pattern match code action #21120
- fix: don't add suffix if brackets already present #21259
- Backport from metals #21196
- change mock symbol search #21296
- fix: completions when parenthesis already provided #21299
- Weekly metals backport #21343
- Help implement Metals' infer expected type feature #21390
- feat: Implement completions for named tuple fields #21202
Runner
- Wrap the arguments passed to the scalac task between " #21322
REPL
- Allow JLine to fall back to a dumb terminal #21330
Semantic DB
- fix: semanticdb symbol creation when
targetName
set #20950
Tasty Format
- add child to parent in completion context #21214
Transform
Typeclass Derivation
- Revert "Compensate loss of transitivity" #21356
Typer
- Avoid forcing ctors & parents which caused cycles #17086
- Fix isomorphism tests of
AndOrType
s under non-emptyBinderPairs
#21017 - Fail when a poly function value has a different number of type params than the expected poly function #21248
- Fail early & more clearly on shaded-broken classfiles #21262
- A tweak to type improvement #21312
- Fix #20897: Make
Nothing β Nothing
, as per spec. #21241
Experimental Changes
Modularity
- fix: Only implement a deferred given in a class if its parent won't implement it #21206
Named Tuples
- Re-use isConcrete checking in match types for NamedTuple.From #20947
- fix: Dealias NamedTuple's name types when resolving NamedTuple's element types #21331
Safe Global Initialization
- Fix exception on sequence matching with drop #21281
- Fix uninitializing fields when evaluating a cached constructor call in global initialization checker #21403
Contributors
Thank you to all the contributors who made this release possible π
According to git shortlog -sn --no-merges 3.5.1..3.5.2-RC1
these are:
21 Dale Wijnand
12 Eugene Flesselle
11 Katarzyna Marek
6 dependabot[bot]
5 Wojciech Mazur
4 Hamza REMMAL
4 Kacper Korban
4 Martin Odersky
4 Som Snytt
4 Yichen Xu
4 kasiaMarek
3 Jamie Thompson
2 EnzeXing
2 Hamza Remmal
2 SΓ©bastien Doeraene
1 Jan Chyb
1 JΔdrzej Rochala
1 Kavin Satheeskumar
1 Martin Duhem
1 Matt Bovel
1 Raphael Jolly
1 noti0na1
1 philippus
3.5.1
Highlights of the release
- Add sources of synthetic classes to sources jar #20904
Other changes and fixes
Annotations
- Preventing compilation of a
@tailrec
method when it does not rewrite, but an inner method does #20143 - #20145 - bugfix when a return tailrec is called inside a val def. #20652
Backend
- Fix EnclosingMethod for lifted anonfun #20558
- Emit switch bytecode when matching unions of a switchable type #20411
- Fix deterministically adding additional interfaces #20593
- Emit generatedNonLocalClass in backend when callback is not enabled #21186
Documentation
- Avoid jpath in example #20775
- Chore: Fix doc link in clauseInterleaving docstring #20590
- Chore: fix doc link in namedTuples docstring #20770
Erasure
- Don't re-balance AndTypes arising from supertypes #20400
GADTs
- Harden GADT constraint handling to survive illegal F-bounds #20325
Inferencing
Infrastructure
- Update
addToBackportingProject.scala
#20461 - Simple scripts to run non-bootstrapped compiler after 'sbt buildQuick' #19894
- Bump from 3.4.0 to 3.5.0-RC1 for MiMA #20404
- Set reference version to 3.5.0-RC4 #21175
- Bring back windows performance improvements #20423
- Bump scalacenter/sbt-dependency-submission from 2 to 3 #20440
- Fix incorrect paths to sha256 check sum files in release workflow #20709
- Bump VirtusLab/scala-cli-setup from 1.3.2 to 1.4.0 #20906
Inline
- Mark genSJSIR as disabled (rather than non-runnable) when no
-scalajs
. #20815 - Map over refs of
ImportType
s inTypeMap
#20837
Initialization
- More principled filtering of abstract values in initialization check #20548
Match Types
- TryCompiletimeConstantFold in disjointnessBoundary #20168
Pattern Matching
Presentation Compiler
- Add pattern completion for unapply contexts #20274
- Bugfix: Exclude newer LSP4j, which is built on JDK 11 #20771
- Chore: Bump mtags to latest stable #20442
- Weekly metals backport #20542
- Port pc find references from metals #20544
Quotes
- Add regression test for issue 20309 #20387
REPL
- Only consider methods with 0 parameters in valueOf #20543
Reflection
- Fix erasure crash for Inlined rhs of a context function closure #20398
- Fix #20458: do not expose ClassInfo in quotes reflect widenTermRefByName #20468
Reporting
- Fix error message on setter with wrong type #20444
- Add a specific error message for local final defs #20557
- Explain unresolvable references better #20477
- Add error code to diagnostics about unused code #19780
- Better error diagnostics for illegal match cases #20905
Runner
Scaladoc
- Fix handling of right associative extension methods across scaladoc and printers #20467
Specification
- Add binary lits to syntax summaries #19551
Settings
- Enhance help message for language flag #20247
- Accept legacy language features #20454
- Set default source version to 3.5 #20435
Tooling
- Improve source positions emited for synthetic unit in if-conditions #20431
- Adjust the API name entry for nested classes #20279
- Fix declaring product of straight-to-jar compilation #20592
Transform
- Correct Java signature for value classes appearing in type arguments #20463
Typer
- Retry
constraint.replace
afterconstraint.updateEntry
#20399 - Add special handling for comparisons with Singleton types #20474
- Reinstantiate restriction to transparent inline methods #20371
- Add regression test for #20288 fixed in #20527 #20857
- Fix isEffectivelySingleton #20486
- Fall back to direct subtype comparison at the end in dropIfSuper and dropIfSub #20523
- Mark AppliedType cachedSuper valid Nowhere when using provisional args #20527
- Fix healAmbiguous to compareAlternatives with disambiguate = true #21372
Experimentqal Changes
Capture Checking
- Fix soundness hole of forgotten reach capabilities #20524
- Drop
@capability
annotations #20396 - Fix symbol reference retrivial for
scala.caps.Caps
#20493 - Refactor adaptBoxed #20525
- Fix error related to reaches when using scala2-library-cc-tasty #20528
Named tuples
- Make NamedTuple.Empty an alias to NamedTuple #20502
- Move NamedTuple methods to separate scope. re-export #20504
- WidenDealias before extracting namedTupleElementTypes #20505
- Improve type inference for literal named tuples #20497
- Fix issue #20267 with regression test #20506
- Only set
AppliedType#validSuper
afterAppliedType#cachedSuper
#20553 - Fix NamedTuple selection on an unstable prefix #20455
- Allow
apply
adaptation on Selectable with Fields #20489
Contributors
Thank you to all the contributors who made this release possible π
According to git shortlog -sn --no-merges 3.5.0..3.5.1
these are:
82 Martin Odersky
29 Wojciech Mazur
22 Hamza REMMAL
16 Jamie Thompson
15 Eugene Flesselle
14 Hamza Remmal
13 noti0na1
9 Katarzyna Marek
7 Fengyun Liu
7 Jan Chyb
6 Dale Wijnand
6 Guillaume Martres
5 Som Snytt
4 dependabot[bot]
3 Adrien Piquerez
3 Derek Wickern
3 Matt Bovel
3 OlegYch
2 Florian3k
2 Kacper Korban
2 Lucy Martin
2 PaweΕ Marks
2 Tomasz Godzik
1 Arnout Engelen
1 Eugene Yokota
1 JoΓ£o Ferreira
1 Kasper Kondzielski
1 Lucas Nouguier
1 Lukas Rytz
1 MikoΕaj Fornal
1 Nafer Sanabria
1 Natsu Kagami
1 Seth Tisue
1 SΓ©bastien Doeraene
3.3.4-RC3
Reverted changes
- Revert pattern matching improvements introducing regressions in 3.3.4 #21573
Contributors
Thank you to all the contributors who made this release possible π
According to git shortlog -sn --no-merges 3.3.4-RC2..3.3.4-RC3
these are:
4 Wojciech Mazur
3.3.4-RC2
Backported fixes
- Fix a bundle of patmat issues #21000
- Fixed false positive unreachable local object #21532
- Reimplement support for type aliases in SAM types #18317
- Allow SAM types to contain match alias refinements #20092
- Allow SAM types to contain multiple refinements #20172
Contributors
Thank you to all the contributors who made this release possible π
According to git shortlog -sn --no-merges 3.3.4-RC1..3.3.4-RC2
these are:
11 Dale Wijnand
7 Wojciech Mazur
1 Guillaume Martres
3.4.3
3.5.1-RC2
Backported fixes
- Update MiMa and Reference Version to 3.5.0 #21374
- Fix healAmbiguous to compareAlternatives with disambiguate = true #21372
- Bump scala-cli to 1.4.1 + drop old cli management #21234
- Bump scala-cli to 1.4.3 #21338
- Emit generatedNonLocalClass in backend when callback is not enabled #21186
Reverted changes
- Heal member-select on opaque reference #21340
- Approximate MatchTypes with lub of case bodies, if non-recursive #21267
Contributors
Thank you to all the contributors who made this release possible π
According to git shortlog -sn --no-merges 3.5.1-RC1..3.5.1-RC2
these are:
8 Wojciech Mazur
5 Hamza REMMAL
5 Martin Odersky
2 Eugene Flesselle
2 Jamie Thompson
1 Dale Wijnand
3.5.0
Highlights of the release
- Bundle scala-cli in scala command #20351
- 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
Note
Installation of a new Scala runner using Coursier requires it to be updated or reinstalled to Coursier 2.1.10 or above. Earlier versions did not support installing native packages, defaulted to the old runner JAR.
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
- Revert "Approximate MatchTypes with lub of case bodies, if non-recursive" in 3.5.0 #21266
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
- 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
- Priority warning fix alternative #20487
- Use final result type to check selector bound #20989
- Refine implicit priority change warnings #21045
- Backport "Fix healAmbiguous to compareAlternatives with disambiguate = true" to 3.5.0 #21344
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
- Bundle scala-cli in scala command #20351
- Adapt the workflow to release on SDKMAN! #20535
- Adapt the release workflow to SIP-46 #20565
- Release .zip instead of .tar.gz for windows in sdkman #20630
- SIP 46 - read classpath from file, remove lib directory in distribution #20631
.gz for windows in sdkman #20630 - Bump scala-cli to 1.4.0 [#20859](h...
3.5.0-RC7
Backported fixes
- Backport "Fix healAmbiguous to compareAlternatives with disambiguate = true" to 3.5.0 #21344
Contributors
Thank you to all the contributors who made this release possible π
According to git shortlog -sn --no-merges 3.5.0-RC6..3.5.0-RC7
these are:
5 Martin Odersky
4 Wojciech Mazur
2 Eugene Flesselle
3.5.0-RC6
Backported fixes
- Revert "Approximate MatchTypes with lub of case bodies, if non-recursive" in 3.5.0 #21266
Contributors
Thank you to all the contributors who made this release possible π
According to git shortlog -sn --no-merges 3.5.0-RC5..3.5.0-RC6
these are:
4 Wojciech Mazur
3.4.3-RC1
Highlights of the release
- Revert "Approximate MatchTypes with lub of case bodies, if non-recursive" in 3.4.3 #21268
Contributors
Thank you to all the contributors who made this release possible π
According to git shortlog -sn --no-merges 3.4.2..3.4.3
these are:
6 Wojciech Mazur