Skip to content

Commit 1d34bcf

Browse files
committed
Add changelog for 3.2.0
1 parent a1ebaa0 commit 1d34bcf

File tree

1 file changed

+315
-0
lines changed

1 file changed

+315
-0
lines changed

changelogs/3.2.0.md

+315
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,315 @@
1+
# Highlights of the release
2+
3+
- Add runtime.TupleMirror to avoid anonymous classes for mirrors of tuples [#15404](https://github.com/lampepfl/dotty/pull/15404)
4+
- Fix TupleXXL.productPrefix [#15411](https://github.com/lampepfl/dotty/pull/15411)
5+
- Synthesize mirrors for small generic tuples [#15250](https://github.com/lampepfl/dotty/pull/15250)
6+
- Fix #14150: Constrain refinements to type parameters [#15014](https://github.com/lampepfl/dotty/pull/15014)
7+
- Gradual warning for deprecated nonlocal return [#15303](https://github.com/lampepfl/dotty/pull/15303)
8+
- Restrict mirrors of any union type [#15279](https://github.com/lampepfl/dotty/pull/15279)
9+
- Stabilize 3.2 APIs [#15197](https://github.com/lampepfl/dotty/pull/15197)
10+
- Add error reporting for mirror synthesis [#15164](https://github.com/lampepfl/dotty/pull/15164)
11+
- Fix #14432: Check if scala 2 case class is accessible [#15008](https://github.com/lampepfl/dotty/pull/15008)
12+
- Fix #12919: Summon anonymous mirror when companion is a case object [#14986](https://github.com/lampepfl/dotty/pull/14986)
13+
- Erase `Int | Nothing` signatures types into `Int` [#14971](https://github.com/lampepfl/dotty/pull/14971)
14+
- Allow exports in extension clauses [#14497](https://github.com/lampepfl/dotty/pull/14497)
15+
- Fix Scala Wart about implicit () class parameters [#14840](https://github.com/lampepfl/dotty/pull/14840)
16+
- Re-architecture quote pickling [#12540](https://github.com/lampepfl/dotty/pull/12540)
17+
- Add `scala.annotation.MainAnnotation` [#14558](https://github.com/lampepfl/dotty/pull/14558)
18+
- Add in initial support for code coverage [#13880](https://github.com/lampepfl/dotty/pull/13880)
19+
- Support tuple specialisation [#15060](https://github.com/lampepfl/dotty/pull/15060)
20+
- Remove support for `-scala-output-version` flag [#15146](https://github.com/lampepfl/dotty/pull/15146)
21+
- Make lazy vals and object native image friendly [#14780](https://github.com/lampepfl/dotty/pull/14780)
22+
- Allow return in tailrec position [#14067](https://github.com/lampepfl/dotty/pull/14067)
23+
24+
# Other changes and fixes
25+
26+
## Backend
27+
28+
- Keep annotation order [#15063](https://github.com/lampepfl/dotty/pull/15063)
29+
- Update asm to 9.3 [#14926](https://github.com/lampepfl/dotty/pull/14926)
30+
- Fix #14773: Reuse the param slots for the tailrec local mutable vars. [#14865](https://github.com/lampepfl/dotty/pull/14865)
31+
- Better error messages in case of `TooLarge*` exceptions in GenBCode [#14943](https://github.com/lampepfl/dotty/pull/14943)
32+
33+
## Coverage
34+
35+
- Fix relativizing paths in coverage serializer [#15240](https://github.com/lampepfl/dotty/pull/15240)
36+
- Fix lifting of arguments with `-coverage-out` [#15530](https://github.com/lampepfl/dotty/pull/15530)
37+
- Avoid instrumentation of inline and erased definitions [#15504](https://github.com/lampepfl/dotty/pull/15504)
38+
- Keep `fun` and `args` together when instrumenting `TypeApply` for coverage [#15739](https://github.com/lampepfl/dotty/pull/15739)
39+
40+
## Erasure
41+
42+
- Handle `&` and `|` types when computing tuple arity [#15330](https://github.com/lampepfl/dotty/pull/15330)
43+
- Fix two problems related to match types as array elements [#15625](https://github.com/lampepfl/dotty/pull/15625)
44+
45+
## Experimentals
46+
47+
- Fix check experimental inline references [#15147](https://github.com/lampepfl/dotty/pull/15147)
48+
49+
## Exports
50+
51+
- Refine criterion when to skip identifiers in pattern constructors [#15367](https://github.com/lampepfl/dotty/pull/15367)
52+
- Simplify and harden duplicates checking in exports [#14879](https://github.com/lampepfl/dotty/pull/14879)
53+
- Fix `isAbsType` prediction in `TreeUnpickler` [#14861](https://github.com/lampepfl/dotty/pull/14861)
54+
55+
## F-bounds
56+
57+
- Recursion brake for joins in TypeComparer [#14880](https://github.com/lampepfl/dotty/pull/14880)
58+
59+
## GADTs
60+
61+
- Heal pattern-bound type by gathering constraints [#15095](https://github.com/lampepfl/dotty/pull/15095)
62+
- Consider GADT upper bounds when upcasting the scrutinee type [#15351](https://github.com/lampepfl/dotty/pull/15351)
63+
- Extract wildcard GADT constraints more directly [#14832](https://github.com/lampepfl/dotty/pull/14832)
64+
- Fix constraining against `HKTypeLambda` arguments [#15688](https://github.com/lampepfl/dotty/pull/15688)
65+
66+
## IDE Support
67+
68+
- Docs: Add a comment to `pathTo` mentioning that it might return `errorTermTree` [#15420](https://github.com/lampepfl/dotty/pull/15420)
69+
- Fix completions to properly contain public fields if they were shadowed [#15236](https://github.com/lampepfl/dotty/pull/15236)
70+
- Add proper signatureHelp for unapply methods [#15203](https://github.com/lampepfl/dotty/pull/15203)
71+
- Fix signatureHelp to show enclosing apply instead of closest one. [#15119](https://github.com/lampepfl/dotty/pull/15119)
72+
- Fix implicit conversion type resolve in completions [#15061](https://github.com/lampepfl/dotty/pull/15061)
73+
- Fix type alias completion, unify completion tests style [#15047](https://github.com/lampepfl/dotty/pull/15047)
74+
- Support code completion for refined types [#15283](https://github.com/lampepfl/dotty/pull/15283)
75+
- Fix `SourceFile.column` method. [#15209](https://github.com/lampepfl/dotty/pull/15209)
76+
77+
## Initialization
78+
79+
- Check method arguments with parametricity when static [#14916](https://github.com/lampepfl/dotty/pull/14916)
80+
- Add safe-init test to prevent adding cold elements to hot arrays [#14895](https://github.com/lampepfl/dotty/pull/14895)
81+
- Allow non-hot values in SeqLiterals [#14794](https://github.com/lampepfl/dotty/pull/14794)
82+
83+
## Inline
84+
85+
- Make private inline accessors `final` [#15324](https://github.com/lampepfl/dotty/pull/15324)
86+
- Fix inlining when outer select is needed from inline call prefix [#15327](https://github.com/lampepfl/dotty/pull/15327)
87+
- Support inline methods calling private inline methods on `this` [#15075](https://github.com/lampepfl/dotty/pull/15075)
88+
- Types with only an abstract inline method are not SAMs [#14874](https://github.com/lampepfl/dotty/pull/14874)
89+
- Don't issue unreachable error messages for inlined code [#14871](https://github.com/lampepfl/dotty/pull/14871)
90+
- Dealias arg type to detect opaque types [#15074](https://github.com/lampepfl/dotty/pull/15074)
91+
- Fix dependency status calculation for refined type aliases in method result types [#15390](https://github.com/lampepfl/dotty/pull/15390)
92+
- Fix computation of class nesting level in inliner [#15671](https://github.com/lampepfl/dotty/pull/15671)
93+
- Always expand inline accessor names [#15619](https://github.com/lampepfl/dotty/pull/15619)
94+
95+
## Java Compatibility
96+
97+
- Java generic signatures can't refer to type members [#15093](https://github.com/lampepfl/dotty/pull/15093)
98+
- Simplify and correctify calculation of the InnerClass attribute [#15153](https://github.com/lampepfl/dotty/pull/15153)
99+
- Fix #13523: Survive missing Java inner annotation classfiles [#15094](https://github.com/lampepfl/dotty/pull/15094)
100+
101+
## Match Types
102+
103+
- Implement `provablyDisjoint` for refined types and type aliases [#15375](https://github.com/lampepfl/dotty/pull/15375)
104+
- Cache skolem types [#14909](https://github.com/lampepfl/dotty/pull/14909)
105+
- Refine Matchtype checking [#15423](https://github.com/lampepfl/dotty/pull/15423)
106+
107+
## Nullability
108+
109+
- Speed up `.nn` [#15418](https://github.com/lampepfl/dotty/pull/15418)
110+
- Fix handling imports in `TreeUnpickler` [#15137](https://github.com/lampepfl/dotty/pull/15137)
111+
- Honor language imports when unpickling [#14962](https://github.com/lampepfl/dotty/pull/14962)
112+
- Remove special `eq`/`ne` in unsafeNulls [#15186](https://github.com/lampepfl/dotty/pull/15186)
113+
- Add `eq`/`ne` extension for `AnyRef|Null` to Scala3RunTime [#14632](https://github.com/lampepfl/dotty/pull/14632)
114+
115+
## Parser
116+
117+
- Fix parser error for type arguments with trailing comma [#15395](https://github.com/lampepfl/dotty/pull/15395)
118+
- Change fewerbraces to always use a colon, even before lambdas [#15273](https://github.com/lampepfl/dotty/pull/15273)
119+
- Deprecate 3.1-migration, err on import [#14978](https://github.com/lampepfl/dotty/pull/14978)
120+
- Treat all incomplete ifs as statements [#14960](https://github.com/lampepfl/dotty/pull/14960)
121+
- Clarify and test rules for newline suppression [#14877](https://github.com/lampepfl/dotty/pull/14877)
122+
- Tweak assertion in withMods [#14857](https://github.com/lampepfl/dotty/pull/14857)
123+
- Fix loop in parser [#15421](https://github.com/lampepfl/dotty/pull/15421)
124+
- Parse unary operators as regular identifiers when backquoted [#15198](https://github.com/lampepfl/dotty/pull/15198)
125+
- Harden erasure of TermRefs [#15658](https://github.com/lampepfl/dotty/pull/15658)
126+
127+
## Pattern Matching
128+
129+
- Preserve modifiers when desugaring for-comps [#15403](https://github.com/lampepfl/dotty/pull/15403)
130+
- Extract unapply types like typedUnApply [#15254](https://github.com/lampepfl/dotty/pull/15254)
131+
- Force Java enum children to be queried [#15109](https://github.com/lampepfl/dotty/pull/15109)
132+
- Enable stricter pattern binding warnings by default [#14294](https://github.com/lampepfl/dotty/pull/14294)
133+
- Irrefutable for generators don't require `withFilter` under `-source:future` [#15593](https://github.com/lampepfl/dotty/pull/15593)
134+
- Refutable extractor may be an `Apply` tree [#15651](https://github.com/lampepfl/dotty/pull/15651)
135+
136+
## Pickling
137+
138+
- Survive unpickling crashes when completing from Tasty [#14884](https://github.com/lampepfl/dotty/pull/14884)
139+
140+
## Quotes
141+
142+
- Transform RHS of captured assignment reference [#15247](https://github.com/lampepfl/dotty/pull/15247)
143+
- Properly look for inline methods [#15072](https://github.com/lampepfl/dotty/pull/15072)
144+
- Fix hash code of ExprImpl and TypeImpl [#15281](https://github.com/lampepfl/dotty/pull/15281)
145+
- Compute correct argument type in ExprMap [#15269](https://github.com/lampepfl/dotty/pull/15269)
146+
- Detect quoted pattern variables in alternatives [#15073](https://github.com/lampepfl/dotty/pull/15073)
147+
- Disallow old uses of quoted and spliced types [#15012](https://github.com/lampepfl/dotty/pull/15012)
148+
- Fix capturing conditions of HOAS quote patterns [#14822](https://github.com/lampepfl/dotty/pull/14822)
149+
150+
## Reflection
151+
152+
- Add missing cases in SourceCode printer [#15032](https://github.com/lampepfl/dotty/pull/15032)
153+
- Add reflect `AppliedType` constructor [#14923](https://github.com/lampepfl/dotty/pull/14923)
154+
- Add regression test [#14924](https://github.com/lampepfl/dotty/pull/14924)
155+
156+
## Reporting
157+
158+
- Case class must have at least one *leading* non-implicit parameter list [#15382](https://github.com/lampepfl/dotty/pull/15382)
159+
- Improve opaque type with no RHS error message [#15285](https://github.com/lampepfl/dotty/pull/15285)
160+
- Refine condition when to report errors in an inserted apply [#15016](https://github.com/lampepfl/dotty/pull/15016)
161+
- Accept soft modifiers separated by blank lines [#14959](https://github.com/lampepfl/dotty/pull/14959)
162+
- Fix warning with leaking `this` into Scala2 synthetic apply [#15307](https://github.com/lampepfl/dotty/pull/15307)
163+
- Refine error messages for early promotion [#15263](https://github.com/lampepfl/dotty/pull/15263)
164+
- Standardize `-rewrite` advertisements and suppress them in REPL [#14955](https://github.com/lampepfl/dotty/pull/14955)
165+
- Improve diagnostic for refutable extractors in pattern bindings [#14988](https://github.com/lampepfl/dotty/pull/14988)
166+
- Fix: correction to ClassTooLargeException message [#14974](https://github.com/lampepfl/dotty/pull/14974)
167+
168+
## Scaladoc
169+
170+
- Fix rendering `ThisType` [#15440](https://github.com/lampepfl/dotty/pull/15440)
171+
- Add extension suffixes and fqName to scaladoc searchbar [#15048](https://github.com/lampepfl/dotty/pull/15048)
172+
- Fix implicit members resolution [#15021](https://github.com/lampepfl/dotty/pull/15021)
173+
- Fix windows paths handling in legacy external link provider [#15023](https://github.com/lampepfl/dotty/pull/15023)
174+
- Warn about special characters in filenames according to the default Jekyll rules [#14657](https://github.com/lampepfl/dotty/pull/14657)
175+
- Scaladoc annotations rework [#15361](https://github.com/lampepfl/dotty/pull/15361)
176+
- Fix expanding docstrings in Scaladoc [#15045](https://github.com/lampepfl/dotty/pull/15045)
177+
178+
## Scripting
179+
180+
- Fix #13760: Running script compiled jar no longer restricted to java.base module [#15103](https://github.com/lampepfl/dotty/pull/15103)
181+
182+
## SemanticDB
183+
184+
- Do not register SymbolOccurrence for non-symbol endmarker [#15143](https://github.com/lampepfl/dotty/pull/15143)
185+
186+
## Standard Library
187+
188+
- Implement new main annotation [#14841](https://github.com/lampepfl/dotty/pull/14841)
189+
- Add compiletime.ops.string.CharAt [#14431](https://github.com/lampepfl/dotty/pull/14431)
190+
- Make `EmptyTuple` a `case object` [#14972](https://github.com/lampepfl/dotty/pull/14972)
191+
- Deprecate `ToString` type which should be deprecated at 3.2.0 [#15645](https://github.com/lampepfl/dotty/pull/15645)
192+
193+
## Tasty Inspector
194+
195+
- Handle `this` prefix in classes (in quote patterns) [#14800](https://github.com/lampepfl/dotty/pull/14800)
196+
- Fix parameter untupling [#14816](https://github.com/lampepfl/dotty/pull/14816)
197+
198+
## Tooling
199+
200+
- Add -Vprofile option [#15406](https://github.com/lampepfl/dotty/pull/15406)
201+
- Fix rewrite for type-ascribed refutable pattern binding [#15314](https://github.com/lampepfl/dotty/pull/15314)
202+
- Fix rewrites for refutable pattern bindings [#14954](https://github.com/lampepfl/dotty/pull/14954)
203+
204+
## Transform
205+
206+
- Also hoist lifted arguments in super calls [#14919](https://github.com/lampepfl/dotty/pull/14919)
207+
- Add deprecated overriding checks [#15432](https://github.com/lampepfl/dotty/pull/15432)
208+
- Don't cast to a value class as self type [#14885](https://github.com/lampepfl/dotty/pull/14885)
209+
- Disallow `@targetName` on top-level `class`, `trait`, and `object` [#15068](https://github.com/lampepfl/dotty/pull/15068)
210+
- Handle case where abstract overrides miss an implementation [#14893](https://github.com/lampepfl/dotty/pull/14893)
211+
- Treat RecTypes as potentially uncheckable [#14894](https://github.com/lampepfl/dotty/pull/14894)
212+
- Allow multiple wildcard vals [#14906](https://github.com/lampepfl/dotty/pull/14906)
213+
- Handle non-specialized functions in EtaReduce [#15498](https://github.com/lampepfl/dotty/pull/15498)
214+
215+
## Typeclass Derivation
216+
217+
- Support intersection types in mirrorCompanionRef [#15192](https://github.com/lampepfl/dotty/pull/15192)
218+
- Fix #15222: Recursively check for product ctor accessibility [#15231](https://github.com/lampepfl/dotty/pull/15231)
219+
- Fix 14025: Restrict curried type lambdas in mirror generation [#15006](https://github.com/lampepfl/dotty/pull/15006)
220+
- Make anonymous mirrors serializable [#15391](https://github.com/lampepfl/dotty/pull/15391)
221+
- Support Mirror synthesis for local and inner classes [#15847](https://github.com/lampepfl/dotty/pull/15847)
222+
223+
## Typer
224+
225+
- Fix #15405: Dealias Or type constituents when finding its dominator [#15416](https://github.com/lampepfl/dotty/pull/15416)
226+
- Handle unconstrained TypeVars when synthesizing ClassTags [#15376](https://github.com/lampepfl/dotty/pull/15376)
227+
- Allow for unqualified `apply` as context functions [#15417](https://github.com/lampepfl/dotty/pull/15417)
228+
- Prevent crash when reporting an error [#15320](https://github.com/lampepfl/dotty/pull/15320)
229+
- Show a match type trace for "not a class type" errors [#15218](https://github.com/lampepfl/dotty/pull/15218)
230+
- Don't constrain type variables in normalize [#15223](https://github.com/lampepfl/dotty/pull/15223)
231+
- Eta expand CFTs in super accessors if needed [#15092](https://github.com/lampepfl/dotty/pull/15092)
232+
- Reject structural applications of polymorphic methods [#15090](https://github.com/lampepfl/dotty/pull/15090)
233+
- Hande clashes between same-named exports [#14967](https://github.com/lampepfl/dotty/pull/14967)
234+
- Fix outer reference detection in class parents [#14961](https://github.com/lampepfl/dotty/pull/14961)
235+
- Avoid redundant type test for irrefutable @unchecked patterns [#14898](https://github.com/lampepfl/dotty/pull/14898)
236+
- Detect clashes involving renamed exports [#14831](https://github.com/lampepfl/dotty/pull/14831)
237+
- Guard against stackoverflows when instantiating HK-Lambdas [#14851](https://github.com/lampepfl/dotty/pull/14851)
238+
- Don't try conversions or extensions on Java companion objects [#14881](https://github.com/lampepfl/dotty/pull/14881)
239+
- Revert #14452 and make compile-time operations on stable arguments stable [#15268](https://github.com/lampepfl/dotty/pull/15268)
240+
- Better handling of type parameters in constructor pattern [#15356](https://github.com/lampepfl/dotty/pull/15356)
241+
- Handle AvoidMap recursions [#15393](https://github.com/lampepfl/dotty/pull/15393)
242+
- Add missing condition in checking synthetic apply [#15362](https://github.com/lampepfl/dotty/pull/15362)
243+
- Harden type assignment of lambda trees [#14887](https://github.com/lampepfl/dotty/pull/14887)
244+
- Disallow package names as types [#14888](https://github.com/lampepfl/dotty/pull/14888)
245+
- Fix `constToLiteral` [#14853](https://github.com/lampepfl/dotty/pull/14853)
246+
- Survive TypeErrors in `isMatchedBy` [#15675](https://github.com/lampepfl/dotty/pull/15675)
247+
- Don't ignore expected types of `New` [#15679](https://github.com/lampepfl/dotty/pull/15679)
248+
- Better infos for dependent class parameter references [#15667](https://github.com/lampepfl/dotty/pull/15667)
249+
250+
# Contributors
251+
252+
Thank you to all the contributors who made this release possible 🎉
253+
254+
According to `git shortlog -sn --no-merges 3.1.3..3.2.0` these are:
255+
256+
```
257+
154 odersky
258+
62 Nicolas Stucki
259+
51 Filip Zybała
260+
42 Jamie Thompson
261+
39 Dale Wijnand
262+
30 Tom Grigg
263+
29 Paweł Marks
264+
29 rochala
265+
25 Guillaume Raffin
266+
13 Fengyun Liu
267+
13 Ondrej Lhotak
268+
11 Guillaume Martres
269+
11 Sébastien Doeraene
270+
7 Matt Bovel
271+
7 Som Snytt
272+
6 Szymon Rodziewicz
273+
5 Julien Richard-Foy
274+
5 Martin Odersky
275+
5 Wojciech Mazur
276+
4 Chris Kipp
277+
4 Olivier Blanvillain
278+
4 Xavientois
279+
3 Rikito Taniguchi
280+
3 Vadim Chelyshov
281+
2 Adrien Piquerez
282+
2 Albert Chen
283+
2 Anatolii Kmetiuk
284+
2 Arnout Engelen
285+
2 Jan Chyb
286+
2 Lan, Jian
287+
2 Phil
288+
2 Philippus
289+
2 Raphael Jolly
290+
2 Robert Stoll
291+
2 Tim Spence
292+
2 cgccuser
293+
2 gagandeepkalra
294+
2 manojo
295+
2 noti0na1
296+
2 Артём
297+
1 Aleksander Boruch-Gruszecki
298+
1 Dmitrii Naumenko
299+
1 Humberto Rodríguez A
300+
1 Johannes Rudolph
301+
1 Jędrzej Rochala
302+
1 Krzysztof Romanowski
303+
1 Magnolia.K
304+
1 Michał Pałka
305+
1 Ondřej Lhoták
306+
1 Stéphane Micheloud
307+
1 Timothée Loyck Andres
308+
1 Yichen Xu
309+
1 adampauls
310+
1 johannes karoff
311+
1 ouertani
312+
1 xuwei-k
313+
1 yoshinorin
314+
315+
```

0 commit comments

Comments
 (0)