Skip to content

Commit ed9123e

Browse files
committed
Release Scala 3.3.6-RC1
1 parent 98b374a commit ed9123e

File tree

1 file changed

+253
-0
lines changed

1 file changed

+253
-0
lines changed

changelogs/3.3.6-RC1.md

+253
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,253 @@
1+
# Highlights of the release
2+
3+
- Partial Fix #21242: Add REPL init script setting [#22206](https://github.com/scala/scala3/pull/22206)
4+
- Update asm to patched 9.7.1 [#22250](https://github.com/scala/scala3/pull/22250)
5+
- REPL: Add back `:silent` command [#22248](https://github.com/scala/scala3/pull/22248)
6+
- Do not lift annotation arguments [#22035](https://github.com/scala/scala3/pull/22035) and [#22046](https://github.com/scala/scala3/pull/22046)
7+
- Scala 2 forwardport: `-Yprofile-trace` [#19897](https://github.com/scala/scala3/pull/19897)
8+
9+
# Other changes and fixes
10+
11+
## Annotations
12+
13+
- Make sure symbols in annotation trees are fresh before pickling [#22002](https://github.com/scala/scala3/pull/22002)
14+
- Fix Java parsing of annotations on qualified types [#21867](https://github.com/scala/scala3/pull/21867)
15+
- Rename `InlineCopier` to `ConservativeTreeCopier`, use it in `TypeMap`s [#21941](https://github.com/scala/scala3/pull/21941)
16+
- Consider all arguments in Annotations.refersToParamOf [#22001](https://github.com/scala/scala3/pull/22001)
17+
18+
## Backend
19+
20+
- Flag class file collision as error [#19332](https://github.com/scala/scala3/pull/19332)
21+
- Backend computes line number from source of position [#21763](https://github.com/scala/scala3/pull/21763)
22+
23+
## CI
24+
25+
- In CI, use new standard scala/cla-checker action [#22203](https://github.com/scala/scala3/pull/22203)
26+
- Cancel stale CI executions when CI is re-triggered in the same branch/PR [#21974](https://github.com/scala/scala3/pull/21974)
27+
- Drop support for old experimental in community-build [#21729](https://github.com/scala/scala3/pull/21729)
28+
29+
## Coverage
30+
31+
- Fix coverage serialization when encountering macro suspension [#22303](https://github.com/scala/scala3/pull/22303)
32+
33+
## Dependencies
34+
35+
- Sbt 1.10.5 (was 1.9.9) [#20157](https://github.com/scala/scala3/pull/20157)
36+
- Scala 2.13.16 (was .15) [#22386](https://github.com/scala/scala3/pull/22386)
37+
38+
## Desugaring
39+
40+
- Fix #22051: only trust the type application part for case class unapplies [#22099](https://github.com/scala/scala3/pull/22099)
41+
42+
## Documentation
43+
44+
- Fix: typo in documentation for Tuple.zip [#22313](https://github.com/scala/scala3/pull/22313)
45+
- Copyright 2025 [#22326](https://github.com/scala/scala3/pull/22326)
46+
- Documentation only: update Example code linked to obsolete content in macros-spec.md [#22256](https://github.com/scala/scala3/pull/22256)
47+
- Doc fix, removed repeated use of the word with [#21915](https://github.com/scala/scala3/pull/21915)
48+
- Fix typos [#21913](https://github.com/scala/scala3/pull/21913)
49+
50+
## Enums
51+
52+
- Add type parameters derived from enum to default param getters of enum cases [#22157](https://github.com/scala/scala3/pull/22157)
53+
54+
## Extension Methods
55+
56+
- Add regression test for #22320 [#22321](https://github.com/scala/scala3/pull/22321)
57+
- Tweak ExtensionNullifiedByMember [#22268](https://github.com/scala/scala3/pull/22268)
58+
59+
# Infrastructure
60+
61+
- Improve, document and group versioning code in `Build.scala` [#21837](https://github.com/scala/scala3/pull/21837)
62+
- Fix: drop jackson-module-scala from CB [#22353](https://github.com/scala/scala3/pull/22353)
63+
- Fix inductive-implicits benchmark [#22007](https://github.com/scala/scala3/pull/22007)
64+
- Remove tests/pos-with-compiler-cc from VSCode ignored files [#22198](https://github.com/scala/scala3/pull/22198)
65+
- Bump webrick from 1.8.2 to 1.9.1 in /docs/_spec [#22066](https://github.com/scala/scala3/pull/22066)
66+
- Fix Windows OS detection in TraceNameManglingTest [#21937](https://github.com/scala/scala3/pull/21937)
67+
- Don't warn for deprecated Thread.getId() calls in `ChromeTrace` [#21831](https://github.com/scala/scala3/pull/21831)
68+
- Improvement: Remove workaround for Bloop and update docs [#21842](https://github.com/scala/scala3/pull/21842)
69+
- Ensure ChromeTraceTest event timestamps are emitted in correct invervals [#21911](https://github.com/scala/scala3/pull/21911)
70+
- Remove tests/pos-with-compiler-cc [#21956](https://github.com/scala/scala3/pull/21956)
71+
- Shade scalajs.ir under dotty.tools [#21765](https://github.com/scala/scala3/pull/21765)
72+
73+
## Implicits
74+
75+
- Rollback constraints in compareAppliedTypeParamRef [#22339](https://github.com/scala/scala3/pull/22339)
76+
- Apply implicit conversion from derived Conversion instance defined as implicit rather than given [#21785](https://github.com/scala/scala3/pull/21785)
77+
78+
## Imports
79+
80+
- Allow imports nested in packagings to shadow [#21539](https://github.com/scala/scala3/pull/21539)
81+
82+
## Inline
83+
84+
- Fix inline reduction for CaseDef guards with asInstanceOf [#22305](https://github.com/scala/scala3/pull/22305)
85+
- Avoid using the current denotation in NamedType.disambiguate [#21414](https://github.com/scala/scala3/pull/21414)
86+
87+
## Linting
88+
89+
- Append instead of prepending import selectors for the current scope when collecting them in CheckUnused [#22314](https://github.com/scala/scala3/pull/22314)
90+
- Allow discarding "Discarded non-Unit" warnings with `: Unit` [#21927](https://github.com/scala/scala3/pull/21927)
91+
- Disallow open modifier on objects [#21922](https://github.com/scala/scala3/pull/21922)
92+
- Only count associated files of direct members of package objects in dropStale [#22190](https://github.com/scala/scala3/pull/22190)
93+
94+
## Metaprogramming
95+
96+
- Rethrow SuspendExceptions caught in CodeGen phase [#22009](https://github.com/scala/scala3/pull/22009)
97+
- Extend compiletime.testing.typechecks with certain transform phases [#21185](https://github.com/scala/scala3/pull/21185)
98+
99+
# Match Types
100+
101+
- Fix #21841: Check more that an `unapplySeq` on a `NonEmptyTuple` is valid. [#22366](https://github.com/scala/scala3/pull/22366)
102+
- Type avoidance in MT bound inference [#22142](https://github.com/scala/scala3/pull/22142)
103+
104+
105+
## Nullability
106+
107+
- Fix #21619: Refactor NotNullInfo to record every reference which is retracted once. [#21624](https://github.com/scala/scala3/pull/21624)
108+
109+
## Parser
110+
111+
- Fix: don't consider `into` as a soft-modifier [#21924](https://github.com/scala/scala3/pull/21924)
112+
- Fix: Allow `as` as an infix type in non context bound types [#21849](https://github.com/scala/scala3/pull/21849)
113+
- Undo patch of double-block apply [#21982](https://github.com/scala/scala3/pull/21982)
114+
115+
## Pattern Matching
116+
117+
- (Re-)Drop inaccessible subclasses from refineUsingParent [#21930](https://github.com/scala/scala3/pull/21930)
118+
- Fix #21914: Don't project nested wildcard patterns to nullable [#21934](https://github.com/scala/scala3/pull/21934)
119+
- Fix use of class terms in match analysis [#21848](https://github.com/scala/scala3/pull/21848)
120+
- Fix provablyDisjoint handling enum constants with mixins [#21876](https://github.com/scala/scala3/pull/21876)
121+
- Do not consider uninhabited constructors when performing exhaustive match checking [#21750](https://github.com/scala/scala3/pull/21750)
122+
123+
## Pickling
124+
125+
- Avoid orphan param from default arg [#21824](https://github.com/scala/scala3/pull/21824)
126+
- Make sure definition tree has the defined symbol [#21851](https://github.com/scala/scala3/pull/21851)
127+
128+
## Presentation Compiler
129+
130+
- Use new infer expected type for singleton complations [#21421](https://github.com/scala/scala3/pull/21421)
131+
- Fix presentation compiler testcases [#22253](https://github.com/scala/scala3/pull/22253)
132+
- Fix match error in keyword completions [#22138](https://github.com/scala/scala3/pull/22138)
133+
- Add test cases project for presentation compiler [#22101](https://github.com/scala/scala3/pull/22101)
134+
- Improvement: Update mtags to 1.4.1 and backport remaining changes [#21859](https://github.com/scala/scala3/pull/21859)
135+
- Backport changes for the presentation compiler from Metals [#21756](https://github.com/scala/scala3/pull/21756)
136+
137+
## Quotes
138+
139+
- Fix tupleTypeFromSeq for XXL tuples [#21782](https://github.com/scala/scala3/pull/21782)
140+
- Do not bring forward symbols created in transform and backend phases [#21865](https://github.com/scala/scala3/pull/21865)
141+
- Fix #20471: owners of top-level symbols in cached quoted code being incorrect [#21945](https://github.com/scala/scala3/pull/21945)
142+
- Fix for macro annotation that resolves macro-based implicit crashing the compiler [#20353](https://github.com/scala/scala3/pull/20353)
143+
- Allow macro annotations to recover from suspension [#21969](https://github.com/scala/scala3/pull/21969)
144+
145+
# REPL
146+
147+
- REPL: JLine: follow recommendation to use JNI, not JNA; also JLine 3.27.1 (was 3.27.0) [#22205](https://github.com/scala/scala3/pull/22205)
148+
- Fix #9879: allow top-level opaque type definitions in REPL [#21753](https://github.com/scala/scala3/pull/21753)
149+
150+
## Reflection
151+
152+
- Do not return java outline dummy constructor in `primaryConstructor` [#22104](https://github.com/scala/scala3/pull/22104)
153+
154+
## Reporting
155+
156+
- Normalise the types for Type Mismatch Error (E007) [#22337](https://github.com/scala/scala3/pull/22337)
157+
- Do not warn about expected missing positions in quotes.reflect.Symbol [#21677](https://github.com/scala/scala3/pull/21677)
158+
- Add missing error messages to asserts in QuotesImpl [#21852](https://github.com/scala/scala3/pull/21852)
159+
- Don't point to the compiler backlog when a compiler plugin phase crashes [#21887](https://github.com/scala/scala3/pull/21887)
160+
- Nowarn extension matching nonpublic member [#21825](https://github.com/scala/scala3/pull/21825)
161+
- Fix: better error messages when an enum derives from AnyVal [#22236](https://github.com/scala/scala3/pull/22236)
162+
163+
## Scaladoc
164+
165+
- [ISSUE-#19208] If scaladocs on file protocol don't do SPA routing. [#22013](https://github.com/scala/scala3/pull/22013)
166+
- Fix scaladoc graph highlight background color in dark mode [#21814](https://github.com/scala/scala3/pull/21814)
167+
168+
## SemanticDB
169+
170+
- Extract semanticDB for lifted definitions [#21856](https://github.com/scala/scala3/pull/21856)
171+
172+
## Specification
173+
174+
- Align the spec to allow the marker [#22323](https://github.com/scala/scala3/pull/22323)
175+
- Fix #20271: Bring for comprehension spec up to date. [#21702](https://github.com/scala/scala3/pull/21702)
176+
- Spec: Integrate the specification for match types. [#22164](https://github.com/scala/scala3/pull/22164)
177+
178+
## Settings
179+
180+
- Limit exposure to ConcurrentModificationException when sys props are replaced or mutated [#22180](https://github.com/scala/scala3/pull/22180)
181+
182+
# Tooling
183+
184+
- Connect the input to the compiler in `sbt` [#22336](https://github.com/scala/scala3/pull/22336)
185+
- Ensure to escape characters before constructing JSON profile trace [#21872](https://github.com/scala/scala3/pull/21872)
186+
- Fix: correctly print literal types in the refined printer [#22351](https://github.com/scala/scala3/pull/22351)
187+
188+
## Transform
189+
190+
- Attempt to beta reduce only if parameters and arguments have same shape [#21970](https://github.com/scala/scala3/pull/21970)
191+
- Fix enclosingClass from returning refinement classes [#21411](https://github.com/scala/scala3/pull/21411)
192+
- Fix #22226: Use `classOf[BoxedUnit]` for Unit array in `ArrayConstructors`. [#22238](https://github.com/scala/scala3/pull/22238)
193+
- Fix typo in `allTermArguments` [#21836](https://github.com/scala/scala3/pull/21836)
194+
195+
## Typer
196+
197+
- Fixes for isLegalPrefix change [#22241](https://github.com/scala/scala3/pull/22241)
198+
- Resolve name when named imp is behind wild imps [#21888](https://github.com/scala/scala3/pull/21888)
199+
- Do not crash when typing a closure with unknown type, since it can occur for erroneous input [#21178](https://github.com/scala/scala3/pull/21178)
200+
- Allow autotupling if fn's param is a type param [#21741](https://github.com/scala/scala3/pull/21741)
201+
- Fix ctx implicits under case unapplySeq [#21748](https://github.com/scala/scala3/pull/21748)
202+
- Avoid using ExplainingTypeComparer in regular code [#21583](https://github.com/scala/scala3/pull/21583)
203+
- Avoid erasure/preErasure issues around Any in transformIsInstanceOf [#21647](https://github.com/scala/scala3/pull/21647)
204+
- Remove tvars introduced while testing normalizedCompatible [#21466](https://github.com/scala/scala3/pull/21466)
205+
206+
## Miscellaneous
207+
208+
- Replace deprecated AnyRefMap [#22230](https://github.com/scala/scala3/pull/22230)
209+
210+
# Contributors
211+
212+
Thank you to all the contributors who made this release possible 🎉
213+
214+
According to git shortlog -sn --no-merges 3.3.5..3.3.6-RC1 these are:
215+
216+
```
217+
63 Tomasz Godzik
218+
30 Dale Wijnand
219+
26 Wojciech Mazur
220+
20 noti0na1
221+
15 Hamza Remmal
222+
15 Matt Bovel
223+
10 Jan Chyb
224+
9 Kacper Korban
225+
6 Som Snytt
226+
4 Sébastien Doeraene
227+
3 HarrisL2
228+
3 Jamie Thompson
229+
3 Martin Odersky
230+
3 Seth Tisue
231+
3 kasiaMarek
232+
2 Friendseeker
233+
2 João Ferreira
234+
2 Kenji Yoshida
235+
2 Natsu Kagami
236+
2 Pascal Weisenburger
237+
2 dependabot[bot]
238+
1 Adrien Piquerez
239+
1 Alden Torres
240+
1 Alexander
241+
1 Georgi Krastev
242+
1 Guillaume Martres
243+
1 Jentsch
244+
1 Lunfu Zhong
245+
1 Mathias
246+
1 Michał Pałka
247+
1 Oleg Zenzin
248+
1 Oliver Bračevac
249+
1 friendseeker
250+
1 philippus
251+
1 tgodzik
252+
1 xiaoshihou
253+
```

0 commit comments

Comments
 (0)