|
| 1 | +# Highlights of the release |
| 2 | + |
| 3 | +- Support records in JavaParsers [#16762](https://github.com/lampepfl/dotty/pull/16762) |
| 4 | +- Port JVM backend refactor from Scala 2 [#15322](https://github.com/lampepfl/dotty/pull/15322) |
| 5 | + |
| 6 | +# Other changes and fixes |
| 7 | + |
| 8 | +## Backend |
| 9 | + |
| 10 | +- Disallow mixins where super calls bind to vals [#16908](https://github.com/lampepfl/dotty/pull/16908) |
| 11 | +- Fix #15107: Avoid re-emitting a LineNumber after only LabelNodes. [#16813](https://github.com/lampepfl/dotty/pull/16813) |
| 12 | + |
| 13 | +## Coverage |
| 14 | + |
| 15 | +- Fix #17042: Preserve the shape of secondary ctors in instrumentCoverage. [#17111](https://github.com/lampepfl/dotty/pull/17111) |
| 16 | + |
| 17 | +## Default parameters |
| 18 | + |
| 19 | +- Dupe fix when finding default arg getters [#17058](https://github.com/lampepfl/dotty/pull/17058) |
| 20 | + |
| 21 | +## Documentation |
| 22 | + |
| 23 | +- Fix: ensure syntax blocks for ebnf are marked as such [#16837](https://github.com/lampepfl/dotty/pull/16837) |
| 24 | + |
| 25 | +## Erasure |
| 26 | + |
| 27 | +- Handle `@companionClass` and `@companionMethod` meta-annotations [#17091](https://github.com/lampepfl/dotty/pull/17091) |
| 28 | + |
| 29 | +## Extension Methods |
| 30 | + |
| 31 | +- Support extension methods imported from different objects [#17050](https://github.com/lampepfl/dotty/pull/17050) |
| 32 | + |
| 33 | +## GADTs |
| 34 | + |
| 35 | +- Fix tuple member selection so it works with GADT healing [#16766](https://github.com/lampepfl/dotty/pull/16766) |
| 36 | +- Fix upper bound constraints, that are higher-kinded [#16744](https://github.com/lampepfl/dotty/pull/16744) |
| 37 | +- Split out immutable GadtConstraint [#16602](https://github.com/lampepfl/dotty/pull/16602) |
| 38 | + |
| 39 | +## Implicits |
| 40 | + |
| 41 | +- Improve subtyping check for not yet eta-expanded higher kinded types [#17139](https://github.com/lampepfl/dotty/pull/17139) |
| 42 | +- Harden tpd.Apply/TypeApply in case of errors [#16887](https://github.com/lampepfl/dotty/pull/16887) |
| 43 | +- Try to be more subtle when inferring type parameters of class parents [#16896](https://github.com/lampepfl/dotty/pull/16896) |
| 44 | +- Include `P` in the implicit scope of `P.this.type` [#17088](https://github.com/lampepfl/dotty/pull/17088) |
| 45 | + |
| 46 | +## Incremental Compilation |
| 47 | + |
| 48 | +- Fix under-compilation when the method type in a SAM changes [#16996](https://github.com/lampepfl/dotty/pull/16996) |
| 49 | + |
| 50 | +## Infrastructure |
| 51 | + |
| 52 | +- Set reference version to 3.3.0-RC6 [#17504](https://github.com/lampepfl/dotty/pull/17504) |
| 53 | +- Fix #17119: Download Coursier from GitHub directly [#17141](https://github.com/lampepfl/dotty/pull/17141) |
| 54 | + |
| 55 | +## Inline |
| 56 | + |
| 57 | +- Remove NamedArg from inlined arguments [#17228](https://github.com/lampepfl/dotty/pull/17228) |
| 58 | +- Don't generate a Select for a TermRef with NoPrefix [#16754](https://github.com/lampepfl/dotty/pull/16754) |
| 59 | +- Prepare bodies of inline forwarders eagerly [#16757](https://github.com/lampepfl/dotty/pull/16757) |
| 60 | +- Do not remove inline method implementations until PruneErasedDefs [#17408](https://github.com/lampepfl/dotty/pull/17408) |
| 61 | + |
| 62 | +## Java Interop |
| 63 | + |
| 64 | +- ClassfileParser: allow missing param names (for JDK 21) [#17536](https://github.com/lampepfl/dotty/pull/17536) |
| 65 | + |
| 66 | +## Linting |
| 67 | + |
| 68 | +- Improve -Wunused: locals, privates with unset vars warning #16639 [#17160](https://github.com/lampepfl/dotty/pull/17160) |
| 69 | +- Fix wunused false positive when deriving alias type [#17157](https://github.com/lampepfl/dotty/pull/17157) |
| 70 | +- Port `-Wnonunit-statement` setting for dotty [#16936](https://github.com/lampepfl/dotty/pull/16936) |
| 71 | + |
| 72 | +## Match Types |
| 73 | + |
| 74 | +- Normalize match type usage during implicit lookup [#17457](https://github.com/lampepfl/dotty/pull/17457) |
| 75 | +- Fix #13757: Explicitly disallow higher-kinded scrutinees of match types. [#17322](https://github.com/lampepfl/dotty/pull/17322) |
| 76 | +- Fix match type reduction with wildcard type arguments [#17065](https://github.com/lampepfl/dotty/pull/17065) |
| 77 | +- Fix check whether classtag can be generated for match types [#16708](https://github.com/lampepfl/dotty/pull/16708) |
| 78 | + |
| 79 | +## Parser |
| 80 | + |
| 81 | +- Allow lines starting with `.` to fall outside previous indentation widths [#17056](https://github.com/lampepfl/dotty/pull/17056) |
| 82 | + |
| 83 | +## Pattern Matching |
| 84 | + |
| 85 | +- Fix #11541: Specialize ClassTag[T] in exhaustivity check [#17385](https://github.com/lampepfl/dotty/pull/17385) |
| 86 | +- Check outer class prefixes in type projections when pattern matching [#17136](https://github.com/lampepfl/dotty/pull/17136) |
| 87 | +- Make unchecked cases non-`@unchecked` and non-unreachable [#16958](https://github.com/lampepfl/dotty/pull/16958) |
| 88 | +- Fix #16899: Better handle X instanceOf P where X is T1 | T2 [#17382](https://github.com/lampepfl/dotty/pull/17382) |
| 89 | + |
| 90 | +## Pickling |
| 91 | + |
| 92 | +- ClassfileParser: Avoid cycle when accessing companion in inner class lookup [#16882](https://github.com/lampepfl/dotty/pull/16882) |
| 93 | + |
| 94 | +## Polyfunctions |
| 95 | + |
| 96 | +- Fix type aliases in beta-reduction of polyfunctions [#17054](https://github.com/lampepfl/dotty/pull/17054) |
| 97 | + |
| 98 | +## Quotes |
| 99 | + |
| 100 | +- Register `paramProxy` and `thisProxy` in `Quote` type [#17541](https://github.com/lampepfl/dotty/pull/17541) |
| 101 | +- Only check newVal/newMethod privateWithin on -Xcheck-macros [#17437](https://github.com/lampepfl/dotty/pull/17437) |
| 102 | +- Unencode quote and splice trees [#17342](https://github.com/lampepfl/dotty/pull/17342) |
| 103 | +- Correctly type Expr.ofTupleFromSeq for arity > 22 [#17261](https://github.com/lampepfl/dotty/pull/17261) |
| 104 | +- Use TermRef to distinguish distinct Type[T] instances [#17205](https://github.com/lampepfl/dotty/pull/17205) |
| 105 | +- Check level consistency of SingletonTypeTree as a type [#17209](https://github.com/lampepfl/dotty/pull/17209) |
| 106 | +- Fix splice type variable pattern detection [#17048](https://github.com/lampepfl/dotty/pull/17048) |
| 107 | +- Avoid creation of `@SplicedType` quote local refrences [#17051](https://github.com/lampepfl/dotty/pull/17051) |
| 108 | +- Dealias type references when healing types in quotes [#17049](https://github.com/lampepfl/dotty/pull/17049) |
| 109 | +- Replace quoted type variables in signature of HOAS pattern result [#16951](https://github.com/lampepfl/dotty/pull/16951) |
| 110 | +- Beta-reduce directly applied PolymorphicFunction [#16623](https://github.com/lampepfl/dotty/pull/16623) |
| 111 | +- Use `Object.toString` for `quoted.{Expr, Type}` [#16663](https://github.com/lampepfl/dotty/pull/16663) |
| 112 | +- Fix Splicer.isEscapedVariable [#16838](https://github.com/lampepfl/dotty/pull/16838) |
| 113 | +- Fix references to class members defined in quotes [#17107](https://github.com/lampepfl/dotty/pull/17107) |
| 114 | +- Handle pickled forward references in pickled expressions [#16855](https://github.com/lampepfl/dotty/pull/16855) |
| 115 | +- Fix #16615 - crashes of path dependent types in spliced Type.of [#16773](https://github.com/lampepfl/dotty/pull/16773) |
| 116 | +- Disallow local term references in staged types [#16362](https://github.com/lampepfl/dotty/pull/16362) |
| 117 | +- Refactor level checking / type healing logic [#17082](https://github.com/lampepfl/dotty/pull/17082) |
| 118 | +- Dealias quoted types when staging [#17059](https://github.com/lampepfl/dotty/pull/17059) |
| 119 | +- Fix quotes with references to path dependent types [#17081](https://github.com/lampepfl/dotty/pull/17081) |
| 120 | +- Make arguments order in quote hole deterministic [#17405](https://github.com/lampepfl/dotty/pull/17405) |
| 121 | +- Only transform the body of the quote with QuoteTransformer [#17451](https://github.com/lampepfl/dotty/pull/17451) |
| 122 | +- Place staged type captures in Quote AST [#17424](https://github.com/lampepfl/dotty/pull/17424) |
| 123 | +- Add SplicePattern AST to parse and type quote pattern splices [#17396](https://github.com/lampepfl/dotty/pull/17396) |
| 124 | + |
| 125 | +## Reflection |
| 126 | + |
| 127 | +- -Xcheck-macros: add hint when a symbol in created twice [#16733](https://github.com/lampepfl/dotty/pull/16733) |
| 128 | +- Assert that symbols created using reflect API have correct privateWithin symbols [#17352](https://github.com/lampepfl/dotty/pull/17352) |
| 129 | +- Fix reflect.LambdaType type test [#16972](https://github.com/lampepfl/dotty/pull/16972) |
| 130 | +- Improve `New`/`Select` -Ycheck message [#16746](https://github.com/lampepfl/dotty/pull/16746) |
| 131 | +- Improve error message for CyclicReference in macros [#16749](https://github.com/lampepfl/dotty/pull/16749) |
| 132 | +- Add reflect `defn.FunctionClass` overloads [#16849](https://github.com/lampepfl/dotty/pull/16849) |
| 133 | + |
| 134 | +## REPL |
| 135 | + |
| 136 | +- Always load REPL classes in macros including the output directory [#16866](https://github.com/lampepfl/dotty/pull/16866) |
| 137 | + |
| 138 | +## Reporting |
| 139 | + |
| 140 | +- Improve missing argument list error [#17126](https://github.com/lampepfl/dotty/pull/17126) |
| 141 | +- Improve implicit parameter error message with aliases [#17125](https://github.com/lampepfl/dotty/pull/17125) |
| 142 | +- Improve "constructor proxy shadows outer" handling [#17154](https://github.com/lampepfl/dotty/pull/17154) |
| 143 | +- Clarify ambiguous reference error message [#16137](https://github.com/lampepfl/dotty/pull/16137) |
| 144 | +- Hint about forbidden combination of implicit values and conversions [#16735](https://github.com/lampepfl/dotty/pull/16735) |
| 145 | +- Attach explanation message to diagnostic message [#16787](https://github.com/lampepfl/dotty/pull/16787) |
| 146 | +- Propagate implicit search errors from implicit macros [#16840](https://github.com/lampepfl/dotty/pull/16840) |
| 147 | +- Detail UnapplyInvalidReturnType error message [#17167](https://github.com/lampepfl/dotty/pull/17167) |
| 148 | +- Add way to debug -Xcheck-macros tree checking [#16973](https://github.com/lampepfl/dotty/pull/16973) |
| 149 | +- Enrich and finesse compiler crash reporting [#17031](https://github.com/lampepfl/dotty/pull/17031) |
| 150 | +- Allow @implicitNotFound messages as explanations [#16893](https://github.com/lampepfl/dotty/pull/16893) |
| 151 | +- Include top-level symbols from same file in outer ambiguity error [#17033](https://github.com/lampepfl/dotty/pull/17033) |
| 152 | +- Do not issue deprecation warnings when declaring deprecated case classes [#17165](https://github.com/lampepfl/dotty/pull/17165) |
| 153 | + |
| 154 | +## Scala-JS |
| 155 | + |
| 156 | +- Fix #17344: Make implicit references to this above dynamic imports explicit. [#17357](https://github.com/lampepfl/dotty/pull/17357) |
| 157 | +- Fix #12621: Better error message for JS trait ctor param. [#16811](https://github.com/lampepfl/dotty/pull/16811) |
| 158 | +- Fix #16801: Handle Closure's of s.r.FunctionXXL. [#16809](https://github.com/lampepfl/dotty/pull/16809) |
| 159 | +- Fix #17549: Unify how Memoize and Constructors decide what fields need storing. [#17560](https://github.com/lampepfl/dotty/pull/17560) |
| 160 | + |
| 161 | +## Scaladoc |
| 162 | + |
| 163 | +- Feat: Add a blog configuration with yaml [#17214](https://github.com/lampepfl/dotty/pull/17214) |
| 164 | +- Don't render the "$" for module [#17302](https://github.com/lampepfl/dotty/pull/17302) |
| 165 | +- Fix: Add scrollbar to the sidebar [#17203](https://github.com/lampepfl/dotty/pull/17203) |
| 166 | +- Scaladoc: fix crash when processing extends call [#17260](https://github.com/lampepfl/dotty/pull/17260) |
| 167 | +- Fix: Modify the CSS so that the logo of the generated documentation is adaptive [#17172](https://github.com/lampepfl/dotty/pull/17172) |
| 168 | +- Fix: Remove the duplicate parameter when generating the scaladoc. [#17097](https://github.com/lampepfl/dotty/pull/17097) |
| 169 | +- Fix: padding top in mobile version [#17019](https://github.com/lampepfl/dotty/pull/17019) |
| 170 | +- Fix: tap target of the menu in Mobile version [#17018](https://github.com/lampepfl/dotty/pull/17018) |
| 171 | +- Scaladoc: Fix expand icon not changing on anchor link [#17053](https://github.com/lampepfl/dotty/pull/17053) |
| 172 | +- Scaladoc: fix inkuire generation for PolyTypes [#17129](https://github.com/lampepfl/dotty/pull/17129) |
| 173 | +- Re port scroll bar [#17463](https://github.com/lampepfl/dotty/pull/17463) |
| 174 | +- Handle empty files and truncated YAML front matter [#17527](https://github.com/lampepfl/dotty/pull/17527) |
| 175 | + |
| 176 | +## SemanticDB |
| 177 | + |
| 178 | +- Make sure symbol exists before calling owner [#16860](https://github.com/lampepfl/dotty/pull/16860) |
| 179 | +- Support LambdaType (convert from HKTypeLambda) [#16056](https://github.com/lampepfl/dotty/pull/16056) |
| 180 | + |
| 181 | +## Specification |
| 182 | + |
| 183 | +- Apply `class-shadowing.md` to the Spec [#16839](https://github.com/lampepfl/dotty/pull/16839) |
| 184 | +- Adding base for future Spec into the compiler repo [#16825](https://github.com/lampepfl/dotty/pull/16825) |
| 185 | + |
| 186 | +## Standard Library |
| 187 | + |
| 188 | +- Optimization: avoid NotGiven allocations [#17090](https://github.com/lampepfl/dotty/pull/17090) |
| 189 | + |
| 190 | +## Tooling |
| 191 | + |
| 192 | +- Disable `ExtractSemanticDB` phase when writing to output directory defined as JAR. [#16790](https://github.com/lampepfl/dotty/pull/16790) |
| 193 | +- Print owner of bind symbol with -Yprint-debug-owners [#16854](https://github.com/lampepfl/dotty/pull/16854) |
| 194 | +- Small fixes to allow using Metals with scaladoc with sbt [#16816](https://github.com/lampepfl/dotty/pull/16816) |
| 195 | + |
| 196 | +## Transform |
| 197 | + |
| 198 | +- Move CrossVersionChecks before FirstTransform [#17301](https://github.com/lampepfl/dotty/pull/17301) |
| 199 | +- Fix needsOuterIfReferenced [#17159](https://github.com/lampepfl/dotty/pull/17159) |
| 200 | +- Drop incorrect super accessor in trait subclass [#17062](https://github.com/lampepfl/dotty/pull/17062) |
| 201 | +- Generate toString only for synthetic companions of case classes [#16890](https://github.com/lampepfl/dotty/pull/16890) |
| 202 | +- Check trait constructor for accessibility even if not called at Typer [#17094](https://github.com/lampepfl/dotty/pull/17094) |
| 203 | +- Fix #17435: A simpler fix [#17436](https://github.com/lampepfl/dotty/pull/17436) |
| 204 | + |
| 205 | +## Typer |
| 206 | + |
| 207 | +- Preserve type bounds for inlined definitions in posttyper [#17190](https://github.com/lampepfl/dotty/pull/17190) |
| 208 | +- Change logic to find members of recursive types [#17386](https://github.com/lampepfl/dotty/pull/17386) |
| 209 | +- Recognize named arguments in isFunctionWithUnknownParamType [#17161](https://github.com/lampepfl/dotty/pull/17161) |
| 210 | +- Better comparisons for type projections [#17092](https://github.com/lampepfl/dotty/pull/17092) |
| 211 | +- Allow selectDynamic and applyDynamic to be extension methods [#17106](https://github.com/lampepfl/dotty/pull/17106) |
| 212 | +- Fix use of accessibleFrom when finding default arg getters [#16977](https://github.com/lampepfl/dotty/pull/16977) |
| 213 | +- Map class literal constant types [#16988](https://github.com/lampepfl/dotty/pull/16988) |
| 214 | +- Always use adapted type in withDenotation [#16901](https://github.com/lampepfl/dotty/pull/16901) |
| 215 | +- Restrict captureWildcards to only be used if needed [#16799](https://github.com/lampepfl/dotty/pull/16799) |
| 216 | +- Don't capture wildcards if in closure or by-name [#16732](https://github.com/lampepfl/dotty/pull/16732) |
| 217 | +- Infer: Don't minimise to Nothing if there's an upper bound [#16786](https://github.com/lampepfl/dotty/pull/16786) |
| 218 | +- Perform Matchable check only if type test is needed [#16824](https://github.com/lampepfl/dotty/pull/16824) |
| 219 | +- Don't eta expand unary varargs methods [#16892](https://github.com/lampepfl/dotty/pull/16892) |
| 220 | +- Fix beta-reduction with `Nothing` and `null` args [#16938](https://github.com/lampepfl/dotty/pull/16938) |
| 221 | +- Generate kind-correct wildcards when selecting from a wildcard [#17025](https://github.com/lampepfl/dotty/pull/17025) |
| 222 | +- Fix #16405 ctd - wildcards prematurely resolving to Nothing [#16764](https://github.com/lampepfl/dotty/pull/16764) |
| 223 | +- Test: add regression test for #7790 [#17473](https://github.com/lampepfl/dotty/pull/17473) |
| 224 | +- Properly handle `AnyVal`s as refinement members of `Selectable`s [#16286](https://github.com/lampepfl/dotty/pull/16286) |
| 225 | + |
| 226 | +# Contributors |
| 227 | + |
| 228 | +Thank you to all the contributors who made this release possible 🎉 |
| 229 | + |
| 230 | +According to `git shortlog -sn --no-merges 3.3.0..3.3.1-RC1` these are: |
| 231 | + |
| 232 | +``` |
| 233 | + 148 Nicolas Stucki |
| 234 | + 65 Martin Odersky |
| 235 | + 51 Szymon Rodziewicz |
| 236 | + 49 Dale Wijnand |
| 237 | + 49 Quentin Bernet |
| 238 | + 38 Chris Kipp |
| 239 | + 19 David Hua |
| 240 | + 18 Lucas |
| 241 | + 18 ysthakur |
| 242 | + 15 Fengyun Liu |
| 243 | + 15 Paweł Marks |
| 244 | + 14 Guillaume Martres |
| 245 | + 14 Jamie Thompson |
| 246 | + 11 Sébastien Doeraene |
| 247 | + 9 Timothée Andres |
| 248 | + 8 Kacper Korban |
| 249 | + 7 Matt Bovel |
| 250 | + 7 Som Snytt |
| 251 | + 6 Julien Richard-Foy |
| 252 | + 6 Lucas Leblanc |
| 253 | + 5 Michał Pałka |
| 254 | + 4 Anatolii Kmetiuk |
| 255 | + 4 Guillaume Raffin |
| 256 | + 4 Paul Coral |
| 257 | + 4 Wojciech Mazur |
| 258 | + 4 Yichen Xu |
| 259 | + 3 Decel |
| 260 | + 3 Jan Chyb |
| 261 | + 2 Adrien Piquerez |
| 262 | + 2 Arman Bilge |
| 263 | + 2 Carl |
| 264 | + 2 Florian3k |
| 265 | + 2 Kenji Yoshida |
| 266 | + 2 Michael Pilquist |
| 267 | + 2 Natsu Kagami |
| 268 | + 2 Seth Tisue |
| 269 | + 2 Tomasz Godzik |
| 270 | + 2 Vasil Vasilev |
| 271 | + 2 Yadu Krishnan |
| 272 | + 1 Bersier |
| 273 | + 1 Flavio Brasil |
| 274 | + 1 Jan-Pieter van den Heuvel |
| 275 | + 1 Lukas Rytz |
| 276 | + 1 Miles Yucht |
| 277 | + 1 Mohammad Yousuf Minhaj Zia |
| 278 | + 1 Ondra Pelech |
| 279 | + 1 Philippus |
| 280 | + 1 Rikito Taniguchi |
| 281 | + 1 Simon R |
| 282 | + 1 brandonspark |
| 283 | + 1 github-actions[bot] |
| 284 | + 1 liang3zy22 |
| 285 | + 1 s.bazarsadaev |
| 286 | + 1 Łukasz Wroński |
| 287 | +
|
| 288 | +``` |
0 commit comments