Skip to content

Commit 1e807fc

Browse files
[chore] Sync main with language-reference-stable changes (#23306)
1 parent 451cc74 commit 1e807fc

File tree

15 files changed

+963
-5
lines changed

15 files changed

+963
-5
lines changed

changelogs/3.7.0-RC1.md

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

changelogs/3.7.0-RC2.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Backported changes
2+
3+
- Backport "Check trailing blank line at EOF for OUTDENT" to 3.7.0 [#22942](https://github.com/scala/scala3/pull/22942)
4+
- Backport "Fail compilation if multiple conflicting top-level private defs/vals are in the same package" to 3.7 [#22932](https://github.com/scala/scala3/pull/22932)
5+
- Backport "Deprecate `Yno-kind-polymorphism`" to 3.7 [#22931](https://github.com/scala/scala3/pull/22931)
6+
- Backport "Revert unconditional lint of Inlined expansion" to 3.7 [#22930](https://github.com/scala/scala3/pull/22930)
7+
- Backport "Bump Scala CLI to v1.7.1 (was v1.7.0)" to 3.7 [#22929](https://github.com/scala/scala3/pull/22929)
8+
- Backport "Fix #22794: Emit the definition of Arrays.newArray even though it's a primitive." to 3.7.0 [#22801](https://github.com/scala/scala3/pull/22801)
9+
10+
# Reverted changes
11+
12+
- Revert "Make overload pruning based on result types less aggressive" in 3.7.0 [#22940](https://github.com/scala/scala3/pull/22940)
13+
14+
# Contributors
15+
16+
Thank you to all the contributors who made this release possible 🎉
17+
18+
According to `git shortlog -sn --no-merges 3.7.0-RC1..3.7.0-RC2` these are:
19+
20+
```
21+
4 Som Snytt
22+
4 Wojciech Mazur
23+
1 Jan Chyb
24+
1 Piotr Chabelski
25+
1 Sébastien Doeraene
26+
1 Yichen Xu
27+
```

changelogs/3.7.0-RC3.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Backported changes
2+
3+
- Backport "Two fixes to NamedTuple pattern matching" to 3.7.0 [#22995](https://github.com/scala/scala3/pull/22995)
4+
- Backport "changes to scala.caps in preparation to make Capability stable" to 3.7.0 [#22967](https://github.com/scala/scala3/pull/22967)
5+
6+
# Contributors
7+
8+
Thank you to all the contributors who made this release possible 🎉
9+
10+
According to `git shortlog -sn --no-merges 3.7.0-RC2..3.7.0-RC3` these are:
11+
12+
```
13+
4 Martin Odersky
14+
2 Wojciech Mazur
15+
1 Natsu Kagami
16+
```

changelogs/3.7.0-RC4.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Backported changes
2+
3+
- Backport "Upgrade to Scala.js 1.19.0." to 3.7 [#23035](https://github.com/scala/scala3/pull/23035)
4+
5+
6+
# Contributors
7+
8+
Thank you to all the contributors who made this release possible 🎉
9+
10+
According to `git shortlog -sn --no-merges 3.7.0-RC3..3.7.0-RC4` these are:
11+
12+
```
13+
2 Sébastien Doeraene
14+
1 Tomasz Godzik
15+
```

0 commit comments

Comments
 (0)