Skip to content

Commit 3997e79

Browse files
committedFeb 14, 2024
Add changelog for 3.4.0
1 parent 97a4238 commit 3997e79

File tree

1 file changed

+474
-0
lines changed

1 file changed

+474
-0
lines changed
 

‎changelogs/3.4.0.md

Lines changed: 474 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,474 @@
1+
# Highlights of the release
2+
3+
- Make polymorphic functions more efficient and expressive [#17548](https://github.com/lampepfl/dotty/pull/17548)
4+
- SIP-56: Better foundations for match types [#18262](https://github.com/lampepfl/dotty/pull/18262)
5+
- Make SIP 54 (Multi-Source Extension Overloads) a standard feature [#17441](https://github.com/lampepfl/dotty/pull/17441)
6+
- Value parameter inference for polymorphic lambdas [#18041](https://github.com/lampepfl/dotty/pull/18041)
7+
- Add `@publicInBinary` annotation and `-WunstableInlineAccessors` linting flag [#18402](https://github.com/lampepfl/dotty/pull/18402)
8+
- Stabilize Quotes `defn.PolyFunction` [#18480](https://github.com/lampepfl/dotty/pull/18480)
9+
- Stabilize Quotes `Flags.AbsOverride` [#18482](https://github.com/lampepfl/dotty/pull/18482)
10+
- Add `-experimental` compiler flags [#18571](https://github.com/lampepfl/dotty/pull/18571)
11+
- Stabilize SIP-53 (quote pattern explicit type variable syntax) [#18574](https://github.com/lampepfl/dotty/pull/18574)
12+
- Add reflect TypeRepr.dealiasKeepOpaques [#18583](https://github.com/lampepfl/dotty/pull/18583)
13+
- Add attributes section to TASTy and use it for Stdlib TASTy [#18599](https://github.com/lampepfl/dotty/pull/18599)
14+
- Error when reading class file with unknown newer jdk version [#18618](https://github.com/lampepfl/dotty/pull/18618)
15+
- Add support for xsbti.compile.CompileProgress [#18739](https://github.com/lampepfl/dotty/pull/18739)
16+
- Improve type inference for functions like fold [#18780](https://github.com/lampepfl/dotty/pull/18780)
17+
- Improve error message for mismatched tasty versions, allow configuration of header unpickler [#18828](https://github.com/lampepfl/dotty/pull/18828)
18+
- In 3.4 make refutable patterns in a for comprehension an error [#18842](https://github.com/lampepfl/dotty/pull/18842)
19+
- Disallow use of PolyFunction in user code [#18920](https://github.com/lampepfl/dotty/pull/18920)
20+
- Store source file in TASTY attributes [#18948](https://github.com/lampepfl/dotty/pull/18948)
21+
- First step to pipelining support - enable reading Java symbols from TASTy [#19074](https://github.com/lampepfl/dotty/pull/19074)
22+
- Activate constrainResult fix in 3.4 [#19253](https://github.com/lampepfl/dotty/pull/19253)
23+
- Parallelise JVM backend - Scala 2 port [#15392](https://github.com/lampepfl/dotty/pull/15392)
24+
- Avoid generating given definitions that loop [#19282](https://github.com/lampepfl/dotty/pull/19282)
25+
26+
## Deprecation warnings for old syntax
27+
28+
- `_` type wildcards [#18813](https://github.com/lampepfl/dotty/pull/18813)
29+
- `private[this]` [#18819](https://github.com/lampepfl/dotty/pull/18819)
30+
- `var x = _` [#18821](https://github.com/lampepfl/dotty/pull/18821)
31+
- `with` as a type operator [#18837](https://github.com/lampepfl/dotty/pull/18837)
32+
- `xs: _*` varargs [#18872](https://github.com/lampepfl/dotty/pull/18872)
33+
- trailing `_` to force eta expansion [#18926](https://github.com/lampepfl/dotty/pull/18926)
34+
- Make explicit arguments for context bounds an error from 3.5 [#19316](https://github.com/lampepfl/dotty/pull/19316)
35+
36+
# Other changes and fixes
37+
38+
## Backend
39+
40+
- Count size of parameters for platform limit check [#18464](https://github.com/lampepfl/dotty/pull/18464)
41+
- Don't emit line number for synthetic unit value [#18717](https://github.com/lampepfl/dotty/pull/18717)
42+
- Avoid too eager transform of $outer for lhs & accessor rhs [#18949](https://github.com/lampepfl/dotty/pull/18949)
43+
- Make more anonymous functions static [#19251](https://github.com/lampepfl/dotty/pull/19251)
44+
- Fix deadlock in initialization of CoreBTypes using Lazy container [#19298](https://github.com/lampepfl/dotty/pull/19298)
45+
- Fix #18769: Allow HK type args in Java signatures. [#18883](https://github.com/lampepfl/dotty/pull/18883)
46+
- Loading symbols from TASTy files directly [#17594](https://github.com/lampepfl/dotty/pull/17594)
47+
- Use dedicated equals method for univerval equality of chars [#18770](https://github.com/lampepfl/dotty/pull/18770)
48+
49+
## Erasure
50+
51+
- Get generic signature of fields entered after erasure from their accessor [#19207](https://github.com/lampepfl/dotty/pull/19207)
52+
- Detect case where two alternatives are the same after widening ExprTypes [#18787](https://github.com/lampepfl/dotty/pull/18787)
53+
- Improve erased params logic [#18433](https://github.com/lampepfl/dotty/pull/18433)
54+
55+
## Experimental: Capture Checking
56+
57+
- Fix capture set variable installation in Setup [#18885](https://github.com/lampepfl/dotty/pull/18885)
58+
- Don't follow opaque aliases when transforming sym info for cc [#18929](https://github.com/lampepfl/dotty/pull/18929)
59+
- Reset `comparersInUse` to zero in `ContextState.reset` [#18915](https://github.com/lampepfl/dotty/pull/18915)
60+
- Special handling of experimental.captureChecking import [#17427](https://github.com/lampepfl/dotty/pull/17427)
61+
- Change handling of curried function types in capture checking [#18131](https://github.com/lampepfl/dotty/pull/18131)
62+
- Fix #18246: correctly compute capture sets in `TypeComparer.glb` [#18254](https://github.com/lampepfl/dotty/pull/18254)
63+
- New capture escape checking based on levels [#18463](https://github.com/lampepfl/dotty/pull/18463)
64+
- A more robust scheme for resetting denotations after Recheck [#18534](https://github.com/lampepfl/dotty/pull/18534)
65+
- A more flexible scheme for handling the universal capability [#18699](https://github.com/lampepfl/dotty/pull/18699)
66+
- Fix potential soundness hole when adding references to a mapped capture set [#18758](https://github.com/lampepfl/dotty/pull/18758)
67+
- Alternative scheme for cc encapsulation [#18899](https://github.com/lampepfl/dotty/pull/18899)
68+
- Make reach refinement shallow [#19171](https://github.com/lampepfl/dotty/pull/19171)
69+
70+
## F-bounds
71+
72+
- Don't check bounds of Java applications in Java units [#18054](https://github.com/lampepfl/dotty/pull/18054)
73+
74+
## GADTs
75+
76+
- Avoid embedding SelectionProtos in Conversions [#17755](https://github.com/lampepfl/dotty/pull/17755)
77+
- Freeze constraints while calculating GADT full bounds [#18222](https://github.com/lampepfl/dotty/pull/18222)
78+
79+
## Implicits
80+
81+
- Followup fix to transparent inline conversion [#18130](https://github.com/lampepfl/dotty/pull/18130)
82+
- Select local implicits over name-imported over wildcard imported [#18203](https://github.com/lampepfl/dotty/pull/18203)
83+
- Fix how implicit candidates are combined [#18321](https://github.com/lampepfl/dotty/pull/18321)
84+
- Improve error message about missing type of context function parameter [#18788](https://github.com/lampepfl/dotty/pull/18788)
85+
- Support implicit arguments before extractor method [#18671](https://github.com/lampepfl/dotty/pull/18671)
86+
- Tweak convertible implicits fix [#18727](https://github.com/lampepfl/dotty/pull/18727)
87+
- Turn given loop prevention on for -source future [#19392](https://github.com/lampepfl/dotty/pull/19392)
88+
- Fix algorithm to prevent recursive givens [#19411](https://github.com/lampepfl/dotty/pull/19411)
89+
- Handle default implicits to context parameters under -3.4-migration [#19512] (https://github.com/lampepfl/dotty/pull/19512)
90+
91+
## Incremental Compilation
92+
93+
- Make incremental compilation aware of synthesized mirrors [#18310](https://github.com/lampepfl/dotty/pull/18310)
94+
95+
## Inference
96+
97+
- Honour hard unions in lubbing and param replacing [#18680](https://github.com/lampepfl/dotty/pull/18680)
98+
99+
## Infrastructure
100+
101+
- Use -Yscala2-library-tasty to add Scala 2 lib TASTY to scalac (internal only) [#18613](https://github.com/lampepfl/dotty/pull/18613)
102+
- Rename `stdlib-bootstrapped-tasty` to `scala2-library-tasty` [#18615](https://github.com/lampepfl/dotty/pull/18615)
103+
- Fix #19286: Freeze rubygems-update at < 3.5.0. [#19288](https://github.com/lampepfl/dotty/pull/19288)
104+
105+
## Initialization
106+
107+
- Fix #17997: Handle intersection type as this type of super type [#18069](https://github.com/lampepfl/dotty/pull/18069)
108+
- Add test for issue #17997 affecting the global object initialization checker [#18141](https://github.com/lampepfl/dotty/pull/18141)
109+
- Fix i18624 and add test case for it [#18859](https://github.com/lampepfl/dotty/pull/18859)
110+
- Treat new Array(0) as immutable [#19192](https://github.com/lampepfl/dotty/pull/19192)
111+
- Fix #18407: Ignore Quote/Slice in init checker [#18848](https://github.com/lampepfl/dotty/pull/18848)
112+
- Check safe initialization of static objects [#16970](https://github.com/lampepfl/dotty/pull/16970)
113+
- Pattern match support in checking global objects [#18127](https://github.com/lampepfl/dotty/pull/18127)
114+
- Fix crash in global object initialization checker when select target has no source [#18627](https://github.com/lampepfl/dotty/pull/18627)
115+
- Fix warning underlining in global init checker [#18668](https://github.com/lampepfl/dotty/pull/18668)
116+
- Fix i18629 [#18839](https://github.com/lampepfl/dotty/pull/18839)
117+
- I18628 [#18841](https://github.com/lampepfl/dotty/pull/18841)
118+
- Make safe init checker skip global objects [#18906](https://github.com/lampepfl/dotty/pull/18906)
119+
- Handle local lazy vals properly [#18998](https://github.com/lampepfl/dotty/pull/18998)
120+
121+
## Inline
122+
123+
- Fix regression: inline match crash when rhs uses private inlined methods [#18595](https://github.com/lampepfl/dotty/pull/18595)
124+
- Add structural classes of dynamicApply before inlining [#18766](https://github.com/lampepfl/dotty/pull/18766)
125+
- Set missing expansion span for copied inlined node [#18229](https://github.com/lampepfl/dotty/pull/18229)
126+
- Fix `callTrace` of inlined methods [#18738](https://github.com/lampepfl/dotty/pull/18738)
127+
128+
## Linting
129+
130+
- Keep tree of type ascriptions of quote pattern splices [#18412](https://github.com/lampepfl/dotty/pull/18412)
131+
- Fix false positive in WUnused for renamed path-dependent imports [#18468](https://github.com/lampepfl/dotty/pull/18468)
132+
- Fix false positive in WUnused for renamed path-dependent imports (2) [#18617](https://github.com/lampepfl/dotty/pull/18617)
133+
- Fix wunused false positive on CanEqual [#18641](https://github.com/lampepfl/dotty/pull/18641)
134+
- Implement -Xlint:private-shadow, type-parameter-shadow [#17622](https://github.com/lampepfl/dotty/pull/17622)
135+
- Fix: reversed wconf parsing order to mirror scala 2 [#18503](https://github.com/lampepfl/dotty/pull/18503)
136+
- Revert Fix false positive in WUnused for renamed path-dependent imports [#18514](https://github.com/lampepfl/dotty/pull/18514)
137+
138+
## Macro Annotations
139+
140+
- Enter missing symbols generated by the MacroAnnotation expansion [#18826](https://github.com/lampepfl/dotty/pull/18826)
141+
142+
## Match Types
143+
144+
- Allow Tuple.Head and Tuple.Tail to work with EmptyTuple [#17189](https://github.com/lampepfl/dotty/pull/17189)
145+
- Fix match type reduction with avoided types [#18043](https://github.com/lampepfl/dotty/pull/18043)
146+
- Strip LazyRef before calling simplified, in MT reduction [#18218](https://github.com/lampepfl/dotty/pull/18218)
147+
- Fix MT separate compilation bug [#18398](https://github.com/lampepfl/dotty/pull/18398)
148+
- Do not show deprecation warning for `_` in type match case [#18887](https://github.com/lampepfl/dotty/pull/18887)
149+
150+
## Nullability
151+
152+
- Improve logic when to emit pattern type error [#18093](https://github.com/lampepfl/dotty/pull/18093)
153+
- Allow nullability flow typing even in presence of pattern match [#18206](https://github.com/lampepfl/dotty/pull/18206)
154+
- Fix #11967: flow typing nullability in pattern matches [#18212](https://github.com/lampepfl/dotty/pull/18212)
155+
- Fix #18282: consider Predef.eq/ne in nullability flow typing [#18299](https://github.com/lampepfl/dotty/pull/18299)
156+
- Make `this.type` nullable again (unless under -Yexplicit-nulls). [#18399](https://github.com/lampepfl/dotty/pull/18399)
157+
158+
## Opaque Types
159+
160+
- Type ascribe trees that require opaque type usage [#18101](https://github.com/lampepfl/dotty/pull/18101)
161+
162+
## Parser
163+
164+
- Fix selecting terms using _root_ [#18335](https://github.com/lampepfl/dotty/pull/18335)
165+
- Tweak java getlitch not to skip zero [#18491](https://github.com/lampepfl/dotty/pull/18491)
166+
- Fix i18518 [#18520](https://github.com/lampepfl/dotty/pull/18520)
167+
- Only apply `future` patches on `future-migration` [#18820](https://github.com/lampepfl/dotty/pull/18820)
168+
- Parser simple expression error recovery change from `null` to `???` [#19103](https://github.com/lampepfl/dotty/pull/19103)
169+
170+
## Pattern Matching
171+
172+
- Fix syntax and parsing of vararg patterns [#18055](https://github.com/lampepfl/dotty/pull/18055)
173+
- Avoid over widening in SpaceEngine [#18252](https://github.com/lampepfl/dotty/pull/18252)
174+
- Fix regression in exhaustivity of HK types [#18303](https://github.com/lampepfl/dotty/pull/18303)
175+
- Fix missing case in isSubspace, which broke reachablility [#18326](https://github.com/lampepfl/dotty/pull/18326)
176+
- Unsuppress unchecked warnings [#18377](https://github.com/lampepfl/dotty/pull/18377)
177+
- Consider extension methods in Space isSameUnapply [#18642](https://github.com/lampepfl/dotty/pull/18642)
178+
- Fix unreachable warning in deeply nested sealed hierarchy [#18706](https://github.com/lampepfl/dotty/pull/18706)
179+
- Remove unnecessary and recursive Space decomposition [#19216](https://github.com/lampepfl/dotty/pull/19216)
180+
- Prioritise sequence-matches over product-sequence-matches [#19260](https://github.com/lampepfl/dotty/pull/19260)
181+
- Propagate constant in result of inline match [#18455](https://github.com/lampepfl/dotty/pull/18455)
182+
- Disable match anaylsis in inlined trees [#19190](https://github.com/lampepfl/dotty/pull/19190)
183+
- Teach provablyDisjoint about AnyKind [#18510](https://github.com/lampepfl/dotty/pull/18510)
184+
- Warn about unchecked type tests in primitive catch cases [#19206](https://github.com/lampepfl/dotty/pull/19206)
185+
- Reprioritise seq-match over product-seq-match [#19277](https://github.com/lampepfl/dotty/pull/19277)
186+
- Fix exhaustivity due to separate TypeVar lambdas [#18616](https://github.com/lampepfl/dotty/pull/18616)
187+
188+
## Presentation Compiler
189+
190+
- Support completions for extension definition parameter [#18331](https://github.com/lampepfl/dotty/pull/18331)
191+
- Fix: Don't collect map, flatMap, withFilter in for-comprehension [#18430](https://github.com/lampepfl/dotty/pull/18430)
192+
- Bugfix: Catch exception from the compiler for broken shadowed pickles [#18502](https://github.com/lampepfl/dotty/pull/18502)
193+
- Bugfix: highlight for enum type params [#18528](https://github.com/lampepfl/dotty/pull/18528)
194+
- Bugfix: No signature help for local methods [#18594](https://github.com/lampepfl/dotty/pull/18594)
195+
- Bugfix: add `moduleClass` imported symbols in `IndexedContext` [#18620](https://github.com/lampepfl/dotty/pull/18620)
196+
- Bugfix: Named args completions with default values [#18633](https://github.com/lampepfl/dotty/pull/18633)
197+
- Fix: match completions for type aliases [#18667](https://github.com/lampepfl/dotty/pull/18667)
198+
- Bugfix: add multiline comment completion [#18703](https://github.com/lampepfl/dotty/pull/18703)
199+
- Bugfix: Backticked named arguments [#18704](https://github.com/lampepfl/dotty/pull/18704)
200+
- Bugfix: [metals] Case completions for tuple type [#18751](https://github.com/lampepfl/dotty/pull/18751)
201+
- Completions should prepend, not replace as it is for Scala 2 [#18803](https://github.com/lampepfl/dotty/pull/18803)
202+
- Bugfix: rename end marker [#18838](https://github.com/lampepfl/dotty/pull/18838)
203+
- Presentation compiler: Bugfix for semantic tokens and synthetic decorations [#18955](https://github.com/lampepfl/dotty/pull/18955)
204+
- Show documentation for value forwarders in completions [#19200](https://github.com/lampepfl/dotty/pull/19200)
205+
- Bugfix: Document highlight on class constructors [#19209](https://github.com/lampepfl/dotty/pull/19209)
206+
- Bugfix: Completions for extension methods with name conflict [#19225](https://github.com/lampepfl/dotty/pull/19225)
207+
208+
## Polyfunctions
209+
210+
- Check user defined PolyFunction refinements [#18457](https://github.com/lampepfl/dotty/pull/18457)
211+
- Support polymorphic functions with erased parameters [#18293](https://github.com/lampepfl/dotty/pull/18293)
212+
- Use `PolyFunction` instead of `ErasedFunction` [#18295](https://github.com/lampepfl/dotty/pull/18295)
213+
214+
## Quotes
215+
216+
- Support type variable with bounds in quoted pattern [#16910](https://github.com/lampepfl/dotty/pull/16910)
217+
- Add new EXPLICITtpt to TASTy format [#17298](https://github.com/lampepfl/dotty/pull/17298)
218+
- Inhibit typer to insert contextual arguments when it is inside arguments of HOAS patterns [#18040](https://github.com/lampepfl/dotty/pull/18040)
219+
- Compile quote patterns directly into QuotePattern AST [#18133](https://github.com/lampepfl/dotty/pull/18133)
220+
- Add missing span to synthesized product mirror [#18354](https://github.com/lampepfl/dotty/pull/18354)
221+
- Improve non-static macro implementation error message [#18405](https://github.com/lampepfl/dotty/pull/18405)
222+
- Fix scala 2 macros in traits with type parameters [#18663](https://github.com/lampepfl/dotty/pull/18663)
223+
- Patch `underlyingArgument` to avoid mapping into modules [#18923](https://github.com/lampepfl/dotty/pull/18923)
224+
- Fallback erasing term references [#18731](https://github.com/lampepfl/dotty/pull/18731)
225+
- Fix ignored type variable bound warning in type quote pattern [#18199](https://github.com/lampepfl/dotty/pull/18199)
226+
- Splice hole with singleton captures [#18357](https://github.com/lampepfl/dotty/pull/18357)
227+
- Fix macros with erased arguments [#18431](https://github.com/lampepfl/dotty/pull/18431)
228+
- Deprecate 3-arg `FunctionClass` constructor [#18472](https://github.com/lampepfl/dotty/pull/18472)
229+
- Deprecate `Quotes` `{MethodType,TermParamClause}.isErased` [#18479](https://github.com/lampepfl/dotty/pull/18479)
230+
- Avoid crashes on missing positions [#19250](https://github.com/lampepfl/dotty/pull/19250)
231+
232+
## Reflection
233+
234+
- Add reflect.ValOrDefDef [#16974](https://github.com/lampepfl/dotty/pull/16974)
235+
- Check New tree for ill-formed module instantiations [#17553](https://github.com/lampepfl/dotty/pull/17553)
236+
- Add reflect `TypeLambda.paramVariances` [#17568](https://github.com/lampepfl/dotty/pull/17568)
237+
- Make check flags for `newMethod`, `newVal` and `newBind` in Quotes API less restrictive [#18217](https://github.com/lampepfl/dotty/pull/18217)
238+
- Normalise mirrorType for mirror Synthesis [#19199](https://github.com/lampepfl/dotty/pull/19199)
239+
- Add reflect `defn.FunctionClass` overloads [#16849](https://github.com/lampepfl/dotty/pull/16849)
240+
- Stabilize reflect flag `JavaAnnotation` [#19267](https://github.com/lampepfl/dotty/pull/19267)
241+
- Stabilize reflect `paramVariance` [#19268](https://github.com/lampepfl/dotty/pull/19268)
242+
243+
## Reporting
244+
245+
- Take into account the result type of inline implicit conversions unless they are transparent [#17924](https://github.com/lampepfl/dotty/pull/17924)
246+
- Check if a fatal warning issued in typer is silenced, before converting it into an error [#18089](https://github.com/lampepfl/dotty/pull/18089)
247+
- Elide companion defs to a `object` extending `AnyVal` [#18451](https://github.com/lampepfl/dotty/pull/18451)
248+
- Add regression test for issue i18493 [#18497](https://github.com/lampepfl/dotty/pull/18497)
249+
- Add better explanation to error message [#18665](https://github.com/lampepfl/dotty/pull/18665)
250+
- Better error message when accessing private members [#18690](https://github.com/lampepfl/dotty/pull/18690)
251+
- Improve message for discarded pure non-Unit values [#18723](https://github.com/lampepfl/dotty/pull/18723)
252+
- Better error message when a pattern match extractor is not found. [#18725](https://github.com/lampepfl/dotty/pull/18725)
253+
- Give "did you mean ...?" hints also for simple identifiers [#18747](https://github.com/lampepfl/dotty/pull/18747)
254+
- Better error for definition followed by keyword [#18752](https://github.com/lampepfl/dotty/pull/18752)
255+
- Better explain message for 'pattern expected' [#18753](https://github.com/lampepfl/dotty/pull/18753)
256+
- Improve failure message of enum `fromOrdinal`/`valueOf` [#19182](https://github.com/lampepfl/dotty/pull/19182)
257+
- Fix type mismatch error confusion between types with same simple name [#19204](https://github.com/lampepfl/dotty/pull/19204)
258+
- Add hint for nested quotes missing staged `Quotes` [#18755](https://github.com/lampepfl/dotty/pull/18755)
259+
- Better error messages for missing commas and more [#18785](https://github.com/lampepfl/dotty/pull/18785)
260+
- Fix imported twice error messages [#18102](https://github.com/lampepfl/dotty/pull/18102)
261+
- Improve error message for inaccessible types [#18406](https://github.com/lampepfl/dotty/pull/18406)
262+
- Future migration warning for `with` type operator [#18818](https://github.com/lampepfl/dotty/pull/18818)
263+
- Improve assertion error message for `Apply` and `TypeApply` [#18700](https://github.com/lampepfl/dotty/pull/18700)
264+
- Shorten traces for TypeMismatch errors under -explain [#18742](<https://gi>
265+
- Improve `with` in type migration warning [#18852](https://github.com/lampepfl/dotty/pull/18852)
266+
hub.com/lampepfl/dotty/pull/18742)
267+
- Future migration warning for alphanumeric infix operator [#18908](https://github.com/lampepfl/dotty/pull/18908)
268+
- Make sure that trace is shown correctly in the presence of invalid line numbers [#18930](https://github.com/lampepfl/dotty/pull/18930)
269+
- Add migration warning for XML literals in language future [#19101](https://github.com/lampepfl/dotty/pull/19101)
270+
- Avoid diagnostic message forcing crashing the compiler [#19113](https://github.com/lampepfl/dotty/pull/19113)
271+
- Make sure that the stacktrace is shown with `-Ydebug-unpickling` [#19115](https://github.com/lampepfl/dotty/pull/19115)
272+
- Improve `asExprOf` cast error formatting [#19195](https://github.com/lampepfl/dotty/pull/19195)
273+
- Do not warn on underscore wildcard type in pattern [#19249](https://github.com/lampepfl/dotty/pull/19249)
274+
275+
## Scala-JS
276+
277+
- Fix #18658: Handle varargs of generic types in `JSExportsGen`. [#18659](https://github.com/lampepfl/dotty/pull/18659)
278+
279+
## Scaladoc
280+
281+
- Fix incorrect comment parser used in nightly scaladoc [#18523](https://github.com/lampepfl/dotty/pull/18523)
282+
- Update jsoup dependency of Scaladoc to 7.2 [#19584](https://github.com/lampepfl/dotty/pull/19584)
283+
284+
## SemanticDB
285+
286+
- Export diagnostics (including unused warnings) to SemanticDB [#17835](https://github.com/lampepfl/dotty/pull/17835)
287+
- Bugfix: Incorrect semanticdb span on Selectable [#18576](https://github.com/lampepfl/dotty/pull/18576)
288+
- Bugfix: in semanticdb make synthetic apply disambiguator consistent w/ Scala 2 implicit [#17341](https://github.com/lampepfl/dotty/pull/17341)
289+
290+
## Standard Library
291+
292+
- Intrinsify `constValueTuple` and `summonAll` [#18013](https://github.com/lampepfl/dotty/pull/18013)
293+
- Fix #18609: Add language.`3.4` and language.`3.4-migration`. [#18610](https://github.com/lampepfl/dotty/pull/18610)
294+
295+
## TASTy format
296+
297+
- Eliminate FromJavaObject from TASTy of Java sources [#19259](https://github.com/lampepfl/dotty/pull/19259)
298+
- Add new HOLETYPES to TASTy format [#17225](https://github.com/lampepfl/dotty/pull/17225)
299+
- Add capture checking attributes to TASTy [#19033](https://github.com/lampepfl/dotty/pull/19033)
300+
- Add TASTyInfo abstraction [#19089](https://github.com/lampepfl/dotty/pull/19089)
301+
- Add UTF8 abstraction in the TASTy format [#19090](https://github.com/lampepfl/dotty/pull/19090)
302+
303+
## Tooling
304+
305+
- Don't add explanation twice [#18779](https://github.com/lampepfl/dotty/pull/18779)
306+
- ExtractDependencies uses more efficient caching [#18403](https://github.com/lampepfl/dotty/pull/18403)
307+
- Introduce the SourceVersions 3.4 and 3.4-migration; make 3.4 the default. [#18501](https://github.com/lampepfl/dotty/pull/18501)
308+
- Bugfix: Completions for named args in wrong order [#18702](https://github.com/lampepfl/dotty/pull/18702)
309+
- Align unpickled Scala 2 accessors encoding with Scala 3 [#18874](https://github.com/lampepfl/dotty/pull/18874)
310+
- Reinterpret Scala 2 case accessors `xyz$access$idx` [#18907](https://github.com/lampepfl/dotty/pull/18907)
311+
- Presentation-compiler: Add synthetic decorations [#18951](https://github.com/lampepfl/dotty/pull/18951)
312+
- Add compilation unit info to `ClassSymbol` [#19010](https://github.com/lampepfl/dotty/pull/19010)
313+
- Make sure that patches for 3.0 are also applied in later versions [#19018](https://github.com/lampepfl/dotty/pull/19018)
314+
315+
## Transform
316+
317+
- Also consider @targetName when checking private overrides [#18361](https://github.com/lampepfl/dotty/pull/18361)
318+
- Teach PostTyper to handle untupled context closures [#17739](https://github.com/lampepfl/dotty/pull/17739)
319+
- Properly dealias tuple types when specializing [#18724](https://github.com/lampepfl/dotty/pull/18724)
320+
- Fix condition in prefixIsElidable to prevent compiler crash [#18924](https://github.com/lampepfl/dotty/pull/18924)
321+
- Fix #18816: Transfer the span of rewired `This` nodes in `fullyParameterizedDef`. [#18840](https://github.com/lampepfl/dotty/pull/18840)
322+
- List(...) optimization to avoid intermediate array [#17166](https://github.com/lampepfl/dotty/pull/17166)
323+
- Make Array.apply an intrinsic [#18537](https://github.com/lampepfl/dotty/pull/18537)
324+
- Add missing span to extension method select [#18557](https://github.com/lampepfl/dotty/pull/18557)
325+
326+
## Tuples
327+
328+
- Handle TupleXXL in match analysis [#19212](https://github.com/lampepfl/dotty/pull/19212)
329+
- Add `reverse` method to `NonEmptyTuple` [#13752](https://github.com/lampepfl/dotty/pull/13752)
330+
- Refine handling of pattern binders for large tuples [#19085](https://github.com/lampepfl/dotty/pull/19085)
331+
- Introduce `Tuple.ReverseOnto` and use it in `Tuple.reverse` [#19183](https://github.com/lampepfl/dotty/pull/19183)
332+
333+
## Typeclass Derivation
334+
335+
- Consider all parents when checking access to the children of a sum [#19083](https://github.com/lampepfl/dotty/pull/19083)
336+
337+
## Typer
338+
339+
- Fix logic when comparing var/def bindings with val refinements [#18049](https://github.com/lampepfl/dotty/pull/18049)
340+
- Fix variance checking in refinements [#18053](https://github.com/lampepfl/dotty/pull/18053)
341+
- Fix accessibleType for package object prefixes [#18057](https://github.com/lampepfl/dotty/pull/18057)
342+
- Refix avoid GADT casting with ProtoTypes [#18085](https://github.com/lampepfl/dotty/pull/18085)
343+
- Avoid shadowing by private definitions in more situations [#18142](https://github.com/lampepfl/dotty/pull/18142)
344+
- Refine infoDependsOnPrefix [#18204](https://github.com/lampepfl/dotty/pull/18204)
345+
- Fix spurious subtype check pruning when both sides have unions [#18213](https://github.com/lampepfl/dotty/pull/18213)
346+
- Reimplement support for type aliases in SAM types [#18317](https://github.com/lampepfl/dotty/pull/18317)
347+
- Fix adaptation of constants to constant type aliases [#18360](https://github.com/lampepfl/dotty/pull/18360)
348+
- Issue "positional after named argument" errors [#18363](https://github.com/lampepfl/dotty/pull/18363)
349+
- Deprecate `ops.long.S` [#18426](https://github.com/lampepfl/dotty/pull/18426)
350+
- Tweak selection from self types [#18467](https://github.com/lampepfl/dotty/pull/18467)
351+
- Use the unwidened type when casting structural calls [#18527](https://github.com/lampepfl/dotty/pull/18527)
352+
- Fix #18649: Use loBound of param types when materializing a context function. [#18651](https://github.com/lampepfl/dotty/pull/18651)
353+
- Identify structural trees on Match Type qualifiers [#18765](https://github.com/lampepfl/dotty/pull/18765)
354+
- Tweak approximation of type variables when computing default types [#18798](https://github.com/lampepfl/dotty/pull/18798)
355+
- Admit parametric aliases of classes in parent typing [#18849](https://github.com/lampepfl/dotty/pull/18849)
356+
- Also add privateWithin when creating constructor proxies [#18893](https://github.com/lampepfl/dotty/pull/18893)
357+
- Revert part of `Simplify defn.FunctionOf.unapply` [#19012](https://github.com/lampepfl/dotty/pull/19012)
358+
- Check @targetName when subtyping Refined Types [#19081](https://github.com/lampepfl/dotty/pull/19081)
359+
- Record failures to adapt application arguments [#18269](https://github.com/lampepfl/dotty/pull/18269)
360+
- Improve handling of AndTypes on the LHS of subtype comparisons [#18235](https://github.com/lampepfl/dotty/pull/18235)
361+
- Allow inferred parameter types always, when eta-expanding [#18771](https://github.com/lampepfl/dotty/pull/18771)
362+
- Fix failing bounds check on default getter [#18419](https://github.com/lampepfl/dotty/pull/18419)
363+
- Use constructor's default getters in case class synthetic `apply` methods [#18716](https://github.com/lampepfl/dotty/pull/18716)
364+
- Keep qualifier of Ident when selecting setter [#18714](https://github.com/lampepfl/dotty/pull/18714)
365+
- Retract SynthesizeExtMethodReceiver mode when when going deeper in overloading resolution [#18759](https://github.com/lampepfl/dotty/pull/18759)
366+
- Constant fold all the number conversion methods [#17446](https://github.com/lampepfl/dotty/pull/17446)
367+
- Refine criterion when to widen types [#17180](https://github.com/lampepfl/dotty/pull/17180)
368+
- Run all MatchType reduction under Mode.Type [#17937](https://github.com/lampepfl/dotty/pull/17937)
369+
- Force consistent MT post-redux normalisation, disallow infinite match types [#18073](https://github.com/lampepfl/dotty/pull/18073)
370+
- Fix #17467: Limit isNullable widening to stable TermRefs; remove under explicit nulls. [#17470](https://github.com/lampepfl/dotty/pull/17470)
371+
- Disallow naming the root package, except for selections [#18187](https://github.com/lampepfl/dotty/pull/18187)
372+
- Contextual varargs parameters [#18186](https://github.com/lampepfl/dotty/pull/18186)
373+
- Encode the name of the attribute in Selectable.selectDynamic [#18928](https://github.com/lampepfl/dotty/pull/18928)
374+
- Remove linearization requirement for override ref checks from java classes [#18953](https://github.com/lampepfl/dotty/pull/18953)
375+
- Fix type inferencing (constraining) regressions [#19189](https://github.com/lampepfl/dotty/pull/19189)
376+
- Repeated params must correspond in override [#16836](https://github.com/lampepfl/dotty/pull/16836)
377+
- Convert SAM result types to function types [#17740](https://github.com/lampepfl/dotty/pull/17740)
378+
- Disallow `infix` objects [#17966](https://github.com/lampepfl/dotty/pull/17966)
379+
- Fix hasMatchingMember handling NoDenotation [#17977](https://github.com/lampepfl/dotty/pull/17977)
380+
- Fix: disallow toplevel infix definitions for vals, vars, givens, methods and implicits [#17994](https://github.com/lampepfl/dotty/pull/17994)
381+
- Curried methods are not valid SAM methods [#18110](https://github.com/lampepfl/dotty/pull/18110)
382+
- Fix #17115: Try to normalize while computing `typeSize`. [#18386](https://github.com/lampepfl/dotty/pull/18386)
383+
- Add default arguments to derived refined type [#18435](https://github.com/lampepfl/dotty/pull/18435)
384+
- Handle dependent context functions [#18443](https://github.com/lampepfl/dotty/pull/18443)
385+
- Fix variance loophole for private vars [#18693](https://github.com/lampepfl/dotty/pull/18693)
386+
- Avoid crash arising from trying to find conversions from polymorphic singleton types [#18760](https://github.com/lampepfl/dotty/pull/18760)
387+
- Allow inner classes of universal traits [#18796](https://github.com/lampepfl/dotty/pull/18796)
388+
- Prevent crash when extension not found [#18830](https://github.com/lampepfl/dotty/pull/18830)
389+
- Fix expandParam's use of argForParam/isArgPrefixOf. [#19412](https://github.com/lampepfl/dotty/pull/19412)
390+
391+
# Contributors
392+
393+
Thank you to all the contributors who made this release possible 🎉
394+
395+
According to `git shortlog -sn --no-merges 3.3.1..3.4.0` these are:
396+
397+
```
398+
474 Martin Odersky
399+
296 Nicolas Stucki
400+
132 Fengyun Liu
401+
119 Dale Wijnand
402+
77 Jamie Thompson
403+
69 Sébastien Doeraene
404+
60 Paweł Marks
405+
32 Chris Kipp
406+
27 Guillaume Martres
407+
26 Rikito Taniguchi
408+
21 Yichen Xu
409+
19 EnzeXing
410+
14 Szymon Rodziewicz
411+
13 Lucas Leblanc
412+
12 Jakub Ciesluk
413+
12 Jędrzej Rochala
414+
12 Katarzyna Marek
415+
11 Carl
416+
10 David Hua
417+
9 Florian3k
418+
9 Wojciech Mazur
419+
8 Eugene Flesselle
420+
8 ghostbuster91
421+
7 Hamza Remmal
422+
7 Jan Chyb
423+
7 Ondrej Lhotak
424+
7 Quentin Bernet
425+
6 Julien Richard-Foy
426+
6 Kacper Korban
427+
6 Seth Tisue
428+
5 Lorenzo Gabriele
429+
5 Matt Bovel
430+
5 Som Snytt
431+
5 Yuito Murase
432+
5 dependabot[bot]
433+
3 David
434+
3 Lucas
435+
3 Pascal Weisenburger
436+
3 Tomasz Godzik
437+
2 Aleksander Rainko
438+
2 Decel
439+
2 Guillaume Raffin
440+
2 Ondřej Lhoták
441+
2 Oron Port
442+
2 danecek
443+
2 rochala
444+
1 Adam Dąbrowski
445+
1 Aleksey Troitskiy
446+
1 Arnout Engelen
447+
1 Ausmarton Zarino Fernandes
448+
1 Bjorn Regnell
449+
1 Daniel Esik
450+
1 Eugene Yokota
451+
1 Fabián Heredia Montiel
452+
1 François Monniot
453+
1 Jakub Cieśluk
454+
1 John Duffell
455+
1 John M. Higgins
456+
1 Justin Reardon
457+
1 Kai
458+
1 Kisaragi
459+
1 Lucas Nouguier
460+
1 Lukas Rytz
461+
1 LydiaSkuse
462+
1 Martin Kucera
463+
1 Martin Kučera
464+
1 Matthew Rooney
465+
1 Matthias Kurz
466+
1 Mikołaj Fornal
467+
1 Nicolas Almerge
468+
1 Preveen P
469+
1 Shardul Chiplunkar
470+
1 Stefan Wachter
471+
1 philippus
472+
1 q-ata
473+
1 slim
474+
```

0 commit comments

Comments
 (0)
Please sign in to comment.