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