|
| 1 | +This release is nearly identical to 3.3.0-RC1. The only difference is that 3.3.0-RC1 generated output with incorrect TASTy version. |
| 2 | + |
| 3 | +The following changelog is identical to the changelog of 3.3.0-RC1. |
| 4 | + |
| 5 | +# Highlights of the release |
| 6 | + |
| 7 | +- Stabilize new lazy vals [#16614](https://github.com/lampepfl/dotty/pull/16614) |
| 8 | +- Experimental Macro annotations [#16392](https://github.com/lampepfl/dotty/pull/16392) [#16454](https://github.com/lampepfl/dotty/pull/16454) [#16534](https://github.com/lampepfl/dotty/pull/16534) |
| 9 | +- Fix stability check for inline parameters [#15511](https://github.com/lampepfl/dotty/pull/15511) |
| 10 | +- Make `fewerBraces` a standard feature [#16297](https://github.com/lampepfl/dotty/pull/16297) |
| 11 | +- Add new front-end phase for unused entities and add support for unused imports [#16157](https://github.com/lampepfl/dotty/pull/16157) |
| 12 | +- Implement -Wvalue-discard warning [#15975](https://github.com/lampepfl/dotty/pull/15975) |
| 13 | +- Introduce boundary/break control abstraction. [#16612](https://github.com/lampepfl/dotty/pull/16612) |
| 14 | + |
| 15 | +# Other changes and fixes |
| 16 | + |
| 17 | +## Annotations |
| 18 | + |
| 19 | +- Support use-site meta-annotations [#16445](https://github.com/lampepfl/dotty/pull/16445) |
| 20 | + |
| 21 | +## Desugaring |
| 22 | + |
| 23 | +- Reuse typed prefix for `applyDynamic` and `applyDynamicNamed` [#16552](https://github.com/lampepfl/dotty/pull/16552) |
| 24 | +- Fix object selftype match error [#16441](https://github.com/lampepfl/dotty/pull/16441) |
| 25 | + |
| 26 | +## Erasure |
| 27 | + |
| 28 | +- Dealias before checking for outer references in types [#16525](https://github.com/lampepfl/dotty/pull/16525) |
| 29 | +- Fix generic signature for type params bounded by primitive [#16442](https://github.com/lampepfl/dotty/pull/16442) |
| 30 | +- Avoid EmptyScope.cloneScope crashing, eg on missing references [#16314](https://github.com/lampepfl/dotty/pull/16314) |
| 31 | + |
| 32 | +## GADTs |
| 33 | + |
| 34 | +- Inline GADT state restoring in TypeComparer [#16564](https://github.com/lampepfl/dotty/pull/16564) |
| 35 | +- Add extension/conversion to GADT selection healing [#16638](https://github.com/lampepfl/dotty/pull/16638) |
| 36 | + |
| 37 | +## Incremental compilation |
| 38 | + |
| 39 | +- Unpickle arguments of parent constructors in Templates lazily [#16688](https://github.com/lampepfl/dotty/pull/16688) |
| 40 | + |
| 41 | +## Initialization |
| 42 | + |
| 43 | +- Fix #16438: Supply dummy args for erroneous parent call in init check [#16448](https://github.com/lampepfl/dotty/pull/16448) |
| 44 | + |
| 45 | +## Inline |
| 46 | + |
| 47 | +- Dealias in ConstantValue, for inline if cond [#16652](https://github.com/lampepfl/dotty/pull/16652) |
| 48 | +- Set Span for top level annotations generated in PostTyper [#16378](https://github.com/lampepfl/dotty/pull/16378) |
| 49 | +- Interpolate any type vars from comparing against SelectionProto [#16348](https://github.com/lampepfl/dotty/pull/16348) |
| 50 | +- Handle binding of beta reduced inlined lambdas [#16377](https://github.com/lampepfl/dotty/pull/16377) |
| 51 | +- Do not add dummy RHS to abstract inline methods [#16510](https://github.com/lampepfl/dotty/pull/16510) |
| 52 | +- Warn on inline given aliases with functions as RHS [#16499](https://github.com/lampepfl/dotty/pull/16499) |
| 53 | +- Support inline overrides in value classes [#16523](https://github.com/lampepfl/dotty/pull/16523) |
| 54 | + |
| 55 | +## Java interop |
| 56 | + |
| 57 | +- Represent Java annotations as interfaces so they can be extended, and disallow various misuses of them [#16260](https://github.com/lampepfl/dotty/pull/16260) |
| 58 | + |
| 59 | +## Opaque Types |
| 60 | + |
| 61 | +- Delay opaque alias checking until PostTyper [#16644](https://github.com/lampepfl/dotty/pull/16644) |
| 62 | + |
| 63 | +## Overloading |
| 64 | + |
| 65 | +- Handle context function arguments in overloading resolution [#16511](https://github.com/lampepfl/dotty/pull/16511) |
| 66 | + |
| 67 | +## Parser |
| 68 | + |
| 69 | +- Improve support for Unicode supplementary characters in identifiers and string interpolation (as in Scala 2) [#16278](https://github.com/lampepfl/dotty/pull/16278) |
| 70 | +- Require indent after colon at EOL [#16466](https://github.com/lampepfl/dotty/pull/16466) |
| 71 | +- Help givens return refined types [#16293](https://github.com/lampepfl/dotty/pull/16293) |
| 72 | + |
| 73 | +## Pattern Matching |
| 74 | + |
| 75 | +- Tweak AvoidMap's derivedSelect [#16563](https://github.com/lampepfl/dotty/pull/16563) |
| 76 | +- Space: Use RHS of & when refining subtypes [#16573](https://github.com/lampepfl/dotty/pull/16573) |
| 77 | +- Freeze constraints in a condition check of maximiseType [#16526](https://github.com/lampepfl/dotty/pull/16526) |
| 78 | +- Restrict syntax of typed patterns [#16150](https://github.com/lampepfl/dotty/pull/16150) |
| 79 | +- Test case to show that #16252 works with transparent [#16262](https://github.com/lampepfl/dotty/pull/16262) |
| 80 | +- Support inline unapplySeq and with leading given parameters [#16358](https://github.com/lampepfl/dotty/pull/16358) |
| 81 | +- Handle sealed prefixes in exh checking [#16621](https://github.com/lampepfl/dotty/pull/16621) |
| 82 | +- Detect irrefutable quoted patterns [#16674](https://github.com/lampepfl/dotty/pull/16674) |
| 83 | + |
| 84 | +## Pickling |
| 85 | + |
| 86 | +- Allow case classes with up to 254 parameters [#16501](https://github.com/lampepfl/dotty/pull/16501) |
| 87 | +- Correctly unpickle Scala 2 private case classes in traits [#16519](https://github.com/lampepfl/dotty/pull/16519) |
| 88 | + |
| 89 | +## Polyfunctions |
| 90 | + |
| 91 | +- Fix #9996: Crash with function accepting polymorphic function type with singleton result [#16327](https://github.com/lampepfl/dotty/pull/16327) |
| 92 | + |
| 93 | +## Quotes |
| 94 | + |
| 95 | +- Remove contents of inline methods [#16345](https://github.com/lampepfl/dotty/pull/16345) |
| 96 | +- Fix errors in explicit type annotations in inline match cases [#16257](https://github.com/lampepfl/dotty/pull/16257) |
| 97 | +- Handle macro annotation suspends and crashes [#16509](https://github.com/lampepfl/dotty/pull/16509) |
| 98 | +- Fix macro annotations `spliceOwner` [#16513](https://github.com/lampepfl/dotty/pull/16513) |
| 99 | + |
| 100 | +## REPL |
| 101 | + |
| 102 | +- REPL: Fix crash when printing instances of value classes [#16393](https://github.com/lampepfl/dotty/pull/16393) |
| 103 | +- Attempt to fix completion crash [#16267](https://github.com/lampepfl/dotty/pull/16267) |
| 104 | +- Fix REPL shadowing bug [#16389](https://github.com/lampepfl/dotty/pull/16389) |
| 105 | +- Open up for extensibility [#16276](https://github.com/lampepfl/dotty/pull/16276) |
| 106 | +- Don't crash if completions throw [#16687](https://github.com/lampepfl/dotty/pull/16687) |
| 107 | + |
| 108 | +## Reflection |
| 109 | + |
| 110 | +- Fix reflect typeMembers to return all members [#15033](https://github.com/lampepfl/dotty/pull/15033) |
| 111 | +- Deprecate reflect Flags.Static [#16568](https://github.com/lampepfl/dotty/pull/16568) |
| 112 | + |
| 113 | +## Reporting |
| 114 | + |
| 115 | +- Suppress follow-on errors for erroneous import qualifiers [#16658](https://github.com/lampepfl/dotty/pull/16658) |
| 116 | +- Fix order in which errors are reported for assignment to val [#16660](https://github.com/lampepfl/dotty/pull/16660) |
| 117 | +- Fix class name in error message [#16635](https://github.com/lampepfl/dotty/pull/16635) |
| 118 | +- Make refined type printing more source compatible [#16303](https://github.com/lampepfl/dotty/pull/16303) |
| 119 | +- Add error hint on local inline def used in quotes [#16572](https://github.com/lampepfl/dotty/pull/16572) |
| 120 | +- Fix Text wrapping [#16277](https://github.com/lampepfl/dotty/pull/16277) |
| 121 | +- Fix -Wunused:import registering constructor `<init>` instead of its owner (also fix false positive for enum) [#16661](https://github.com/lampepfl/dotty/pull/16661) |
| 122 | +- Fix #16675 : -Wunused false positive on case class generated method, due to flags used to distinguish case accessors. [#16683](https://github.com/lampepfl/dotty/pull/16683) |
| 123 | +- Fix #16680 by registering Ident not containing a symbol [#16689](https://github.com/lampepfl/dotty/pull/16689) |
| 124 | +- Fix #16682: CheckUnused missed some used symbols [#16690](https://github.com/lampepfl/dotty/pull/16690) |
| 125 | +- Fix the non-miniphase tree traverser [#16684](https://github.com/lampepfl/dotty/pull/16684) |
| 126 | + |
| 127 | +## Scala-JS |
| 128 | + |
| 129 | +- Fix #14289: Accept Ident refs to `js.native` in native member rhs. [#16185](https://github.com/lampepfl/dotty/pull/16185) |
| 130 | + |
| 131 | +## Standard Library |
| 132 | + |
| 133 | +- Add `CanEqual` instance for `Map` [#15886](https://github.com/lampepfl/dotty/pull/15886) |
| 134 | +- Refine `Tuple.Append` return type [#16140](https://github.com/lampepfl/dotty/pull/16140) |
| 135 | + |
| 136 | +## TASTy format |
| 137 | + |
| 138 | +- Make it a fatal error if erasure cannot resolve a type [#16373](https://github.com/lampepfl/dotty/pull/16373) |
| 139 | + |
| 140 | +## Tooling |
| 141 | + |
| 142 | +- Add -Yimports compiler flag [#16218](https://github.com/lampepfl/dotty/pull/16218) |
| 143 | +- Allow BooleanSettings to be set with a colon [#16425](https://github.com/lampepfl/dotty/pull/16425) |
| 144 | + |
| 145 | +## Transform |
| 146 | + |
| 147 | +- Avoid stackoverflow in ExplicitOuter [#16381](https://github.com/lampepfl/dotty/pull/16381) |
| 148 | +- Make lazy vals run on non-fallback graal image - remove dynamic reflection [#16346](https://github.com/lampepfl/dotty/pull/16346) |
| 149 | +- Patch to avoid crash in #16351 [#16354](https://github.com/lampepfl/dotty/pull/16354) |
| 150 | +- Don't treat package object's `<init>` methods as package members [#16667](https://github.com/lampepfl/dotty/pull/16667) |
| 151 | +- Space: Refine isSubspace property & an example [#16574](https://github.com/lampepfl/dotty/pull/16574) |
| 152 | + |
| 153 | +## Typer |
| 154 | + |
| 155 | +- Drop requirement that self types are closed [#16648](https://github.com/lampepfl/dotty/pull/16648) |
| 156 | +- Disallow constructor params from appearing in parent types for soundness [#16664](https://github.com/lampepfl/dotty/pull/16664) |
| 157 | +- Don't search implicit arguments in singleton type prefix [#16490](https://github.com/lampepfl/dotty/pull/16490) |
| 158 | +- Don't rely on isProvisional to determine whether atoms computed [#16489](https://github.com/lampepfl/dotty/pull/16489) |
| 159 | +- Support signature polymorphic methods (`MethodHandle` and `VarHandle`) [#16225](https://github.com/lampepfl/dotty/pull/16225) |
| 160 | +- Prefer parameterless alternatives during ambiguous overload resolution [#16315](https://github.com/lampepfl/dotty/pull/16315) |
| 161 | +- Fix calculation to drop transparent classes [#16344](https://github.com/lampepfl/dotty/pull/16344) |
| 162 | +- Test case for issue 16311 [#16317](https://github.com/lampepfl/dotty/pull/16317) |
| 163 | +- Skip caching provisional OrType atoms [#16295](https://github.com/lampepfl/dotty/pull/16295) |
| 164 | +- Avoid cyclic references due to experimental check when inlining [#16195](https://github.com/lampepfl/dotty/pull/16195) |
| 165 | +- Track type variable dependencies to guide instantiation decisions [#16042](https://github.com/lampepfl/dotty/pull/16042) |
| 166 | +- Two fixes to constraint solving [#16353](https://github.com/lampepfl/dotty/pull/16353) |
| 167 | +- Fix regression in cyclic constraint handling [#16514](https://github.com/lampepfl/dotty/pull/16514) |
| 168 | +- Sharpen range approximation for applied types with capture set ranges [#16261](https://github.com/lampepfl/dotty/pull/16261) |
| 169 | +- Cut the Gordian Knot: Don't widen unions to transparent [#15642](https://github.com/lampepfl/dotty/pull/15642) |
| 170 | +- Fix widening logic to keep instantiation within bounds [#16417](https://github.com/lampepfl/dotty/pull/16417) |
| 171 | +- Skip ambiguous reference error when symbols are aliases [#16401](https://github.com/lampepfl/dotty/pull/16401) |
| 172 | +- Avoid incorrect simplifications when updating bounds in the constraint [#16410](https://github.com/lampepfl/dotty/pull/16410) |
| 173 | +- Take `@targetName` into account when resolving extension methods [#16487](https://github.com/lampepfl/dotty/pull/16487) |
| 174 | +- Improve ClassTag handling to avoid invalid ClassTag generation and inference failure [#16492](https://github.com/lampepfl/dotty/pull/16492) |
| 175 | +- Fix extracting the elemType of a union of arrays [#16569](https://github.com/lampepfl/dotty/pull/16569) |
| 176 | +- Make sure annotations are typed in expression contexts [#16699](https://github.com/lampepfl/dotty/pull/16699) |
| 177 | +- Throw a type error when using hk-types in unions or intersections [#16712](https://github.com/lampepfl/dotty/pull/16712) |
| 178 | + |
| 179 | +# Contributors |
| 180 | + |
| 181 | +Thank you to all the contributors who made this release possible 🎉 |
| 182 | + |
| 183 | +According to `git shortlog -sn --no-merges 3.2.2..3.3.0-RC1` these are: |
| 184 | + |
| 185 | +``` |
| 186 | + 225 Martin Odersky |
| 187 | + 73 Dale Wijnand |
| 188 | + 58 Szymon Rodziewicz |
| 189 | + 54 Nicolas Stucki |
| 190 | + 48 Kamil Szewczyk |
| 191 | + 48 Paul Coral |
| 192 | + 30 Paweł Marks |
| 193 | + 28 Florian3k |
| 194 | + 28 Yichen Xu |
| 195 | + 14 Guillaume Martres |
| 196 | + 8 Fengyun Liu |
| 197 | + 8 Michał Pałka |
| 198 | + 7 Chris Birchall |
| 199 | + 7 rochala |
| 200 | + 6 Kacper Korban |
| 201 | + 6 Sébastien Doeraene |
| 202 | + 6 jdudrak |
| 203 | + 5 Seth Tisue |
| 204 | + 5 Som Snytt |
| 205 | + 5 nizhikov |
| 206 | + 4 Filip Zybała |
| 207 | + 4 Jan Chyb |
| 208 | + 4 Michael Pollmeier |
| 209 | + 4 Natsu Kagami |
| 210 | + 3 Jamie Thompson |
| 211 | + 2 Alex |
| 212 | + 2 Anatolii Kmetiuk |
| 213 | + 2 Dmitrii Naumenko |
| 214 | + 2 Lukas Rytz |
| 215 | + 2 adampauls |
| 216 | + 2 yoshinorin |
| 217 | + 1 Alexander Slesarenko |
| 218 | + 1 Chris Kipp |
| 219 | + 1 Guillaume Raffin |
| 220 | + 1 Jakub Kozłowski |
| 221 | + 1 Jan-Pieter van den Heuvel |
| 222 | + 1 Julien Richard-Foy |
| 223 | + 1 Kenji Yoshida |
| 224 | + 1 Philippus |
| 225 | + 1 Szymon R |
| 226 | + 1 Tim Spence |
| 227 | + 1 s.bazarsadaev |
| 228 | +
|
| 229 | +``` |
0 commit comments