Skip to content

Commit 92152f4

Browse files
committed
Add changelog for 3.3.0
1 parent 410e5df commit 92152f4

File tree

1 file changed

+268
-0
lines changed

1 file changed

+268
-0
lines changed

changelogs/3.3.0.md

+268
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
# Highlights of the release
2+
3+
- Stabilize new lazy vals [#16614](https://github.com/lampepfl/dotty/pull/16614)
4+
- Experimental Macro annotations [#16392](https://github.com/lampepfl/dotty/pull/16392) [#16454](https://github.com/lampepfl/dotty/pull/16454) [#16534](https://github.com/lampepfl/dotty/pull/16534)
5+
- Fix stability check for inline parameters [#15511](https://github.com/lampepfl/dotty/pull/15511)
6+
- Make `fewerBraces` a standard feature [#16297](https://github.com/lampepfl/dotty/pull/16297)
7+
- Add new front-end phase for unused entities and add support for unused imports [#16157](https://github.com/lampepfl/dotty/pull/16157)
8+
- Implement -Wvalue-discard warning [#15975](https://github.com/lampepfl/dotty/pull/15975)
9+
- Introduce boundary/break control abstraction. [#16612](https://github.com/lampepfl/dotty/pull/16612)
10+
11+
# Other changes and fixes
12+
13+
## Annotations
14+
15+
- Support use-site meta-annotations [#16445](https://github.com/lampepfl/dotty/pull/16445)
16+
17+
## Desugaring
18+
19+
- Reuse typed prefix for `applyDynamic` and `applyDynamicNamed` [#16552](https://github.com/lampepfl/dotty/pull/16552)
20+
- Fix object selftype match error [#16441](https://github.com/lampepfl/dotty/pull/16441)
21+
22+
## Erasure
23+
24+
- Dealias before checking for outer references in types [#16525](https://github.com/lampepfl/dotty/pull/16525)
25+
- Fix generic signature for type params bounded by primitive [#16442](https://github.com/lampepfl/dotty/pull/16442)
26+
- Avoid EmptyScope.cloneScope crashing, eg on missing references [#16314](https://github.com/lampepfl/dotty/pull/16314)
27+
28+
## GADTs
29+
30+
- Inline GADT state restoring in TypeComparer [#16564](https://github.com/lampepfl/dotty/pull/16564)
31+
- Add extension/conversion to GADT selection healing [#16638](https://github.com/lampepfl/dotty/pull/16638)
32+
- Split out immutable GadtConstraint [#16602](https://github.com/lampepfl/dotty/pull/16602)
33+
- Avoid bidirectional GADT typebounds from fullBounds [#15683](https://github.com/lampepfl/dotty/pull/15683)
34+
35+
## Incremental compilation
36+
37+
- Unpickle arguments of parent constructors in Templates lazily [#16688](https://github.com/lampepfl/dotty/pull/16688)
38+
39+
## Initialization
40+
41+
- Fix #16438: Supply dummy args for erroneous parent call in init check [#16448](https://github.com/lampepfl/dotty/pull/16448)
42+
43+
## Inline
44+
45+
- Dealias in ConstantValue, for inline if cond [#16652](https://github.com/lampepfl/dotty/pull/16652)
46+
- Set Span for top level annotations generated in PostTyper [#16378](https://github.com/lampepfl/dotty/pull/16378)
47+
- Interpolate any type vars from comparing against SelectionProto [#16348](https://github.com/lampepfl/dotty/pull/16348)
48+
- Handle binding of beta reduced inlined lambdas [#16377](https://github.com/lampepfl/dotty/pull/16377)
49+
- Do not add dummy RHS to abstract inline methods [#16510](https://github.com/lampepfl/dotty/pull/16510)
50+
- Warn on inline given aliases with functions as RHS [#16499](https://github.com/lampepfl/dotty/pull/16499)
51+
- Support inline overrides in value classes [#16523](https://github.com/lampepfl/dotty/pull/16523)
52+
53+
## Java interop
54+
55+
- Represent Java annotations as interfaces so they can be extended, and disallow various misuses of them [#16260](https://github.com/lampepfl/dotty/pull/16260)
56+
57+
## Linting
58+
59+
- Fix -Wunused:import registering constructor `<init>` instead of its owner (also fix false positive for enum) [#16661](https://github.com/lampepfl/dotty/pull/16661)
60+
- Fix #16675 : -Wunused false positive on case class generated method, due to flags used to distinguish case accessors. [#16683](https://github.com/lampepfl/dotty/pull/16683)
61+
- Fix #16682: CheckUnused missed some used symbols [#16690](https://github.com/lampepfl/dotty/pull/16690)
62+
- Fix "-Wunused: False positive on parameterless enum member" [#16927](https://github.com/lampepfl/dotty/pull/16927)
63+
- Register usage of symbols in non-inferred type trees in CheckUnused [#16939](https://github.com/lampepfl/dotty/pull/16939)
64+
- Traverse annotations instead of just registering in -Wunused [#16956](https://github.com/lampepfl/dotty/pull/16956)
65+
- Ignore parameter of accessors in -Wunused [#16957](https://github.com/lampepfl/dotty/pull/16957)
66+
- Ignore parameter of accessors in -Wunused [#16957](https://github.com/lampepfl/dotty/pull/16957)
67+
- Improve override detection in CheckUnused [#16965](https://github.com/lampepfl/dotty/pull/16965)
68+
- WUnused: Fix unused warning in synthetic symbols [#17020](https://github.com/lampepfl/dotty/pull/17020)
69+
- Fix WUnused with idents in derived code [#17095](https//github.com/lampepfl/dotty/pull/17095)
70+
- WUnused: Fix for symbols with synthetic names and unused transparent inlines [#17061](https//github.com/lampepfl/dotty/pull/17061)
71+
- Skip extension method params in WUnused [#17178](https//github.com/lampepfl/dotty/pull/17178)
72+
- Fix wunused false positive when deriving alias type [#17157](https//github.com/lampepfl/dotty/pull/17157)
73+
- Fix WUnused for accessible symbols that are renamed [#17177](https//github.com/lampepfl/dotty/pull/17177)
74+
- Fix WUnused false positive in for [#17176](https//github.com/lampepfl/dotty/pull/17176)
75+
- Make CheckUnused run both after Typer and Inlining [#17206](https//github.com/lampepfl/dotty/pull/17206)
76+
- Disable WUnused for params of non-private defs [#17223](https//github.com/lampepfl/dotty/pull/17223)
77+
- Wunused: Check if symbol exists before `isValidMemberDef` check [#17316](https://github.com/lampepfl/dotty/pull/17316)
78+
- Wunused: Include import selector bounds in unused checks [#17323](https://github.com/lampepfl/dotty/pull/17323)
79+
- Fix compiler crash in WUnused [#17340](https://github.com/lampepfl/dotty/pull/17340)
80+
81+
## Opaque Types
82+
83+
- Delay opaque alias checking until PostTyper [#16644](https://github.com/lampepfl/dotty/pull/16644)
84+
85+
## Overloading
86+
87+
- Handle context function arguments in overloading resolution [#16511](https://github.com/lampepfl/dotty/pull/16511)
88+
89+
## Parser
90+
91+
- Improve support for Unicode supplementary characters in identifiers and string interpolation (as in Scala 2) [#16278](https://github.com/lampepfl/dotty/pull/16278)
92+
- Require indent after colon at EOL [#16466](https://github.com/lampepfl/dotty/pull/16466)
93+
- Help givens return refined types [#16293](https://github.com/lampepfl/dotty/pull/16293)
94+
95+
## Pattern Matching
96+
97+
- Tweak AvoidMap's derivedSelect [#16563](https://github.com/lampepfl/dotty/pull/16563)
98+
- Space: Use RHS of & when refining subtypes [#16573](https://github.com/lampepfl/dotty/pull/16573)
99+
- Freeze constraints in a condition check of maximiseType [#16526](https://github.com/lampepfl/dotty/pull/16526)
100+
- Restrict syntax of typed patterns [#16150](https://github.com/lampepfl/dotty/pull/16150)
101+
- Test case to show that #16252 works with transparent [#16262](https://github.com/lampepfl/dotty/pull/16262)
102+
- Support inline unapplySeq and with leading given parameters [#16358](https://github.com/lampepfl/dotty/pull/16358)
103+
- Handle sealed prefixes in exh checking [#16621](https://github.com/lampepfl/dotty/pull/16621)
104+
- Detect irrefutable quoted patterns [#16674](https://github.com/lampepfl/dotty/pull/16674)
105+
- Patmat: Use less type variables in prefix inference [#16827](https//github.com/lampepfl/dotty/pull/16827)
106+
107+
## Pickling
108+
109+
- Allow case classes with up to 254 parameters [#16501](https://github.com/lampepfl/dotty/pull/16501)
110+
- Correctly unpickle Scala 2 private case classes in traits [#16519](https://github.com/lampepfl/dotty/pull/16519)
111+
112+
## Polyfunctions
113+
114+
- Fix #9996: Crash with function accepting polymorphic function type with singleton result [#16327](https://github.com/lampepfl/dotty/pull/16327)
115+
116+
## Quotes
117+
118+
- Remove contents of inline methods [#16345](https://github.com/lampepfl/dotty/pull/16345)
119+
- Fix errors in explicit type annotations in inline match cases [#16257](https://github.com/lampepfl/dotty/pull/16257)
120+
- Handle macro annotation suspends and crashes [#16509](https://github.com/lampepfl/dotty/pull/16509)
121+
- Fix macro annotations `spliceOwner` [#16513](https://github.com/lampepfl/dotty/pull/16513)
122+
- Fix HK quoted pattern type variables [#16907](https//github.com/lampepfl/dotty/pull/16907)
123+
124+
## REPL
125+
126+
- REPL: Fix crash when printing instances of value classes [#16393](https://github.com/lampepfl/dotty/pull/16393)
127+
- Attempt to fix completion crash [#16267](https://github.com/lampepfl/dotty/pull/16267)
128+
- Fix REPL shadowing bug [#16389](https://github.com/lampepfl/dotty/pull/16389)
129+
- Open up for extensibility [#16276](https://github.com/lampepfl/dotty/pull/16276)
130+
- Don't crash if completions throw [#16687](https://github.com/lampepfl/dotty/pull/16687)
131+
132+
## Reflection
133+
134+
- Fix reflect typeMembers to return all members [#15033](https://github.com/lampepfl/dotty/pull/15033)
135+
- Deprecate reflect Flags.Static [#16568](https://github.com/lampepfl/dotty/pull/16568)
136+
137+
## Reporting
138+
139+
- Suppress follow-on errors for erroneous import qualifiers [#16658](https://github.com/lampepfl/dotty/pull/16658)
140+
- Fix order in which errors are reported for assignment to val [#16660](https://github.com/lampepfl/dotty/pull/16660)
141+
- Fix class name in error message [#16635](https://github.com/lampepfl/dotty/pull/16635)
142+
- Make refined type printing more source compatible [#16303](https://github.com/lampepfl/dotty/pull/16303)
143+
- Add error hint on local inline def used in quotes [#16572](https://github.com/lampepfl/dotty/pull/16572)
144+
- Fix Text wrapping [#16277](https://github.com/lampepfl/dotty/pull/16277)
145+
- Fix #16680 by registering Ident not containing a symbol [#16689](https://github.com/lampepfl/dotty/pull/16689)
146+
- Fix the non-miniphase tree traverser [#16684](https://github.com/lampepfl/dotty/pull/16684)
147+
- Just warn on type ascription on a pattern [#17454](https://github.com/lampepfl/dotty/pull/17454)
148+
149+
## Scala-JS
150+
151+
- Fix #14289: Accept Ident refs to `js.native` in native member rhs. [#16185](https://github.com/lampepfl/dotty/pull/16185)
152+
153+
## Scaladoc
154+
155+
- Added jpath check to `ClassLikeSupport` getParentsAsTreeSymbolTuples [#16759](https://github.com/lampepfl/dotty/pull/16759)
156+
157+
## Standard Library
158+
159+
- Add `CanEqual` instance for `Map` [#15886](https://github.com/lampepfl/dotty/pull/15886)
160+
- Refine `Tuple.Append` return type [#16140](https://github.com/lampepfl/dotty/pull/16140)
161+
- Remove experimental from `Mirror#fromProductTyped` [#16829](https//github.com/lampepfl/dotty/pull/16829)
162+
163+
## TASTy format
164+
165+
- Make it a fatal error if erasure cannot resolve a type [#16373](https://github.com/lampepfl/dotty/pull/16373)
166+
167+
## Tooling
168+
169+
- Add -Yimports compiler flag [#16218](https://github.com/lampepfl/dotty/pull/16218)
170+
- Allow BooleanSettings to be set with a colon [#16425](https://github.com/lampepfl/dotty/pull/16425)
171+
- Add support for disabling redirected output in the REPL driver for usage in worksheets in the Scala Plugin for IntelliJ IDEA [#16810](https://github.com/lampepfl/dotty/pull/16810)
172+
- Fix #17187: allow patches with same span [#17366](https://github.com/lampepfl/dotty/pull/17366)
173+
174+
## Transform
175+
176+
- Avoid stackoverflow in ExplicitOuter [#16381](https://github.com/lampepfl/dotty/pull/16381)
177+
- Make lazy vals run on non-fallback graal image - remove dynamic reflection [#16346](https://github.com/lampepfl/dotty/pull/16346)
178+
- Patch to avoid crash in #16351 [#16354](https://github.com/lampepfl/dotty/pull/16354)
179+
- Don't treat package object's `<init>` methods as package members [#16667](https://github.com/lampepfl/dotty/pull/16667)
180+
- Space: Refine isSubspace property & an example [#16574](https://github.com/lampepfl/dotty/pull/16574)
181+
- Fix static lazy field holder for GraalVM [#16800](https://github.com/lampepfl/dotty/pull/16800)
182+
- Fix race condition in new LazyVals [#16975](https://github.com/lampepfl/dotty/pull/16975)
183+
184+
## Typer
185+
186+
- Drop requirement that self types are closed [#16648](https://github.com/lampepfl/dotty/pull/16648)
187+
- Disallow constructor params from appearing in parent types for soundness [#16664](https://github.com/lampepfl/dotty/pull/16664)
188+
- Don't search implicit arguments in singleton type prefix [#16490](https://github.com/lampepfl/dotty/pull/16490)
189+
- Don't rely on isProvisional to determine whether atoms computed [#16489](https://github.com/lampepfl/dotty/pull/16489)
190+
- Support signature polymorphic methods (`MethodHandle` and `VarHandle`) [#16225](https://github.com/lampepfl/dotty/pull/16225)
191+
- Prefer parameterless alternatives during ambiguous overload resolution [#16315](https://github.com/lampepfl/dotty/pull/16315)
192+
- Fix calculation to drop transparent classes [#16344](https://github.com/lampepfl/dotty/pull/16344)
193+
- Test case for issue 16311 [#16317](https://github.com/lampepfl/dotty/pull/16317)
194+
- Skip caching provisional OrType atoms [#16295](https://github.com/lampepfl/dotty/pull/16295)
195+
- Avoid cyclic references due to experimental check when inlining [#16195](https://github.com/lampepfl/dotty/pull/16195)
196+
- Track type variable dependencies to guide instantiation decisions [#16042](https://github.com/lampepfl/dotty/pull/16042)
197+
- Two fixes to constraint solving [#16353](https://github.com/lampepfl/dotty/pull/16353)
198+
- Fix regression in cyclic constraint handling [#16514](https://github.com/lampepfl/dotty/pull/16514)
199+
- Sharpen range approximation for applied types with capture set ranges [#16261](https://github.com/lampepfl/dotty/pull/16261)
200+
- Cut the Gordian Knot: Don't widen unions to transparent [#15642](https://github.com/lampepfl/dotty/pull/15642)
201+
- Fix widening logic to keep instantiation within bounds [#16417](https://github.com/lampepfl/dotty/pull/16417)
202+
- Skip ambiguous reference error when symbols are aliases [#16401](https://github.com/lampepfl/dotty/pull/16401)
203+
- Avoid incorrect simplifications when updating bounds in the constraint [#16410](https://github.com/lampepfl/dotty/pull/16410)
204+
- Take `@targetName` into account when resolving extension methods [#16487](https://github.com/lampepfl/dotty/pull/16487)
205+
- Improve ClassTag handling to avoid invalid ClassTag generation and inference failure [#16492](https://github.com/lampepfl/dotty/pull/16492)
206+
- Fix extracting the elemType of a union of arrays [#16569](https://github.com/lampepfl/dotty/pull/16569)
207+
- Make sure annotations are typed in expression contexts [#16699](https://github.com/lampepfl/dotty/pull/16699)
208+
- Throw a type error when using hk-types in unions or intersections [#16712](https://github.com/lampepfl/dotty/pull/16712)
209+
- Add missing criterion to subtype check [#16889](https://github.com/lampepfl/dotty/pull/16889)
210+
- Fix caching issue caused by incorrect isProvisional check [#16989](https://github.com/lampepfl/dotty/pull/16989)
211+
212+
# Contributors
213+
214+
Thank you to all the contributors who made this release possible 🎉
215+
216+
According to `git shortlog -sn --no-merges 3.2.2..3.3.0` these are:
217+
218+
```
219+
226 Martin Odersky
220+
106 Szymon Rodziewicz
221+
81 Dale Wijnand
222+
56 Nicolas Stucki
223+
52 Paul Coral
224+
48 Kamil Szewczyk
225+
45 Paweł Marks
226+
28 Florian3k
227+
28 Yichen Xu
228+
15 Guillaume Martres
229+
10 Michał Pałka
230+
9 Kacper Korban
231+
8 Fengyun Liu
232+
7 Chris Birchall
233+
7 rochala
234+
6 Sébastien Doeraene
235+
6 jdudrak
236+
5 Seth Tisue
237+
5 Som Snytt
238+
5 nizhikov
239+
4 Filip Zybała
240+
4 Jan Chyb
241+
4 Michael Pollmeier
242+
4 Natsu Kagami
243+
3 Anatolii Kmetiuk
244+
3 Jamie Thompson
245+
2 Adrien Piquerez
246+
2 Alex
247+
2 Dmitrii Naumenko
248+
2 Lukas Rytz
249+
2 Michael Pilquist
250+
2 Vasil Vasilev
251+
2 adampauls
252+
2 yoshinorin
253+
1 Alexander Slesarenko
254+
1 Chris Kipp
255+
1 Guillaume Raffin
256+
1 Jakub Kozłowski
257+
1 Jan-Pieter van den Heuvel
258+
1 Julien Richard-Foy
259+
1 Kenji Yoshida
260+
1 Matt Bovel
261+
1 Mohammad Yousuf Minhaj Zia
262+
1 Philippus
263+
1 Szymon R
264+
1 Tim Spence
265+
1 s.bazarsadaev
266+
267+
268+
```

0 commit comments

Comments
 (0)