Skip to content

Commit c1397bb

Browse files
committed
Add changelog for 3.2.0-RC1
1 parent 213fdbc commit c1397bb

File tree

1 file changed

+297
-0
lines changed

1 file changed

+297
-0
lines changed

changelogs/3.2.0-RC1.md

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

0 commit comments

Comments
 (0)