Skip to content

Commit 5a5bed9

Browse files
committed
Add changelog for 3.7.0
1 parent dd0867f commit 5a5bed9

File tree

1 file changed

+279
-0
lines changed

1 file changed

+279
-0
lines changed

changelogs/3.7.0.md

+279
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
1+
# Highlights of the release
2+
3+
- Add `@scala.annotation.internal.preview` annotation and `-preview` flag. [#22317](https://github.com/scala/scala3/pull/22317)
4+
- Make SIP-52 `@publicInBinary` a stable feature in 3.7 [#22591](https://github.com/scala/scala3/pull/22591)
5+
- Make SIP-58 - `Named Tuples` a stable feature in 3.7 [#22753](https://github.com/scala/scala3/pull/22753)
6+
- Make SIP-62 - `Better Fors` a preview feature in 3.7 [#22776](https://github.com/scala/scala3/pull/22776)
7+
- Implement SIP-61 `@unroll` annotation as experimental [#21693](https://github.com/scala/scala3/pull/21693)
8+
- Upgrade Scala 2 Standard Library to 2.13.16 [#22386](https://github.com/scala/scala3/pull/22386)
9+
- Upgrade Scala.js to 1.19.0 [#23026](https://github.com/scala/scala3/pull/23026)
10+
- Upgrade Scala CLI to 1.7.1 [#22843](https://github.com/scala/scala3/pull/22843)
11+
- Expression Compiler is now part of Scala 3 compiler [#22597](https://github.com/scala/scala3/pull/22597)
12+
- Quotes API: Added `apply` methods to import selectors [#22457](https://github.com/scala/scala3/pull/22457)
13+
- Quotes API: Implement experimental `summonIgnoring` method [#22417](https://github.com/scala/scala3/pull/22417)
14+
- Quotes API: Add class parameters, flags, and privateWithin and annotations to experimental `newClass` methods [#21880](https://github.com/scala/scala3/pull/21880)
15+
- Experimental: Capture Calculus - Inferring `tracked` modifier [#21628](https://github.com/scala/scala3/pull/21628)
16+
- Presentation Compiler: Show inferred type on holes in hover [#21423](https://github.com/scala/scala3/pull/21423)
17+
- JVM Backend: Fix #15736 blocking Scala 3 on Android [#22632](https://github.com/scala/scala3/pull/22632)
18+
- REPL: add flag to quit after evaluating init script [#22636](https://github.com/scala/scala3/pull/22636)
19+
- REPL: implement :jar (deprecate :require) [#22343](https://github.com/scala/scala3/pull/22343)
20+
- Linting: Improvements to -Wunused and -Wconf [#20894](https://github.com/scala/scala3/pull/20894)
21+
- Implicit parameters warn at call site without `using` keyword [#22441](https://github.com/scala/scala3/pull/22441)
22+
- Support for dependent case classes [#21698](https://github.com/scala/scala3/pull/21698)
23+
- Deprecate `Yno-kind-polymorphism` [#22814](https://github.com/scala/scala3/pull/22814)
24+
25+
# Other changes and fixes
26+
27+
## Annotations
28+
29+
- Lift arguments of explicitly constructed annotations [#22553](https://github.com/scala/scala3/pull/22553)
30+
- Fix copy of annotation on `@main` methods [#22582](https://github.com/scala/scala3/pull/22582)
31+
- `@publicInBinary` has now effect on secondary constructors [#22630](https://github.com/scala/scala3/pull/22630)
32+
- Fix mapping of annotations [#22407](https://github.com/scala/scala3/pull/22407)
33+
34+
## Backend: Scala.js
35+
36+
- Emit `js.NewArray` IR nodes when possible. [#22446](https://github.com/scala/scala3/pull/22446)
37+
- Fix #22794: Emit the definition of Arrays.newArray even though it's a primitive [#22797](https://github.com/scala/scala3/pull/22797)
38+
39+
## Classpath
40+
41+
- Fix empty ClassPath attribute in one or more classpath jars causes crash [#22462](https://github.com/scala/scala3/pull/22462)
42+
43+
## Documentation
44+
45+
- Improve the usage of inclusive language [#22360](https://github.com/scala/scala3/pull/22360)
46+
47+
## Erasure
48+
49+
- Handle type aliases in contextFunctionResultTypeAfter [#21517](https://github.com/scala/scala3/pull/21517)
50+
- Align erasure of `Array[Nothing]` and `Array[Null]` with Scala 2 [#22517](https://github.com/scala/scala3/pull/22517)
51+
52+
## Desugering
53+
54+
- Under `betterFors` don't drop the trailing `map` if it would result in a different type (also drop `_ => ()`) [#22619](https://github.com/scala/scala3/pull/22619)
55+
56+
## Experimental: Capture Checking
57+
58+
- Canonicalize capture variable subtype comparisons [#22299](https://github.com/scala/scala3/pull/22299)
59+
- Permit Capture Refs for Uninitialized Type and Term Params in BiTypeMap [#22451](https://github.com/scala/scala3/pull/22451)
60+
- Fix maximal capability handling and expand aliases [#22341](https://github.com/scala/scala3/pull/22341)
61+
62+
## Experimental: Modularity
63+
64+
- Widen skolem types when adding parent refinements [#22488](https://github.com/scala/scala3/pull/22488)
65+
66+
## Experimental: Global Initialization Checker
67+
68+
- Refactor the abstract domain of global init checker to compile http4s [#22179](https://github.com/scala/scala3/pull/22179)
69+
- Fix global init checking crash when using a value defined in by-name closure [#22625](https://github.com/scala/scala3/pull/22625)
70+
71+
## Experimentals
72+
73+
- Expand value references to packages to their underlying package objects [#22011](https://github.com/scala/scala3/pull/22011)
74+
75+
## Implicits
76+
77+
- Restrict implicit args to using [#22458](https://github.com/scala/scala3/pull/22458)
78+
79+
## Linting
80+
81+
- Suppress spurious Suppression [#22383](https://github.com/scala/scala3/pull/22383)
82+
- CheckUnused checks span.exists before testing its parts [#22504](https://github.com/scala/scala3/pull/22504)
83+
- Don't warn retainedBody [#22510](https://github.com/scala/scala3/pull/22510)
84+
- Handle Typeable [#22663](https://github.com/scala/scala3/pull/22663)
85+
- Nowarn public implicit val class params [#22664](https://github.com/scala/scala3/pull/22664)
86+
- Exclude synthetic this.m, Any.m from import lookup [#22695](https://github.com/scala/scala3/pull/22695)
87+
- Warn unused member of anonymous class [#22729](https://github.com/scala/scala3/pull/22729)
88+
- Ignore params to default arg getters [#22749](https://github.com/scala/scala3/pull/22749)
89+
- Lazy val def member is pattern var [#22750](https://github.com/scala/scala3/pull/22750)
90+
- Restore resolving prefixes of implicit Ident [#22751](https://github.com/scala/scala3/pull/22751)
91+
- No warning for parameter of overriding method [#22757](https://github.com/scala/scala3/pull/22757)
92+
- Dealias before checking for member in lint [#22708](https://github.com/scala/scala3/pull/22708)
93+
- Warn on bad extensions of aliases [#22362](https://github.com/scala/scala3/pull/22362)
94+
- Warn universal extensions on opaque types [#22502](https://github.com/scala/scala3/pull/22502)
95+
- Discourage default arg for extension receiver [#22492](https://github.com/scala/scala3/pull/22492)
96+
- Rename on import is never wildcard [#22712](https://github.com/scala/scala3/pull/22712)
97+
- Collect nowarn symbols instead of skipping them [#22766](https://github.com/scala/scala3/pull/22766)
98+
- Revert unconditional lint of Inlined expansion [#22815](https://github.com/scala/scala3/pull/22815)
99+
100+
## Match Types
101+
102+
- Handle NoType in TypeComparer.disjointnessBoundary [#21520](https://github.com/scala/scala3/pull/21520)
103+
104+
## Named Tuples
105+
106+
- Special case NamedTuple.From for arguments derived from Tuple [#22449](https://github.com/scala/scala3/pull/22449)
107+
- Generate mirrors for named tuples [#22469](https://github.com/scala/scala3/pull/22469)
108+
- Two fixes to NamedTuple pattern matching [#22953](https://github.com/scala/scala3/pull/22953)
109+
110+
## Opaque Types
111+
112+
- Fix stack overflow errors when generating opaque type proxies [#22479](https://github.com/scala/scala3/pull/22479)
113+
- Fix inline proxy generation for opaque types referencing other opaque types [#22381](https://github.com/scala/scala3/pull/22381)
114+
- Fix opaque types leaking rhs when inlined and found in type params (and a related stale symbol issue) [#22655](https://github.com/scala/scala3/pull/22655)
115+
116+
## Overloading
117+
118+
- Make overload pruning based on result types less aggressive [#21744](https://github.com/scala/scala3/pull/21744)
119+
- Fail compilation if multiple conflicting top-level private defs/vals are in the same package [#22759](https://github.com/scala/scala3/pull/22759)
120+
121+
## Parser
122+
123+
- Fix annotations being not expected in the middle of an array type by java parser [#22391](https://github.com/scala/scala3/pull/22391)
124+
- No outdent at eof [#22435](https://github.com/scala/scala3/pull/22435)
125+
- Allow observing an indent after conditional [#22611](https://github.com/scala/scala3/pull/22611)
126+
- Correctly detect colon lambda eol indent for optional brace of argument [#22477](https://github.com/scala/scala3/pull/22477)
127+
128+
## Pattern Matching
129+
130+
- Avoid crash in uninhab check in Space [#22601](https://github.com/scala/scala3/pull/22601)
131+
- Account for named tuples in space subtraction [#22658](https://github.com/scala/scala3/pull/22658)
132+
- Check exhaustivity of any case class [#22604](https://github.com/scala/scala3/pull/22604)
133+
134+
## Presentation Compiler
135+
136+
- Add enum type param support in sourceSymbol [#18603](https://github.com/scala/scala3/pull/18603)
137+
- Map name position to desugared version of named context bound [#22374](https://github.com/scala/scala3/pull/22374)
138+
- Hover and go to definition for named tuples [#22202](https://github.com/scala/scala3/pull/22202)
139+
- Completions: do not complete package [#20532](https://github.com/scala/scala3/pull/20532)
140+
- Print parens for single method argument only if a direct tuple type [#21510](https://github.com/scala/scala3/pull/21510)
141+
- Improvement: use heuristic to figure out `nameSpan` if `pointDelta` too big [#22484](https://github.com/scala/scala3/pull/22484)
142+
- Fix inferredTypeEdits for symbols [#22485](https://github.com/scala/scala3/pull/22485)
143+
- Fix: Only fallback to the definition of a synthetic valdef if it is zero extent [#22551](https://github.com/scala/scala3/pull/22551)
144+
- Better LSP completions inside of backticks [#22555](https://github.com/scala/scala3/pull/22555)
145+
- Don't search for members in pc info when irrelevant [#22674](https://github.com/scala/scala3/pull/22674)
146+
- Backport from Metals [#22426](https://github.com/scala/scala3/pull/22426)
147+
- Backport from Metals [#22491](https://github.com/scala/scala3/pull/22491)
148+
- Backport from Metals [#22665](https://github.com/scala/scala3/pull/22665)
149+
150+
## Runner
151+
152+
- Upgrade Scala CLI to [1.7.1 highlights](https://github.com/VirtusLab/scala-cli/releases/tag/v1.7.1)
153+
- Switch to scalameta/scalafmt images of scalafmt 3.9.1+ [#3502](https://github.com/VirtusLab/scala-cli/pull/3502)
154+
- Support the `--test` command line option for `run` subcommand [#3519](https://github.com/VirtusLab/scala-cli/pull/3519)
155+
- Support the `--test` command line option for `package` subcommand [#3519](https://github.com/VirtusLab/scala-cli/pull/3519)
156+
- Detect objects with main class in scripts [#3479](https://github.com/VirtusLab/scala-cli/pull/3479)
157+
- Support for Scala.js 1.18.2 [#3454](https://github.com/VirtusLab/scala-cli/pull/3454)
158+
- Support for Scala Native 0.5.7 [#3527](https://github.com/VirtusLab/scala-cli/pull/3527)
159+
- Add support for running a main method from the test scope [#3502](https://github.com/VirtusLab/scala-cli/pull/3502)
160+
161+
## Quotes
162+
163+
- Add a check for correct Array shape in quotes.reflect.ClassOfConstant [#22033](https://github.com/scala/scala3/pull/22033)
164+
- Fix issue with static `this` references erroring in quoted code [#22618](https://github.com/scala/scala3/pull/22618)
165+
- Fix #21721: make case TypeBlock(_,_) not match non-type Block [#21722](https://github.com/scala/scala3/pull/21722)
166+
- Make Ref.apply() return trees usable in the largest scope possible [#22240](https://github.com/scala/scala3/pull/22240)
167+
- Make sure Block does not incorrectly match a TypeBlock [#22716](https://github.com/scala/scala3/pull/22716)
168+
- Do not approximate prefixes when using memberType in reflect API [#22448](https://github.com/scala/scala3/pull/22448)
169+
- Bring back pattern match exhaustivity checking for macros [#22622](https://github.com/scala/scala3/pull/22622)
170+
171+
## REPL
172+
173+
- REPL: JLine 3.29.0 (was 3.27.1) [#22679](https://github.com/scala/scala3/pull/22679)
174+
- Repl: emit warning for the `:sh` command [#22694](https://github.com/scala/scala3/pull/22694)
175+
- Add warning for :kind command [#22572](https://github.com/scala/scala3/pull/22572)
176+
- Check trailing blank line at EOF for OUTDENT [#22855](https://github.com/scala/scala3/pull/22855)
177+
178+
## Reporting
179+
180+
- Filter help renders box border [#22434](https://github.com/scala/scala3/pull/22434)
181+
- Register nowarn when inlining [#22682](https://github.com/scala/scala3/pull/22682)
182+
- Rule out exports of member of the current class [#22545](https://github.com/scala/scala3/pull/22545)
183+
184+
## Standard Library
185+
186+
- Changes in preparation to make `caps.Capability` stable [#22849](https://github.com/scala/scala3/pull/22849)
187+
- Mitigate change in status of scala.caps [#22956](https://github.com/scala/scala3/pull/22956)
188+
189+
## Scaladoc
190+
191+
- Render `@deprecated` correctly even when named arguments weren't used [#21925](https://github.com/scala/scala3/pull/21925)
192+
- Remove DRI from Scaladoc warnings [#22330](https://github.com/scala/scala3/pull/22330)
193+
194+
## SemanticDB
195+
196+
- Don't add `()` to semanticdb symbol for java variables [#22573](https://github.com/scala/scala3/pull/22573)
197+
- Fix compiler crash when using betasty with missing java classfiles [#22599](https://github.com/scala/scala3/pull/22599)
198+
199+
## Transform
200+
201+
- Check only stable qual for import prefix [#22633](https://github.com/scala/scala3/pull/22633)
202+
- Treat static vals as enclosures in lambdalift [#22452](https://github.com/scala/scala3/pull/22452)
203+
- Record calls to constructors in lambdaLift [#22487](https://github.com/scala/scala3/pull/22487)
204+
- Only check logicalOwners for methods, and not for classes, when looking for proxies [#22356](https://github.com/scala/scala3/pull/22356)
205+
- Add error-checking when fetching rhs of trees from TASTy [#22565](https://github.com/scala/scala3/pull/22565)
206+
207+
## Typer
208+
209+
- Root of Java select must be class or rooted package [#21800](https://github.com/scala/scala3/pull/21800)
210+
- Check if a prefix is valid before selecting from a type [#22368](https://github.com/scala/scala3/pull/22368)
211+
- Preserve hard unions in widenSingletons [#22369](https://github.com/scala/scala3/pull/22369)
212+
- Constructor proxy is restricted if class is protected [#22563](https://github.com/scala/scala3/pull/22563)
213+
- Constructor companion gets privateWithin [#22627](https://github.com/scala/scala3/pull/22627)
214+
- Revert lambda cleanup [#22697](https://github.com/scala/scala3/pull/22697)
215+
- Avoid infinite recursion when looking for suggestions [#22361](https://github.com/scala/scala3/pull/22361)
216+
- Fix cyclic check, regardless of definition order [#22342](https://github.com/scala/scala3/pull/22342)
217+
- Avoid inf recursion in provablyDisjointClasses [#22489](https://github.com/scala/scala3/pull/22489)
218+
219+
## Value Classes
220+
221+
- Allow private members when computing the denotation of a NamedType [#22549](https://github.com/scala/scala3/pull/22549)
222+
223+
## Other changes
224+
225+
- Remove locale dependent FileSystemException check [#21633](https://github.com/scala/scala3/pull/21633)
226+
227+
# Contributors
228+
229+
Thank you to all the contributors who made this release possible 🎉
230+
231+
According to `git shortlog -sn --no-merges 3.6.4..3.7.0` these are:
232+
233+
```
234+
63 Martin Odersky
235+
47 Som Snytt
236+
33 Adrien Piquerez
237+
32 Hamza Remmal
238+
29 Wojciech Mazur
239+
19 aherlihy
240+
19 kasiaMarek
241+
16 Jan Chyb
242+
13 Dale Wijnand
243+
11 Kacper Korban
244+
10 EnzeXing
245+
9 Sébastien Doeraene
246+
7 Guillaume Martres
247+
7 Matt Bovel
248+
7 Oliver Bračevac
249+
7 noti0na1
250+
5 HarrisL2
251+
5 Jamie Thompson
252+
5 dependabot[bot]
253+
4 Joel Wilsson
254+
4 Piotr Chabelski
255+
4 Seth Tisue
256+
3 Roman Janusz
257+
3 anna herlihy
258+
2 David Hua
259+
2 Tomasz Godzik
260+
2 Yichen Xu
261+
1 Alec Theriault
262+
1 Daisy Li
263+
1 Daniel Thoma
264+
1 Dmitrii Naumenko
265+
1 Felix Herrmann
266+
1 He-Pin(kerr)
267+
1 João Ferreira
268+
1 Jędrzej Rochala
269+
1 Katarzyna Marek
270+
1 Kenji Yoshida
271+
1 Natsu Kagami
272+
1 Niklas Fiekas
273+
1 Rocco Mathijn Andela
274+
1 Vadim Chelyshov
275+
1 adpi2
276+
1 fan-tom
277+
1 philwalk
278+
1 rochala
279+
```

0 commit comments

Comments
 (0)