Skip to content

Commit 795994f

Browse files
committed
Add changelog for 3.6.2
1 parent d9ecb34 commit 795994f

File tree

1 file changed

+244
-0
lines changed

1 file changed

+244
-0
lines changed

changelogs/3.6.2.md

+244
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
# Highlights of the release
2+
3+
- Stabilise SIP-47 (Adding Clause Interleaving to method definitions) [#20861](https://github.com/scala/scala3/pull/20861)
4+
- Stabilise SIP-64 (New syntax of givens and context bounds) [#21668](https://github.com/scala/scala3/pull/21668)
5+
- Context Bounds for Polymorphic Functions [#21643](https://github.com/scala/scala3/pull/21643)
6+
- Switch mapping of context bounds to using clauses in 3.6 [#21257](https://github.com/scala/scala3/pull/21257)
7+
- Enable betterMatchTypeExtractors in >= 3.6 [#21198](https://github.com/scala/scala3/pull/21198)
8+
- Require named arguments for java defined annotations [#21329](https://github.com/scala/scala3/pull/21329)
9+
- Refine the bounds of the `Tuple.Filter` type lambda predicate .. [#21286](https://github.com/scala/scala3/pull/21286)
10+
- Add an infix shorthand for `Tuple.{Append, Concat}` [#21288](https://github.com/scala/scala3/pull/21288)
11+
- Add .msi artifacts to release assets [#21834](https://github.com/scala/scala3/pull/21834)
12+
- Implement SIP-62 as experimental - For comprehension improvements [#20522](https://github.com/scala/scala3/pull/20522)
13+
- Implement SIP-57 as experimental - add runtimeChecked method and annotation [#20987](https://github.com/scala/scala3/pull/20987)
14+
15+
# Other changes and fixes
16+
17+
## Annotations
18+
19+
- Tighten java annot value parsing [#21650](https://github.com/scala/scala3/pull/21650)
20+
21+
## Erasure
22+
23+
- Fixes IllegalAccessError with Java package protected class [#21362](https://github.com/scala/scala3/pull/21362)
24+
25+
## Experimental: Capture Checking
26+
27+
- Fix setup of CapSet arguments. [#21309](https://github.com/scala/scala3/pull/21309)
28+
- Check all top-level covariant capture sets in checkNotUniversal [#21428](https://github.com/scala/scala3/pull/21428)
29+
- Charge also dcs of local reaches to capture set of enclosing method [#21443](https://github.com/scala/scala3/pull/21443)
30+
- No need to unbox if expected type is LhsProto [#21508](https://github.com/scala/scala3/pull/21508)
31+
- Treat more closure parameter types as inferred [#21583](https://github.com/scala/scala3/pull/21583)
32+
- Existential Capabilities [#20566](https://github.com/scala/scala3/pull/20566)
33+
- Fixes for cleanup retains scheme [#21350](https://github.com/scala/scala3/pull/21350)
34+
- Improve Contains handling [#21361](https://github.com/scala/scala3/pull/21361)
35+
- Expand Capability types T to T^ only if no explicit capture set is given [#21375](https://github.com/scala/scala3/pull/21375)
36+
- Tighten closure extractor in TreeInfo [#21621](https://github.com/scala/scala3/pull/21621)
37+
38+
## Experimental: Global Initialization
39+
40+
- Analyze object when selecting from package [#21511](https://github.com/scala/scala3/pull/21511)
41+
- Fix bug in init checker while compiling scodec-bits community project [#21574](https://github.com/scala/scala3/pull/21574)
42+
43+
## Experimental: Named Tuples
44+
45+
- Finalize named tuples [#21710](https://github.com/scala/scala3/pull/21710)
46+
- Move `NamedTuple.head` to `NamedTupleDecomposition` [#21308](https://github.com/scala/scala3/pull/21308)
47+
- Move `NonEmptyTuple` members into `Tuple` [#21291](https://github.com/scala/scala3/pull/21291)
48+
- Migration rewrites for infix arguments interpreted as named tuples [#21949](https://github.com/scala/scala3/pull/21949)
49+
- Make named tuples a standard feature [#21680](https://github.com/scala/scala3/pull/21680)
50+
- Make named tuples an experimental feature again [#22045](https://github.com/lampepfl/dotty/pull/22045)
51+
52+
## Experimental: Strict Equality
53+
54+
- Fix #21392: Adjust `canComparePredefined(Nothing, T)` in explicit nulls [#21504](https://github.com/scala/scala3/pull/21504)
55+
- Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) [#21389](https://github.com/scala/scala3/pull/21389)
56+
57+
## Experimentals
58+
59+
- [experimental feature] Support HOAS pattern with type variables for quote pattern matching [#18271](https://github.com/scala/scala3/pull/18271)
60+
61+
## Exports
62+
63+
- Re-use attachment in exportForwarders to handle ambiguous overloads [#21518](https://github.com/scala/scala3/pull/21518)
64+
- Allow export statements in AnyVal [#21653](https://github.com/scala/scala3/pull/21653)
65+
66+
## Extension Methods
67+
68+
- Make right assoc ext method fwd refs error [#21641](https://github.com/scala/scala3/pull/21641)
69+
70+
## Inline
71+
72+
- Fix: throw an error before assigning ErrorType when expanding constValue [#21364](https://github.com/scala/scala3/pull/21364)
73+
74+
## Implicits
75+
76+
- Fix prioritization of `given`s over `implicit`s [#21226](https://github.com/scala/scala3/pull/21226)
77+
78+
## JVM Backend
79+
80+
- Backend computes line number from source of position [#21763](https://github.com/scala/scala3/pull/21763)
81+
82+
## Linting
83+
84+
- CheckUnused checks type param annotations [#20549](https://github.com/scala/scala3/pull/20549)
85+
86+
## Match Types
87+
88+
- Fix #21295: Restrict `provablyDisjoint` with `Nothing`s in invariant type params. [#21891](https://github.com/scala/scala3/pull/21891)
89+
- Do not propagate `TypeError`s of ops from `TypeComparer#tryAlso` [#21070](https://github.com/scala/scala3/pull/21070)
90+
- Fix #21402: Always allow type member extraction for stable scrutinees in match types. [#21700](https://github.com/scala/scala3/pull/21700)
91+
- Add a 3.6-migration warning for MT lubbing [#21336](https://github.com/scala/scala3/pull/21336)
92+
- Always interpret underscores inside patterns as type bounds [#21718](https://github.com/scala/scala3/pull/21718)
93+
94+
## Opaque Types
95+
96+
- Capture the kse3 issue in test cases and close it [#21260](https://github.com/scala/scala3/pull/21260)
97+
98+
## Parser
99+
100+
- Guard against recursive lower bounds in constraints [#21587](https://github.com/scala/scala3/pull/21587)
101+
- Handle old given syntax where identifier and type are seperated by new line [#21957](https://github.com/scala/scala3/pull/21957)
102+
- Fix: Allow `as` as an infix type in non context bound types [#21849](https://github.com/scala/scala3/pull/21849)
103+
- Revised given syntax [#21208](https://github.com/scala/scala3/pull/21208)
104+
- Make context bounds for poly functions a standard feature [#22019](https://github.com/scala/scala3/pull/22019)
105+
106+
## Pattern Matching
107+
108+
- Optimise SpaceEngine.signature [#21791](https://github.com/scala/scala3/pull/21791)
109+
- Fix a bundle of patmat issues [#21000](https://github.com/scala/scala3/pull/21000)
110+
111+
## Pickling
112+
113+
- Some fixes for AnnotatedTypes mapping [#19957](https://github.com/scala/scala3/pull/19957)
114+
115+
## Polyfunctions
116+
117+
- Fix: Check if a PolyFunction TypeTree has no ByName parameters [#21671](https://github.com/scala/scala3/pull/21671)
118+
119+
## Presentation Compiler
120+
121+
- Add regression test for issue 18726 [#20318](https://github.com/scala/scala3/pull/20318)
122+
- Remove artificial `CURSOR` added to code in the completions [#20899](https://github.com/scala/scala3/pull/20899)
123+
- Fix autoimports with using directives [#21590](https://github.com/scala/scala3/pull/21590)
124+
125+
## Quotes
126+
127+
- Handle suspension due to macro call in arbitrary phases [#21651](https://github.com/scala/scala3/pull/21651)
128+
- Have a better error message when healing types [#21711](https://github.com/scala/scala3/pull/21711)
129+
- Bound TypeRepr by Matchable in Quotes [#21377](https://github.com/scala/scala3/pull/21377)
130+
- Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType) [#20494](https://github.com/scala/scala3/pull/20494)
131+
132+
## Reflection
133+
134+
- Add the possibility to create a typeSymbol in the Quotes API [#20347](https://github.com/scala/scala3/pull/20347)
135+
- Fix stale symbols connected to lazy vals in macros [#21559](https://github.com/scala/scala3/pull/21559)
136+
137+
## Reporting
138+
139+
- Add better error reporting for inlined non-immutable paths [#21639](https://github.com/scala/scala3/pull/21639)
140+
- Only replace *new* errors by warnings under `-migration` [#21289](https://github.com/scala/scala3/pull/21289)
141+
- Warn when named tuples resemble assignments [#21823](https://github.com/scala/scala3/pull/21823)
142+
143+
## REPL
144+
145+
- REPL: JLine 3.27.0 (was 3.25.1) [#21752](https://github.com/scala/scala3/pull/21752)
146+
- Ignore best effort settings in repl and update docs [#21540](https://github.com/scala/scala3/pull/21540)
147+
148+
## Rewrites
149+
150+
- Remove empty argument lists for classes with only context bounds [#21513](https://github.com/scala/scala3/pull/21513)
151+
- Fix rewrite logic for old `<function> _` syntax [#21715](https://github.com/scala/scala3/pull/21715)
152+
- Remove the `-rewrite` option for `typechecks` methods in Quotes [#21547](https://github.com/scala/scala3/pull/21547)
153+
- Add migration rewrite for non-named arguments in Java annotations [#21397](https://github.com/scala/scala3/pull/21397)
154+
155+
## Runner
156+
157+
- 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)
158+
- [Scala CLI 1.5.2 release notes](https://github.com/VirtusLab/scala-cli/releases/tag/v1.5.2) highlights:
159+
- `--source` is now deprecated and scheduled for removal in Scala CLI v1.6.x
160+
- Initial support for emitting Wasm with a command line option and a directive
161+
- [Scala CLI 1.5.3 release notes](https://github.com/VirtusLab/scala-cli/releases/tag/v1.5.3)
162+
- [Scala CLI 1.5.4 release notes](https://github.com/VirtusLab/scala-cli/releases/tag/v1.5.4)
163+
164+
## Scaladoc
165+
166+
- Only trim one newline when preprocessing the content of a markdown code snippet [#21519](https://github.com/scala/scala3/pull/21519)
167+
- Filter opaque modifier from object documentation [#21640](https://github.com/scala/scala3/pull/21640)
168+
- Bump Inkuire version to fix it for the new Scala versions [#21611](https://github.com/scala/scala3/pull/21611)
169+
170+
## Standard Library
171+
172+
- Scala 2.13.15 (was .14) [#21648](https://github.com/scala/scala3/pull/21648)
173+
- Define binary symbolic compiletime ops as `infix` [#21683](https://github.com/scala/scala3/pull/21683)
174+
175+
## Transform
176+
177+
- Fix treatment of separately compiled @native methods in FirstTransform [#21593](https://github.com/scala/scala3/pull/21593)
178+
- Three fixes to SAM type handling [#21596](https://github.com/scala/scala3/pull/21596)
179+
- Always rewrite empty List() to Nil [#21689](https://github.com/scala/scala3/pull/21689)
180+
- Add support for clauseInterleaving in JVM generic signatures [#21709](https://github.com/scala/scala3/pull/21709)
181+
182+
## Typeclass Derivation
183+
184+
- Nicer error message in case a `derived` method has an explicit term param [#21332](https://github.com/scala/scala3/pull/21332)
185+
186+
## Typer
187+
188+
- Calm param autotupling for overloads [#21552](https://github.com/scala/scala3/pull/21552)
189+
- Survive inaccessible types when computing implicit scope [#21589](https://github.com/scala/scala3/pull/21589)
190+
- Avoid cyclic errors forcing default arg types [#21597](https://github.com/scala/scala3/pull/21597)
191+
- Allow autotupling if fn's param is a type param [#21741](https://github.com/scala/scala3/pull/21741)
192+
- Fix extending protected nested java classes [#21857](https://github.com/scala/scala3/pull/21857)
193+
- Fix incorrect caching with dependent method parameters [#21699](https://github.com/scala/scala3/pull/21699)
194+
195+
# Contributors
196+
197+
Thank you to all the contributors who made this release possible 🎉
198+
199+
According to `git shortlog -sn --no-merges 3.5.2..3.6.2` these are:
200+
201+
```
202+
128 Martin Odersky
203+
53 Wojciech Mazur
204+
44 Dale Wijnand
205+
35 Hamza REMMAL
206+
33 Kacper Korban
207+
31 Eugene Flesselle
208+
22 Hamza Remmal
209+
11 Katarzyna Marek
210+
10 Matt Bovel
211+
9 noti0na1
212+
9 rochala
213+
8 Jamie Thompson
214+
8 Jan Chyb
215+
7 Adrien Piquerez
216+
7 Som Snytt
217+
7 Sébastien Doeraene
218+
7 dependabot[bot]
219+
6 Yichen Xu
220+
5 EnzeXing
221+
5 Guillaume Martres
222+
4 Fengyun Liu
223+
4 kasiaMarek
224+
3 Martin Duhem
225+
3 Oliver Bracevac
226+
3 Piotr Chabelski
227+
2 Aleksander Rainko
228+
2 David Hua
229+
2 Florian3k
230+
2 HarrisL2
231+
2 Joel Wilsson
232+
2 Jędrzej Rochala
233+
2 Kenji Yoshida
234+
1 Eugene Yokota
235+
1 Kavin Satheeskumar
236+
1 Lorenzo Gabriele
237+
1 Michel Charpentier
238+
1 Ondrej Lhotak
239+
1 Raphael Jolly
240+
1 Tomasz Godzik
241+
1 Yuito Murase
242+
1 crunchyfrog
243+
1 philippus
244+
```

0 commit comments

Comments
 (0)