Skip to content

Commit 180deab

Browse files
committed
Add changelog for 3.5.0
1 parent 19534db commit 180deab

File tree

1 file changed

+278
-0
lines changed

1 file changed

+278
-0
lines changed

changelogs/3.5.0.md

+278
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,278 @@
1+
# Highlights of the release
2+
3+
- Bundle scala-cli in scala command (For RC1 requires JVM 17, further RCs will use native launchers)
4+
- Introduce Best Effort compilation options [#17582](https://github.com/lampepfl/dotty/pull/17582)
5+
- Add support for Pipelined builds [#18880](https://github.com/lampepfl/dotty/pull/18880)
6+
- Add support for `var` in refinements [#19982](https://github.com/lampepfl/dotty/pull/19982)
7+
- Implement SIP-42 - Support for binary integer literals [#19405](https://github.com/lampepfl/dotty/pull/19405)
8+
9+
# Other changes and fixes
10+
11+
## Backend
12+
13+
- Fix Closure span assignment in makeClosure [#15841](https://github.com/lampepfl/dotty/pull/15841)
14+
15+
## Default parameters
16+
17+
- Fix default args lookup for given classes [#20256](https://github.com/lampepfl/dotty/pull/20256)
18+
- Fix implicit search failure reporting [#20261](https://github.com/lampepfl/dotty/pull/20261)
19+
20+
## Derivation
21+
22+
- Fix infinite loop in Mirror synthesis of unreducible match type [#20133](https://github.com/lampepfl/dotty/pull/20133)
23+
24+
## Desugaring
25+
26+
- Add explanation to checkCaseClassInheritanceInvariant error msg [#20141](https://github.com/lampepfl/dotty/pull/20141)
27+
28+
## Exports
29+
30+
- Add annotations in parameters for exports [#20140](https://github.com/lampepfl/dotty/pull/20140)
31+
- Fix isAliasType [#20195](https://github.com/lampepfl/dotty/pull/20195)
32+
33+
## Implicits
34+
35+
- Fix implicitNotFound message for type aliases [#19343](https://github.com/lampepfl/dotty/pull/19343)
36+
- Normalize types before collecting parts determining implicit scope [#20077](https://github.com/lampepfl/dotty/pull/20077)
37+
- Better error diagnostics under -explain-cyclic [#20251](https://github.com/lampepfl/dotty/pull/20251)
38+
- Update unreducible match types error reporting [#19954](https://github.com/lampepfl/dotty/pull/19954)
39+
- Improve ConstraintHandling of SkolemTypes [#20175](https://github.com/lampepfl/dotty/pull/20175)
40+
41+
## Incremental Compilation
42+
43+
- Retain default parameters with `export` [#20167](https://github.com/lampepfl/dotty/pull/20167)
44+
45+
## Inline
46+
47+
- Fix by-name parameter in beta-reduction [#20096](https://github.com/lampepfl/dotty/pull/20096)
48+
- Add warning for anonymous inline classes (#16723) [#20291](https://github.com/lampepfl/dotty/pull/20291)
49+
- Avoid conversion of `Unit` type into `()` term [#20295](https://github.com/lampepfl/dotty/pull/20295)
50+
- Type desugared `transparent inline def unapply` call in the correct mode [#20108](https://github.com/lampepfl/dotty/pull/20108)
51+
- Regression: fix compilation performance on Windows [#20193](https://github.com/lampepfl/dotty/pull/20193)
52+
- Fix inline match on blocks with multiple statements [#20125](https://github.com/lampepfl/dotty/pull/20125)
53+
- Inline `unapply`s in the inlining phase [#19382](https://github.com/lampepfl/dotty/pull/19382)
54+
- Fix outerSelect in Inliner [#20313](https://github.com/lampepfl/dotty/pull/20313)
55+
56+
## Linting
57+
58+
- Fix #20146: attach the original name if there is an import selection for an indent [#20163](https://github.com/lampepfl/dotty/pull/20163)
59+
- Add regression test for issue 18632 [#20308](https://github.com/lampepfl/dotty/pull/20308)
60+
61+
## Match Types
62+
63+
- Make aliases of `MatchAlias`es normal `TypeAlias`es [#19871](https://github.com/lampepfl/dotty/pull/19871)
64+
- Fix #19746: Do not follow param term refs in `isConcrete`. [#20015](https://github.com/lampepfl/dotty/pull/20015)
65+
- Do match type reduction atPhaseNoLater than ElimOpaque [#20017](https://github.com/lampepfl/dotty/pull/20017)
66+
- Do not flag match types as `Deferred` and amend #20077 [#20147](https://github.com/lampepfl/dotty/pull/20147)
67+
- Always use baseType when constraining patternTp with scrutineeTp [#20032](https://github.com/lampepfl/dotty/pull/20032)
68+
- Use `MirrorSource.reduce` result for `companionPath` [#20207](https://github.com/lampepfl/dotty/pull/20207)
69+
- Regression: Fix match type extraction of a MatchAlias [#20111](https://github.com/lampepfl/dotty/pull/20111)
70+
- Revert "Approximate MatchTypes with lub of case bodies, if non-recursive" in 3.5.0 [#21266](https://github.com/scala/scala3/pull/21266)
71+
72+
## Polyfunctions
73+
74+
- Discard poly-functions when trying to resolve overloading [#20181](https://github.com/lampepfl/dotty/pull/20181)
75+
76+
## Presentation Compiler
77+
78+
- Stabilise returned completions by improving deduplication + extra completions for constructors [#19976](https://github.com/lampepfl/dotty/pull/19976)
79+
- Fix active param index for empty param lists [#20142](https://github.com/lampepfl/dotty/pull/20142)
80+
- Delias type members in hover [#20173](https://github.com/lampepfl/dotty/pull/20173)
81+
- Interactive: handle context bounds in extension construct workaround [#20201](https://github.com/lampepfl/dotty/pull/20201)
82+
- Fix: prefer non-export definition locations [#20252](https://github.com/lampepfl/dotty/pull/20252)
83+
- Don't show enum completions in new keyword context [#20304](https://github.com/lampepfl/dotty/pull/20304)
84+
- Chore: Backport changes for presentation compiler [#20345](https://github.com/lampepfl/dotty/pull/20345)
85+
- Add custom matchers for completions (fuzzy search for presentation compiler) [#19850](https://github.com/lampepfl/dotty/pull/19850)
86+
87+
## Quotes
88+
89+
- Fix TermRef prefixes not having their type healed [#20102](https://github.com/lampepfl/dotty/pull/20102)
90+
- Improve reporting in staging about the possible use of an incorrect class loader [#20137](https://github.com/lampepfl/dotty/pull/20137)
91+
- Introduce MethodTypeKind to quotes reflection API [#20249](https://github.com/lampepfl/dotty/pull/20249)
92+
- Add quote ASTs to TASTy [#20165](https://github.com/lampepfl/dotty/pull/20165)
93+
94+
## Reflection
95+
96+
- Allow to beta reduce curried function applications in quotes reflect [#18121](https://github.com/lampepfl/dotty/pull/18121)
97+
- Set the inlining phase in the Context used for checking macro trees [#20087](https://github.com/lampepfl/dotty/pull/20087)
98+
- Add Symbol.isSuperAccessor to reflection API [#13388](https://github.com/lampepfl/dotty/pull/13388)
99+
- Stabilize reflect `SymbolMethods.isSuperAccessor` [#20198](https://github.com/lampepfl/dotty/pull/20198)
100+
101+
## Repl
102+
103+
- Fix validity period of derived SingleDenotations [#19983](https://github.com/lampepfl/dotty/pull/19983)
104+
- Fix #18383: Never consider top-level `import`s as unused in the repl. [#20310](https://github.com/lampepfl/dotty/pull/20310)
105+
106+
## Reporting
107+
108+
- Warn if extension receiver already has member [#17543](https://github.com/lampepfl/dotty/pull/17543)
109+
- Deprecation of case class elements [#17911](https://github.com/lampepfl/dotty/pull/17911)
110+
- Support src filter in -WConf (Closes #17635) [#18783](https://github.com/lampepfl/dotty/pull/18783)
111+
- Add note about type mismatch in automatically inserted apply argument [#20023](https://github.com/lampepfl/dotty/pull/20023)
112+
- Make error reporting resilient to exception thrown while reporting [#20158](https://github.com/lampepfl/dotty/pull/20158)
113+
- Remove duplicate comma from Matchable selector warning [#20159](https://github.com/lampepfl/dotty/pull/20159)
114+
- Generalize warnings for top-level calls to Any or AnyRef methods [#20312](https://github.com/lampepfl/dotty/pull/20312)
115+
- Make CheckUnused not slow. [#20321](https://github.com/lampepfl/dotty/pull/20321)
116+
- Bring back ambiguity filter when we report an implicit not found error [#20368](https://github.com/scala/scala3/pull/20368)
117+
- Treat 3.5-migration the same as 3.5 for a warning about implicit priority change [#20436](https://github.com/scala/scala3/pull/20436)
118+
- Priority warning fix alternative [#20487](https://github.com/scala/scala3/pull/20487)
119+
- Use final result type to check selector bound [#20989](https://github.com/scala/scala3/pull/20989)
120+
- Refine implicit priority change warnings [#21045](https://github.com/scala/scala3/pull/21045)
121+
- Backport "Fix healAmbiguous to compareAlternatives with disambiguate = true" to 3.5.0 [#21344](https://github.com/scala/scala3/pull/21344)
122+
123+
## Rewrites
124+
125+
- Patch indentation when removing braces (and other bug fixes in `-indent -rewrite`) [#17522](https://github.com/lampepfl/dotty/pull/17522)
126+
- Extra check to avoid converting block expressions on the rhs of an in… [#20043](https://github.com/lampepfl/dotty/pull/20043)
127+
128+
## Scaladoc
129+
130+
- Fix scaladoc crash on Windows - illegal path character [#20311](https://github.com/lampepfl/dotty/pull/20311)
131+
- Scaladoc: improve refined function types rendering [#20333](https://github.com/lampepfl/dotty/pull/20333)
132+
- Relax font-weight reset [#20348](https://github.com/lampepfl/dotty/pull/20348)
133+
134+
## Scala JS
135+
136+
- Optimize main.js [#20093](https://github.com/lampepfl/dotty/pull/20093)
137+
138+
## Settings
139+
140+
- Lift Scala Settings from experimental to stabilized [#20199](https://github.com/lampepfl/dotty/pull/20199)
141+
142+
## Tooling
143+
144+
- Detect macro dependencies that are missing from the classloader [#20139](https://github.com/lampepfl/dotty/pull/20139)
145+
- Write pipelined tasty in parallel. [#20153](https://github.com/lampepfl/dotty/pull/20153)
146+
- ConsoleReporter sends INFO to stdout [#20328](https://github.com/lampepfl/dotty/pull/20328)
147+
- Bundle scala-cli in scala command [#20351](https://github.com/scala/scala3/pull/20351)
148+
- Adapt the workflow to release on SDKMAN! [#20535](https://github.com/scala/scala3/pull/20535)
149+
- Adapt the release workflow to SIP-46 [#20565](https://github.com/scala/scala3/pull/20565)
150+
- Release .zip instead of .tar.gz for windows in sdkman [#20630](https://github.com/scala/scala3/pull/20630)
151+
- SIP 46 - read classpath from file, remove lib directory in distribution [#20631](https://github.com/scala/scala3/pull/20631)
152+
.gz for windows in sdkman [#20630](https://github.com/scala/scala3/pull/20630)
153+
- Bump scala-cli to 1.4.0 [#20859](https://github.com/scala/scala3/pull/20859)
154+
- Add --skip-cli-updates by default to the scala command [#20900](https://github.com/scala/scala3/pull/20900)
155+
- Use pathing jars in cli commands [#21121](https://github.com/scala/scala3/pull/21121)
156+
- expand classpath of pathing jars in scala_legacy command [#21160](https://github.com/scala/scala3/pull/21160)
157+
- emit generatedNonLocalClass in backend when callback is not enabled [#21186](https://github.com/scala/scala3/pull/21186)
158+
159+
## Transform
160+
161+
- Fix overloaded default methods test in RefChecks [#20218](https://github.com/lampepfl/dotty/pull/20218)
162+
- Fix handling of AppliedType aliases in outerPrefix [#20190](https://github.com/lampepfl/dotty/pull/20190)
163+
- Elide unit binding when beta-reducing [#20085](https://github.com/lampepfl/dotty/pull/20085)
164+
165+
## Typer
166+
167+
- Reduce projections of type aliases with class type prefixes [#19931](https://github.com/lampepfl/dotty/pull/19931)
168+
- Re-lub also hard union types in simplify [#20027](https://github.com/lampepfl/dotty/pull/20027)
169+
- Fix #19789: Merge same TypeParamRef in orDominator [#20090](https://github.com/lampepfl/dotty/pull/20090)
170+
- Allow SAM types to contain match alias refinements [#20092](https://github.com/lampepfl/dotty/pull/20092)
171+
- Don't dealias when deciding which arguments to defer [#20116](https://github.com/lampepfl/dotty/pull/20116)
172+
- Avoid the TypeVar.inst trap [#20160](https://github.com/lampepfl/dotty/pull/20160)
173+
- Avoid crash when superType does not exist after erasure [#20188](https://github.com/lampepfl/dotty/pull/20188)
174+
- Refine overloading and implicit disambiguation [#20084](https://github.com/lampepfl/dotty/pull/20084)
175+
- Refactor constant folding of applications [#20099](https://github.com/lampepfl/dotty/pull/20099)
176+
- Rollback constraints if `isSameType` failed second direction [#20109](https://github.com/lampepfl/dotty/pull/20109)
177+
- Suppress "extension method will never be selected" for overrides [#20164](https://github.com/lampepfl/dotty/pull/20164)
178+
- Allow SAM types to contain multiple refinements [#20172](https://github.com/lampepfl/dotty/pull/20172)
179+
- Normalize when verifying if TypeTestCasts are unchecked [#20258](https://github.com/lampepfl/dotty/pull/20258)
180+
- Avoid stacked thisCall contexts [#20488](https://github.com/scala/scala3/pull/20488)
181+
- fix issue 20901: etaCollapse context bound type [#20910](https://github.com/scala/scala3/pull/20910)
182+
- Fix symbol reference retrivial of `scala.caps.Caps` [#20493](https://github.com/scala/scala3/pull/20493)
183+
184+
# Experimental Changes
185+
186+
- Named tuples second implementation [#19174](https://github.com/lampepfl/dotty/pull/19174)
187+
- Change rules for given prioritization [#19300](https://github.com/lampepfl/dotty/pull/19300)
188+
- Enable experimental mode when experimental feature is imported [#19807](https://github.com/lampepfl/dotty/pull/19807)
189+
- Add message parameter to `@experimental` annotation [#19935](https://github.com/lampepfl/dotty/pull/19935)
190+
- Implement match type amendment: extractors follow aliases and singletons [#20161](https://github.com/lampepfl/dotty/pull/20161)
191+
- Avoid forcing whole package when using -experimental [#20409](https://github.com/scala/scala3/pull/20409)
192+
193+
## Capture Checking
194+
195+
- Carry and check universal capability from parents correctly [#20004](https://github.com/lampepfl/dotty/pull/20004)
196+
- Make parameter types of context functions inferred type trees [#20155](https://github.com/lampepfl/dotty/pull/20155)
197+
- Handle reach capabilities correctly in depedent functions [#20203](https://github.com/lampepfl/dotty/pull/20203)
198+
- Fix the visibility check in `markFree` [#20221](https://github.com/lampepfl/dotty/pull/20221)
199+
- Make inline proxy vals have inferred types [#20241](https://github.com/lampepfl/dotty/pull/20241)
200+
- CC: Give more info when context function parameters leak [#20244](https://github.com/lampepfl/dotty/pull/20244)
201+
- Plug soundness hole for reach capabilities [#20051](https://github.com/lampepfl/dotty/pull/20051)
202+
- Tighten the screws a bit more to seal the soundness hole for reach capabilities [#20056](https://github.com/lampepfl/dotty/pull/20056)
203+
- Drop retains annotations in inferred type trees [#20057](https://github.com/lampepfl/dotty/pull/20057)
204+
- Allow @retains arguments to be context functions [#20232](https://github.com/lampepfl/dotty/pull/20232)
205+
- Fix conversion of this.fld capture refs under separate compilation [#20238](https://github.com/lampepfl/dotty/pull/20238)
206+
207+
## Erased definitions
208+
209+
- Fix "Compiler crash when using CanThrow" [#20210](https://github.com/lampepfl/dotty/pull/20210)
210+
- Only allow erased parameters in erased definitions [#19686](https://github.com/lampepfl/dotty/pull/19686)
211+
212+
## Initialization
213+
214+
- Deprecate `StandardPlugin.init` in favor of `initialize` method taking implicit Context [#20330](https://github.com/lampepfl/dotty/pull/20330)
215+
- Fix missing changesParents in PostTyper [#20062](https://github.com/lampepfl/dotty/pull/20062)
216+
- Special case for next field of colon colon in global init checker [#20281](https://github.com/lampepfl/dotty/pull/20281)
217+
- Extend whitelist in global initialization checker [#20290](https://github.com/lampepfl/dotty/pull/20290)
218+
219+
## Macro Annotations
220+
221+
- Allow macro annotation to transform companion [#19677](https://github.com/lampepfl/dotty/pull/19677)
222+
- Remove experimental `MainAnnotation`/`newMain` (replaced with `MacroAnnotation`) [#19937](https://github.com/lampepfl/dotty/pull/19937)
223+
224+
## Nullability
225+
226+
- Add flexible types to deal with Java-defined signatures under -Yexplicit-nulls [#18112](https://github.com/lampepfl/dotty/pull/18112)
227+
- Fix #20287: Add flexible types to Quotes library [#20293](https://github.com/lampepfl/dotty/pull/20293)
228+
- Add fromNullable to Predef for explicit nulls [#20222](https://github.com/lampepfl/dotty/pull/20222)
229+
230+
231+
# Contributors
232+
233+
Thank you to all the contributors who made this release possible 🎉
234+
235+
According to `git shortlog -sn --no-merges 3.4.2..3.5.0` these are:
236+
237+
```
238+
153 Martin Odersky
239+
53 Eugene Flesselle
240+
41 Jamie Thompson
241+
29 Wojciech Mazur
242+
25 Nicolas Stucki
243+
22 Sébastien Doeraene
244+
18 noti0na1
245+
16 Matt Bovel
246+
13 Guillaume Martres
247+
11 Paweł Marks
248+
10 Hamza REMMAL
249+
9 Yichen Xu
250+
8 Jan Chyb
251+
7 Hamza Remmal
252+
7 Som Snytt
253+
6 Jędrzej Rochala
254+
5 Fengyun Liu
255+
5 dependabot[bot]
256+
3 Mikołaj Fornal
257+
2 Aviv Keller
258+
2 EnzeXing
259+
1 Chris Pado
260+
1 Filip Zybała
261+
1 Georgi Krastev
262+
1 Jisoo Park
263+
1 Katarzyna Marek
264+
1 Lucas Nouguier
265+
1 Lucy Martin
266+
1 Ola Flisbäck
267+
1 Pascal Weisenburger
268+
1 Quentin Bernet
269+
1 Raphael Jolly
270+
1 Seth Tisue
271+
1 Stephane Bersier
272+
1 Tomasz Godzik
273+
1 Yoonjae Jeon
274+
1 aherlihy
275+
1 rochala
276+
1 willerf
277+
278+
```

0 commit comments

Comments
 (0)