|
| 1 | +# Highlights of the release |
| 2 | + |
| 3 | +- Add sources of synthetic classes to sources jar [#20904](https://github.com/lampepfl/dotty/pull/20904) |
| 4 | + |
| 5 | +# Other changes and fixes |
| 6 | + |
| 7 | +## Annotations |
| 8 | + |
| 9 | +- Preventing compilation of a @tailrec method when it does not rewrite, but an inner method does [#20143](https://github.com/lampepfl/dotty/pull/20143) |
| 10 | +- #20145 - bugfix when a return tailrec is called inside a val def. [#20652](https://github.com/lampepfl/dotty/pull/20652) |
| 11 | + |
| 12 | +## Backend |
| 13 | + |
| 14 | +- Fix EnclosingMethod for lifted anonfun [#20558](https://github.com/lampepfl/dotty/pull/20558) |
| 15 | +- Emit switch bytecode when matching unions of a switchable type [#20411](https://github.com/lampepfl/dotty/pull/20411) |
| 16 | +- Fix deterministically adding additional interfaces [#20593](https://github.com/lampepfl/dotty/pull/20593) |
| 17 | +- Emit generatedNonLocalClass in backend when callback is not enabled [#21186](https://github.com/scala/scala3/pull/21186) |
| 18 | + |
| 19 | +## Documentation |
| 20 | + |
| 21 | +- Avoid jpath in example [#20775](https://github.com/lampepfl/dotty/pull/20775) |
| 22 | +- Chore: Fix doc link in clauseInterleaving docstring [#20590](https://github.com/lampepfl/dotty/pull/20590) |
| 23 | +- Chore: fix doc link in namedTuples docstring [#20770](https://github.com/lampepfl/dotty/pull/20770) |
| 24 | + |
| 25 | +## Erasure |
| 26 | + |
| 27 | +- Don't re-balance AndTypes arising from supertypes [#20400](https://github.com/lampepfl/dotty/pull/20400) |
| 28 | + |
| 29 | +## GADTs |
| 30 | + |
| 31 | +- Harden GADT constraint handling to survive illegal F-bounds [#20325](https://github.com/lampepfl/dotty/pull/20325) |
| 32 | + |
| 33 | +## Inferencing |
| 34 | + |
| 35 | +- Adapt toInstantiate in interpolateTypeVars to consider #20399 [#20426](https://github.com/lampepfl/dotty/pull/20426) |
| 36 | + |
| 37 | +## Infrastructure |
| 38 | + |
| 39 | +- Update `addToBackportingProject.scala` [#20461](https://github.com/lampepfl/dotty/pull/20461) |
| 40 | +- Simple scripts to run non-bootstrapped compiler after 'sbt buildQuick' [#19894](https://github.com/lampepfl/dotty/pull/19894) |
| 41 | +- Bump from 3.4.0 to 3.5.0-RC1 for MiMA [#20404](https://github.com/lampepfl/dotty/pull/20404) |
| 42 | +- Set reference version to 3.5.0-RC4 [#21175](https://github.com/scala/scala3/pull/21175) |
| 43 | +- Bring back windows performance improvements [#20423](https://github.com/lampepfl/dotty/pull/20423) |
| 44 | +- Bump scalacenter/sbt-dependency-submission from 2 to 3 [#20440](https://github.com/lampepfl/dotty/pull/20440) |
| 45 | +- Fix incorrect paths to sha256 check sum files in release workflow [#20709](https://github.com/lampepfl/dotty/pull/20709) |
| 46 | +- Bump VirtusLab/scala-cli-setup from 1.3.2 to 1.4.0 [#20906](https://github.com/lampepfl/dotty/pull/20906) |
| 47 | + |
| 48 | +## Inline |
| 49 | + |
| 50 | +- Mark genSJSIR as *disabled* (rather than non-*runnable*) when no `-scalajs`. [#20815](https://github.com/lampepfl/dotty/pull/20815) |
| 51 | +- Map over refs of `ImportType`s in `TypeMap` [#20837](https://github.com/lampepfl/dotty/pull/20837) |
| 52 | + |
| 53 | +## Initialization |
| 54 | + |
| 55 | +- More principled filtering of abstract values in initialization check [#20548](https://github.com/lampepfl/dotty/pull/20548) |
| 56 | + |
| 57 | +## Match Types |
| 58 | + |
| 59 | +- TryCompiletimeConstantFold in disjointnessBoundary [#20168](https://github.com/lampepfl/dotty/pull/20168) |
| 60 | + |
| 61 | +## Pattern Matching |
| 62 | + |
| 63 | +- Fix #20372: Check pattern match exhaustivity in inlined code [#20403](https://github.com/lampepfl/dotty/pull/20403) |
| 64 | + |
| 65 | +## Presentation Compiler |
| 66 | + |
| 67 | +- Add pattern completion for unapply contexts [#20274](https://github.com/lampepfl/dotty/pull/20274) |
| 68 | +- Bugfix: Exclude newer LSP4j, which is built on JDK 11 [#20771](https://github.com/lampepfl/dotty/pull/20771) |
| 69 | +- Chore: Bump mtags to latest stable [#20442](https://github.com/lampepfl/dotty/pull/20442) |
| 70 | +- Weekly metals backport [#20542](https://github.com/lampepfl/dotty/pull/20542) |
| 71 | +- Port pc find references from metals [#20544](https://github.com/lampepfl/dotty/pull/20544) |
| 72 | + |
| 73 | +## Quotes |
| 74 | + |
| 75 | +- Add regression test for issue 20309 [#20387](https://github.com/lampepfl/dotty/pull/20387) |
| 76 | + |
| 77 | +## REPL |
| 78 | + |
| 79 | +- Only consider methods with 0 parameters in valueOf [#20543](https://github.com/lampepfl/dotty/pull/20543) |
| 80 | + |
| 81 | +## Reflection |
| 82 | + |
| 83 | +- Fix erasure crash for Inlined rhs of a context function closure [#20398](https://github.com/lampepfl/dotty/pull/20398) |
| 84 | +- Fix #20458: do not expose ClassInfo in quotes reflect widenTermRefByName [#20468](https://github.com/lampepfl/dotty/pull/20468) |
| 85 | + |
| 86 | +## Reporting |
| 87 | + |
| 88 | +- Fix error message on setter with wrong type [#20444](https://github.com/lampepfl/dotty/pull/20444) |
| 89 | +- Add a specific error message for local final defs [#20557](https://github.com/lampepfl/dotty/pull/20557) |
| 90 | +- Explain unresolvable references better [#20477](https://github.com/lampepfl/dotty/pull/20477) |
| 91 | +- Add error code to diagnostics about unused code [#19780](https://github.com/lampepfl/dotty/pull/19780) |
| 92 | +- Better error diagnostics for illegal match cases [#20905](https://github.com/lampepfl/dotty/pull/20905) |
| 93 | + |
| 94 | +## Runner |
| 95 | + |
| 96 | +- Bump scala-cli to 1.4.1 + drop old cli management [#21234](https://github.com/scala/scala3/pull/21234) |
| 97 | +- Bump scala-cli to 1.4.3 [#21338](https://github.com/scala/scala3/pull/21338) |
| 98 | + |
| 99 | +## Scaladoc |
| 100 | + |
| 101 | +- Fix handling of right associative extension methods across scaladoc and printers [#20467](https://github.com/lampepfl/dotty/pull/20467) |
| 102 | + |
| 103 | +## Specification |
| 104 | + |
| 105 | +- Add binary lits to syntax summaries [#19551](https://github.com/lampepfl/dotty/pull/19551) |
| 106 | + |
| 107 | +## Settings |
| 108 | + |
| 109 | +- Enhance help message for language flag [#20247](https://github.com/lampepfl/dotty/pull/20247) |
| 110 | +- Accept legacy language features [#20454](https://github.com/lampepfl/dotty/pull/20454) |
| 111 | +- Set default source version to 3.5 [#20435](https://github.com/lampepfl/dotty/pull/20435) |
| 112 | + |
| 113 | +## Tooling |
| 114 | + |
| 115 | +- Improve source positions emited for synthetic unit in if-conditions [#20431](https://github.com/lampepfl/dotty/pull/20431) |
| 116 | +- Adjust the API name entry for nested classes [#20279](https://github.com/lampepfl/dotty/pull/20279) |
| 117 | +- Fix declaring product of straight-to-jar compilation [#20592](https://github.com/lampepfl/dotty/pull/20592) |
| 118 | + |
| 119 | +## Transform |
| 120 | + |
| 121 | +- Correct Java signature for value classes appearing in type arguments [#20463](https://github.com/lampepfl/dotty/pull/20463) |
| 122 | + |
| 123 | +## Typer |
| 124 | + |
| 125 | +- Retry `constraint.replace` after `constraint.updateEntry` [#20399](https://github.com/lampepfl/dotty/pull/20399) |
| 126 | +- Add special handling for comparisons with Singleton types [#20474](https://github.com/lampepfl/dotty/pull/20474) |
| 127 | +- Reinstantiate restriction to transparent inline methods [#20371](https://github.com/lampepfl/dotty/pull/20371) |
| 128 | +- Add regression test for #20288 fixed in #20527 [#20857](https://github.com/lampepfl/dotty/pull/20857) |
| 129 | +- Fix isEffectivelySingleton [#20486](https://github.com/lampepfl/dotty/pull/20486) |
| 130 | +- Fall back to direct subtype comparison at the end in dropIfSuper and dropIfSub [#20523](https://github.com/lampepfl/dotty/pull/20523) |
| 131 | +- Mark AppliedType cachedSuper valid Nowhere when using provisional args [#20527](https://github.com/lampepfl/dotty/pull/20527) |
| 132 | +- Fix healAmbiguous to compareAlternatives with disambiguate = true [#21372](https://github.com/scala/scala3/pull/21372) |
| 133 | + |
| 134 | +# Experimentqal Changes |
| 135 | + |
| 136 | +## Capture Checking |
| 137 | + |
| 138 | +- Fix soundness hole of forgotten reach capabilities [#20524](https://github.com/lampepfl/dotty/pull/20524) |
| 139 | +- Drop @capability annotations [#20396](https://github.com/lampepfl/dotty/pull/20396) |
| 140 | +- Fix symbol reference retrivial for `scala.caps.Caps` [#20493](https://github.com/lampepfl/dotty/pull/20493) |
| 141 | +- Refactor adaptBoxed [#20525](https://github.com/lampepfl/dotty/pull/20525) |
| 142 | +- Fix error related to reaches when using scala2-library-cc-tasty [#20528](https://github.com/lampepfl/dotty/pull/20528) |
| 143 | + |
| 144 | +## Named tuples |
| 145 | + |
| 146 | +- Make NamedTuple.Empty an alias to NamedTuple [#20502](https://github.com/lampepfl/dotty/pull/20502) |
| 147 | +- Move NamedTuple methods to separate scope. re-export [#20504](https://github.com/lampepfl/dotty/pull/20504) |
| 148 | +- WidenDealias before extracting namedTupleElementTypes [#20505](https://github.com/lampepfl/dotty/pull/20505) |
| 149 | +- Improve type inference for literal named tuples [#20497](https://github.com/lampepfl/dotty/pull/20497) |
| 150 | +- Fix issue #20267 with regression test [#20506](https://github.com/lampepfl/dotty/pull/20506) |
| 151 | +- Only set `AppliedType#validSuper` after `AppliedType#cachedSuper` [#20553](https://github.com/lampepfl/dotty/pull/20553) |
| 152 | +- Fix NamedTuple selection on an unstable prefix [#20455](https://github.com/lampepfl/dotty/pull/20455) |
| 153 | +- Allow `apply` adaptation on Selectable with Fields [#20489](https://github.com/lampepfl/dotty/pull/20489) |
| 154 | + |
| 155 | +# Contributors |
| 156 | + |
| 157 | +Thank you to all the contributors who made this release possible 🎉 |
| 158 | + |
| 159 | +According to `git shortlog -sn --no-merges 3.5.0..3.5.1` these are: |
| 160 | + |
| 161 | +``` |
| 162 | + 82 Martin Odersky |
| 163 | + 29 Wojciech Mazur |
| 164 | + 22 Hamza REMMAL |
| 165 | + 16 Jamie Thompson |
| 166 | + 15 Eugene Flesselle |
| 167 | + 14 Hamza Remmal |
| 168 | + 13 noti0na1 |
| 169 | + 9 Katarzyna Marek |
| 170 | + 7 Fengyun Liu |
| 171 | + 7 Jan Chyb |
| 172 | + 6 Dale Wijnand |
| 173 | + 6 Guillaume Martres |
| 174 | + 5 Som Snytt |
| 175 | + 4 dependabot[bot] |
| 176 | + 3 Adrien Piquerez |
| 177 | + 3 Derek Wickern |
| 178 | + 3 Matt Bovel |
| 179 | + 3 OlegYch |
| 180 | + 2 Florian3k |
| 181 | + 2 Kacper Korban |
| 182 | + 2 Lucy Martin |
| 183 | + 2 Paweł Marks |
| 184 | + 2 Tomasz Godzik |
| 185 | + 1 Arnout Engelen |
| 186 | + 1 Eugene Yokota |
| 187 | + 1 João Ferreira |
| 188 | + 1 Kasper Kondzielski |
| 189 | + 1 Lucas Nouguier |
| 190 | + 1 Lukas Rytz |
| 191 | + 1 Mikołaj Fornal |
| 192 | + 1 Nafer Sanabria |
| 193 | + 1 Natsu Kagami |
| 194 | + 1 Seth Tisue |
| 195 | + 1 Sébastien Doeraene |
| 196 | +``` |
0 commit comments