Skip to content

Commit db56570

Browse files
committed
Add changelog for 3.6.0-RC1
1 parent 138ec0a commit db56570

File tree

1 file changed

+171
-0
lines changed

1 file changed

+171
-0
lines changed

changelogs/3.6.0-RC1.md

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
# Highlights of the release
2+
3+
- Stabilise SIP-47 (Adding Clause Interleaving to method definitions) [#20861](https://github.com/scala/scala3/pull/20861)
4+
- Implement SIP-57 - add runtimeChecked method and annotation [#20987](https://github.com/scala/scala3/pull/20987)
5+
- Implement SIP-62 - For comprehension improvements [#20522](https://github.com/scala/scala3/pull/20522)
6+
- Implement SIP-64 as non-experimental [#21668](https://github.com/scala/scala3/pull/21668)
7+
- Make named tuples a standard feature [#21680](https://github.com/scala/scala3/pull/21680)
8+
- Switch mapping of context bounds to using clauses in 3.6 [#21257](https://github.com/scala/scala3/pull/21257)
9+
- Require named arguments for java defined annotations [#21329](https://github.com/scala/scala3/pull/21329)
10+
11+
# Other changes and fixes
12+
13+
## Annotations
14+
15+
- Tighten java annot value parsing [#21650](https://github.com/scala/scala3/pull/21650)
16+
17+
## Dependencies
18+
19+
- REPL: JLine 3.27.0 (was 3.25.1) [#21752](https://github.com/scala/scala3/pull/21752)
20+
- Scala 2.13.15 (was .14) [#21648](https://github.com/scala/scala3/pull/21648)
21+
22+
## Erasure
23+
24+
- Fixes IllegalAccessError with Java package protected class [#21362](https://github.com/scala/scala3/pull/21362)
25+
26+
## Experimental: Capture Checking
27+
28+
- Existential Capabilities [#20566](https://github.com/scala/scala3/pull/20566)
29+
- Fix setup of CapSet arguments. [#21309](https://github.com/scala/scala3/pull/21309)
30+
- Check all top-level covariant capture sets in checkNotUniversal [#21428](https://github.com/scala/scala3/pull/21428)
31+
- Charge also dcs of local reaches to capture set of enclosing method [#21443](https://github.com/scala/scala3/pull/21443)
32+
- No need to unbox if expected type is LhsProto [#21508](https://github.com/scala/scala3/pull/21508)
33+
- Treat more closure parameter types as inferred [#21583](https://github.com/scala/scala3/pull/21583)
34+
- Fixes for cleanup retains scheme [#21350](https://github.com/scala/scala3/pull/21350)
35+
- Improve Contains handling [#21361](https://github.com/scala/scala3/pull/21361)
36+
- Expand Capability types T to T^ only if no explicit capture set is given [#21375](https://github.com/scala/scala3/pull/21375)
37+
- Tighten closure extractor in TreeInfo [#21621](https://github.com/scala/scala3/pull/21621)
38+
39+
## Experimental: Strict Equality
40+
41+
- Fix #21392: Adjust `canComparePredefined(Nothing, T)` in explicit nulls [#21504](https://github.com/scala/scala3/pull/21504)
42+
- Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) [#21389](https://github.com/scala/scala3/pull/21389)
43+
44+
## Experimental: Modularity
45+
46+
- Revised given syntax [#21208](https://github.com/scala/scala3/pull/21208)
47+
48+
## Experimental: Global Initialization
49+
50+
- Analyze object when selecting from package [#21511](https://github.com/scala/scala3/pull/21511)
51+
- Fix bug in init checker while compiling scodec-bits community project [#21574](https://github.com/scala/scala3/pull/21574)
52+
53+
## Experimentals
54+
55+
- [experimental feature] Support HOAS pattern with type variables for quote pattern matching [#18271](https://github.com/scala/scala3/pull/18271)
56+
57+
## Exports
58+
59+
- Re-use attachment in exportForwarders to handle ambiguous overloads [#21518](https://github.com/scala/scala3/pull/21518)
60+
- Allow export statements in AnyVal [#21653](https://github.com/scala/scala3/pull/21653)
61+
62+
## Extension Methods
63+
64+
- Make right assoc ext method fwd refs error [#21641](https://github.com/scala/scala3/pull/21641)
65+
66+
## Inline
67+
68+
- Fix: throw an error before assigning ErrorType when expanding constValue [#21364](https://github.com/scala/scala3/pull/21364)
69+
70+
## Implicits
71+
72+
- Fix prioritization of `given`s over `implicit`s [#21226](https://github.com/scala/scala3/pull/21226)
73+
74+
## Linting
75+
76+
- CheckUnused checks type param annotations [#20549](https://github.com/scala/scala3/pull/20549)
77+
78+
## Library
79+
80+
- Finalize named tuples [#21710](https://github.com/scala/scala3/pull/21710)
81+
82+
## Match Types
83+
84+
- Enable betterMatchTypeExtractors in >= 3.6 [#21198](https://github.com/scala/scala3/pull/21198)
85+
- Do not propagate `TypeError`s of ops from `TypeComparer#tryAlso` [#21070](https://github.com/scala/scala3/pull/21070)
86+
- Fix #21402: Always allow type member extraction for stable scrutinees in match types. [#21700](https://github.com/scala/scala3/pull/21700)
87+
- Add a 3.6-migration warning for MT lubbing [#21336](https://github.com/scala/scala3/pull/21336)
88+
- Always interpret underscores inside patterns as type bounds [#21718](https://github.com/scala/scala3/pull/21718)
89+
90+
## Opaque Types
91+
92+
- Capture the kse3 issue in test cases and close it [#21260](https://github.com/scala/scala3/pull/21260)
93+
94+
## Parser
95+
96+
- Guard against recursive lower bounds in constraints [#21587](https://github.com/scala/scala3/pull/21587)
97+
98+
## Pattern Matching
99+
100+
- Fix a bundle of patmat issues [#21000](https://github.com/scala/scala3/pull/21000)
101+
102+
## Pickling
103+
104+
- Some fixes for AnnotatedTypes mapping [#19957](https://github.com/scala/scala3/pull/19957)
105+
106+
## Polyfunctions
107+
108+
- Fix: Check if a PolyFunction TypeTree has no ByName parameters [#21671](https://github.com/scala/scala3/pull/21671)
109+
110+
## Presentation Compiler
111+
112+
- Add regression test for issue 18726 [#20318](https://github.com/scala/scala3/pull/20318)
113+
- Remove artificial `CURSOR` added to code in the completions [#20899](https://github.com/scala/scala3/pull/20899)
114+
- Fix autoimports with using directives [#21590](https://github.com/scala/scala3/pull/21590)
115+
116+
## Quotes
117+
118+
- Handle suspension due to macro call in arbitrary phases [#21651](https://github.com/scala/scala3/pull/21651)
119+
- Have a better error message when healing types [#21711](https://github.com/scala/scala3/pull/21711)
120+
- Bound TypeRepr by Matchable in Quotes [#21377](https://github.com/scala/scala3/pull/21377)
121+
- Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType) [#20494](https://github.com/scala/scala3/pull/20494)
122+
123+
## Reflection
124+
125+
- Add the possibility to create a typeSymbol in the Quotes API [#20347](https://github.com/scala/scala3/pull/20347)
126+
- Fix stale symbols connected to lazy vals in macros [#21559](https://github.com/scala/scala3/pull/21559)
127+
128+
## Reporting
129+
130+
- Add better error reporting for inlined non-immutable paths [#21639](https://github.com/scala/scala3/pull/21639)
131+
- Only replace *new* errors by warnings under `-migration` [#21289](https://github.com/scala/scala3/pull/21289)
132+
133+
## REPL
134+
135+
- Ignore best effort settings in repl and update docs [#21540](https://github.com/scala/scala3/pull/21540)
136+
137+
## Rewrites
138+
139+
- Remove empty argument lists for classes with only context bounds [#21513](https://github.com/scala/scala3/pull/21513)
140+
- Fix rewrite logic for old `<function> _` syntax [#21715](https://github.com/scala/scala3/pull/21715)
141+
- Remove the `-rewrite` option for `typechecks` methods in Quotes [#21547](https://github.com/scala/scala3/pull/21547)
142+
- Add migration rewrite for non-named arguments in Java annotations [#21397](https://github.com/scala/scala3/pull/21397)
143+
144+
## Scaladoc
145+
146+
- Only trim one newline when preprocessing the content of a markdown code snippet [#21519](https://github.com/scala/scala3/pull/21519)
147+
- Filter opaque modifier from object documentation [#21640](https://github.com/scala/scala3/pull/21640)
148+
- Bump Inkuire version to fix it for the new Scala versions [#21611](https://github.com/scala/scala3/pull/21611)
149+
150+
## Standard Library
151+
152+
- Move `NamedTuple.head` to `NamedTupleDecomposition` [#21308](https://github.com/scala/scala3/pull/21308)
153+
- Define binary symbolic compiletime ops as `infix` [#21683](https://github.com/scala/scala3/pull/21683)
154+
155+
## Transform
156+
157+
- Fix treatment of separately compiled @native methods in FirstTransform [#21593](https://github.com/scala/scala3/pull/21593)
158+
- Three fixes to SAM type handling [#21596](https://github.com/scala/scala3/pull/21596)
159+
- Always rewrite empty List() to Nil [#21689](https://github.com/scala/scala3/pull/21689)
160+
- Add support for clauseInterleaving in JVM generic signatures [#21709](https://github.com/scala/scala3/pull/21709)
161+
162+
## Typeclass Derivation
163+
164+
- Nicer error message in case a `derived` method has an explicit term param [#21332](https://github.com/scala/scala3/pull/21332)
165+
166+
## Typer
167+
168+
- Calm param autotupling for overloads [#21552](https://github.com/scala/scala3/pull/21552)
169+
- Survive inaccessible types when computing implicit scope [#21589](https://github.com/scala/scala3/pull/21589)
170+
- Avoid cyclic errors forcing default arg types [#21597](https://github.com/scala/scala3/pull/21597)
171+
- Fix incorrect caching with dependent method parameters [#21699](https://github.com/scala/scala3/pull/21699)

0 commit comments

Comments
 (0)