Skip to content

Commit 3ac58cf

Browse files
committed
Add changelog for 3.7.0-RC1
1 parent c7032bd commit 3ac58cf

File tree

1 file changed

+214
-0
lines changed

1 file changed

+214
-0
lines changed

changelogs/3.7.0-RC1.md

+214
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
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)

0 commit comments

Comments
 (0)