-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d9ecb34
commit 795994f
Showing
1 changed file
with
244 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,244 @@ | ||
# Highlights of the release | ||
|
||
- Stabilise SIP-47 (Adding Clause Interleaving to method definitions) [#20861](https://github.com/scala/scala3/pull/20861) | ||
- Stabilise SIP-64 (New syntax of givens and context bounds) [#21668](https://github.com/scala/scala3/pull/21668) | ||
- Context Bounds for Polymorphic Functions [#21643](https://github.com/scala/scala3/pull/21643) | ||
- Switch mapping of context bounds to using clauses in 3.6 [#21257](https://github.com/scala/scala3/pull/21257) | ||
- Enable betterMatchTypeExtractors in >= 3.6 [#21198](https://github.com/scala/scala3/pull/21198) | ||
- Require named arguments for java defined annotations [#21329](https://github.com/scala/scala3/pull/21329) | ||
- Refine the bounds of the `Tuple.Filter` type lambda predicate .. [#21286](https://github.com/scala/scala3/pull/21286) | ||
- Add an infix shorthand for `Tuple.{Append, Concat}` [#21288](https://github.com/scala/scala3/pull/21288) | ||
- Add .msi artifacts to release assets [#21834](https://github.com/scala/scala3/pull/21834) | ||
- Implement SIP-62 as experimental - For comprehension improvements [#20522](https://github.com/scala/scala3/pull/20522) | ||
- Implement SIP-57 as experimental - add runtimeChecked method and annotation [#20987](https://github.com/scala/scala3/pull/20987) | ||
|
||
# Other changes and fixes | ||
|
||
## Annotations | ||
|
||
- Tighten java annot value parsing [#21650](https://github.com/scala/scala3/pull/21650) | ||
|
||
## Erasure | ||
|
||
- Fixes IllegalAccessError with Java package protected class [#21362](https://github.com/scala/scala3/pull/21362) | ||
|
||
## Experimental: Capture Checking | ||
|
||
- Fix setup of CapSet arguments. [#21309](https://github.com/scala/scala3/pull/21309) | ||
- Check all top-level covariant capture sets in checkNotUniversal [#21428](https://github.com/scala/scala3/pull/21428) | ||
- Charge also dcs of local reaches to capture set of enclosing method [#21443](https://github.com/scala/scala3/pull/21443) | ||
- No need to unbox if expected type is LhsProto [#21508](https://github.com/scala/scala3/pull/21508) | ||
- Treat more closure parameter types as inferred [#21583](https://github.com/scala/scala3/pull/21583) | ||
- Existential Capabilities [#20566](https://github.com/scala/scala3/pull/20566) | ||
- Fixes for cleanup retains scheme [#21350](https://github.com/scala/scala3/pull/21350) | ||
- Improve Contains handling [#21361](https://github.com/scala/scala3/pull/21361) | ||
- Expand Capability types T to T^ only if no explicit capture set is given [#21375](https://github.com/scala/scala3/pull/21375) | ||
- Tighten closure extractor in TreeInfo [#21621](https://github.com/scala/scala3/pull/21621) | ||
|
||
## Experimental: Global Initialization | ||
|
||
- Analyze object when selecting from package [#21511](https://github.com/scala/scala3/pull/21511) | ||
- Fix bug in init checker while compiling scodec-bits community project [#21574](https://github.com/scala/scala3/pull/21574) | ||
|
||
## Experimental: Named Tuples | ||
|
||
- Finalize named tuples [#21710](https://github.com/scala/scala3/pull/21710) | ||
- Move `NamedTuple.head` to `NamedTupleDecomposition` [#21308](https://github.com/scala/scala3/pull/21308) | ||
- Move `NonEmptyTuple` members into `Tuple` [#21291](https://github.com/scala/scala3/pull/21291) | ||
- Migration rewrites for infix arguments interpreted as named tuples [#21949](https://github.com/scala/scala3/pull/21949) | ||
- Make named tuples a standard feature [#21680](https://github.com/scala/scala3/pull/21680) | ||
- Make named tuples an experimental feature again [#22045](https://github.com/lampepfl/dotty/pull/22045) | ||
|
||
## Experimental: Strict Equality | ||
|
||
- Fix #21392: Adjust `canComparePredefined(Nothing, T)` in explicit nulls [#21504](https://github.com/scala/scala3/pull/21504) | ||
- Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) [#21389](https://github.com/scala/scala3/pull/21389) | ||
|
||
## Experimentals | ||
|
||
- [experimental feature] Support HOAS pattern with type variables for quote pattern matching [#18271](https://github.com/scala/scala3/pull/18271) | ||
|
||
## Exports | ||
|
||
- Re-use attachment in exportForwarders to handle ambiguous overloads [#21518](https://github.com/scala/scala3/pull/21518) | ||
- Allow export statements in AnyVal [#21653](https://github.com/scala/scala3/pull/21653) | ||
|
||
## Extension Methods | ||
|
||
- Make right assoc ext method fwd refs error [#21641](https://github.com/scala/scala3/pull/21641) | ||
|
||
## Inline | ||
|
||
- Fix: throw an error before assigning ErrorType when expanding constValue [#21364](https://github.com/scala/scala3/pull/21364) | ||
|
||
## Implicits | ||
|
||
- Fix prioritization of `given`s over `implicit`s [#21226](https://github.com/scala/scala3/pull/21226) | ||
|
||
## JVM Backend | ||
|
||
- Backend computes line number from source of position [#21763](https://github.com/scala/scala3/pull/21763) | ||
|
||
## Linting | ||
|
||
- CheckUnused checks type param annotations [#20549](https://github.com/scala/scala3/pull/20549) | ||
|
||
## Match Types | ||
|
||
- Fix #21295: Restrict `provablyDisjoint` with `Nothing`s in invariant type params. [#21891](https://github.com/scala/scala3/pull/21891) | ||
- Do not propagate `TypeError`s of ops from `TypeComparer#tryAlso` [#21070](https://github.com/scala/scala3/pull/21070) | ||
- Fix #21402: Always allow type member extraction for stable scrutinees in match types. [#21700](https://github.com/scala/scala3/pull/21700) | ||
- Add a 3.6-migration warning for MT lubbing [#21336](https://github.com/scala/scala3/pull/21336) | ||
- Always interpret underscores inside patterns as type bounds [#21718](https://github.com/scala/scala3/pull/21718) | ||
|
||
## Opaque Types | ||
|
||
- Capture the kse3 issue in test cases and close it [#21260](https://github.com/scala/scala3/pull/21260) | ||
|
||
## Parser | ||
|
||
- Guard against recursive lower bounds in constraints [#21587](https://github.com/scala/scala3/pull/21587) | ||
- Handle old given syntax where identifier and type are seperated by new line [#21957](https://github.com/scala/scala3/pull/21957) | ||
- Fix: Allow `as` as an infix type in non context bound types [#21849](https://github.com/scala/scala3/pull/21849) | ||
- Revised given syntax [#21208](https://github.com/scala/scala3/pull/21208) | ||
- Make context bounds for poly functions a standard feature [#22019](https://github.com/scala/scala3/pull/22019) | ||
|
||
## Pattern Matching | ||
|
||
- Optimise SpaceEngine.signature [#21791](https://github.com/scala/scala3/pull/21791) | ||
- Fix a bundle of patmat issues [#21000](https://github.com/scala/scala3/pull/21000) | ||
|
||
## Pickling | ||
|
||
- Some fixes for AnnotatedTypes mapping [#19957](https://github.com/scala/scala3/pull/19957) | ||
|
||
## Polyfunctions | ||
|
||
- Fix: Check if a PolyFunction TypeTree has no ByName parameters [#21671](https://github.com/scala/scala3/pull/21671) | ||
|
||
## Presentation Compiler | ||
|
||
- Add regression test for issue 18726 [#20318](https://github.com/scala/scala3/pull/20318) | ||
- Remove artificial `CURSOR` added to code in the completions [#20899](https://github.com/scala/scala3/pull/20899) | ||
- Fix autoimports with using directives [#21590](https://github.com/scala/scala3/pull/21590) | ||
|
||
## Quotes | ||
|
||
- Handle suspension due to macro call in arbitrary phases [#21651](https://github.com/scala/scala3/pull/21651) | ||
- Have a better error message when healing types [#21711](https://github.com/scala/scala3/pull/21711) | ||
- Bound TypeRepr by Matchable in Quotes [#21377](https://github.com/scala/scala3/pull/21377) | ||
- Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType) [#20494](https://github.com/scala/scala3/pull/20494) | ||
|
||
## Reflection | ||
|
||
- Add the possibility to create a typeSymbol in the Quotes API [#20347](https://github.com/scala/scala3/pull/20347) | ||
- Fix stale symbols connected to lazy vals in macros [#21559](https://github.com/scala/scala3/pull/21559) | ||
|
||
## Reporting | ||
|
||
- Add better error reporting for inlined non-immutable paths [#21639](https://github.com/scala/scala3/pull/21639) | ||
- Only replace *new* errors by warnings under `-migration` [#21289](https://github.com/scala/scala3/pull/21289) | ||
- Warn when named tuples resemble assignments [#21823](https://github.com/scala/scala3/pull/21823) | ||
|
||
## REPL | ||
|
||
- REPL: JLine 3.27.0 (was 3.25.1) [#21752](https://github.com/scala/scala3/pull/21752) | ||
- Ignore best effort settings in repl and update docs [#21540](https://github.com/scala/scala3/pull/21540) | ||
|
||
## Rewrites | ||
|
||
- Remove empty argument lists for classes with only context bounds [#21513](https://github.com/scala/scala3/pull/21513) | ||
- Fix rewrite logic for old `<function> _` syntax [#21715](https://github.com/scala/scala3/pull/21715) | ||
- Remove the `-rewrite` option for `typechecks` methods in Quotes [#21547](https://github.com/scala/scala3/pull/21547) | ||
- Add migration rewrite for non-named arguments in Java annotations [#21397](https://github.com/scala/scala3/pull/21397) | ||
|
||
## Runner | ||
|
||
- Update Scala CLI to 1.5.4 (was 1.5.1) & coursier to 2.1.18 (was 2.1.13) [#22021](https://github.com/lampepfl/dotty/pull/22021) | ||
- [Scala CLI 1.5.2 release notes](https://github.com/VirtusLab/scala-cli/releases/tag/v1.5.2) highlights: | ||
- `--source` is now deprecated and scheduled for removal in Scala CLI v1.6.x | ||
- Initial support for emitting Wasm with a command line option and a directive | ||
- [Scala CLI 1.5.3 release notes](https://github.com/VirtusLab/scala-cli/releases/tag/v1.5.3) | ||
- [Scala CLI 1.5.4 release notes](https://github.com/VirtusLab/scala-cli/releases/tag/v1.5.4) | ||
|
||
## Scaladoc | ||
|
||
- Only trim one newline when preprocessing the content of a markdown code snippet [#21519](https://github.com/scala/scala3/pull/21519) | ||
- Filter opaque modifier from object documentation [#21640](https://github.com/scala/scala3/pull/21640) | ||
- Bump Inkuire version to fix it for the new Scala versions [#21611](https://github.com/scala/scala3/pull/21611) | ||
|
||
## Standard Library | ||
|
||
- Scala 2.13.15 (was .14) [#21648](https://github.com/scala/scala3/pull/21648) | ||
- Define binary symbolic compiletime ops as `infix` [#21683](https://github.com/scala/scala3/pull/21683) | ||
|
||
## Transform | ||
|
||
- Fix treatment of separately compiled @native methods in FirstTransform [#21593](https://github.com/scala/scala3/pull/21593) | ||
- Three fixes to SAM type handling [#21596](https://github.com/scala/scala3/pull/21596) | ||
- Always rewrite empty List() to Nil [#21689](https://github.com/scala/scala3/pull/21689) | ||
- Add support for clauseInterleaving in JVM generic signatures [#21709](https://github.com/scala/scala3/pull/21709) | ||
|
||
## Typeclass Derivation | ||
|
||
- Nicer error message in case a `derived` method has an explicit term param [#21332](https://github.com/scala/scala3/pull/21332) | ||
|
||
## Typer | ||
|
||
- Calm param autotupling for overloads [#21552](https://github.com/scala/scala3/pull/21552) | ||
- Survive inaccessible types when computing implicit scope [#21589](https://github.com/scala/scala3/pull/21589) | ||
- Avoid cyclic errors forcing default arg types [#21597](https://github.com/scala/scala3/pull/21597) | ||
- Allow autotupling if fn's param is a type param [#21741](https://github.com/scala/scala3/pull/21741) | ||
- Fix extending protected nested java classes [#21857](https://github.com/scala/scala3/pull/21857) | ||
- Fix incorrect caching with dependent method parameters [#21699](https://github.com/scala/scala3/pull/21699) | ||
|
||
# Contributors | ||
|
||
Thank you to all the contributors who made this release possible 🎉 | ||
|
||
According to `git shortlog -sn --no-merges 3.5.2..3.6.2` these are: | ||
|
||
``` | ||
128 Martin Odersky | ||
53 Wojciech Mazur | ||
44 Dale Wijnand | ||
35 Hamza REMMAL | ||
33 Kacper Korban | ||
31 Eugene Flesselle | ||
22 Hamza Remmal | ||
11 Katarzyna Marek | ||
10 Matt Bovel | ||
9 noti0na1 | ||
9 rochala | ||
8 Jamie Thompson | ||
8 Jan Chyb | ||
7 Adrien Piquerez | ||
7 Som Snytt | ||
7 Sébastien Doeraene | ||
7 dependabot[bot] | ||
6 Yichen Xu | ||
5 EnzeXing | ||
5 Guillaume Martres | ||
4 Fengyun Liu | ||
4 kasiaMarek | ||
3 Martin Duhem | ||
3 Oliver Bracevac | ||
3 Piotr Chabelski | ||
2 Aleksander Rainko | ||
2 David Hua | ||
2 Florian3k | ||
2 HarrisL2 | ||
2 Joel Wilsson | ||
2 Jędrzej Rochala | ||
2 Kenji Yoshida | ||
1 Eugene Yokota | ||
1 Kavin Satheeskumar | ||
1 Lorenzo Gabriele | ||
1 Michel Charpentier | ||
1 Ondrej Lhotak | ||
1 Raphael Jolly | ||
1 Tomasz Godzik | ||
1 Yuito Murase | ||
1 crunchyfrog | ||
1 philippus | ||
``` |