|
| 1 | +This release is identical to the first release candidate. We decided to re-release because there were some problems with artifact propagation to the maven due to sonatype incident. This changelog is copied for the RC1. |
| 2 | + |
| 3 | +# Highlights of the release |
| 4 | + |
| 5 | +- f-interpolator: Scala 2 parity and bugfixes [#13367](https://github. This changelog is copied for the RC1.com/lampepfl/dotty/pull/13367) |
| 6 | +- Show inlined positions with source code on errors [#14002](https://github.com/lampepfl/dotty/pull/14002) |
| 7 | +- Add reflect `ClassDef.apply` and `Symbol.newClass` [#14124](https://github.com/lampepfl/dotty/pull/14124) |
| 8 | +- Add experimental `TupledFunction` [#14414](https://github.com/lampepfl/dotty/pull/14414) |
| 9 | + |
| 10 | +# Other changes and fixes |
| 11 | + |
| 12 | +## Backend |
| 13 | + |
| 14 | +- Filter out static forwarders for Java package private methods [#14662](https://github.com/lampepfl/dotty/pull/14662) |
| 15 | +- Emit all classes as public to avoid object deserialization issues [#14686](https://github.com/lampepfl/dotty/pull/14686) |
| 16 | +- Upgrade to ASM 9.2 [#14711](https://github.com/lampepfl/dotty/pull/14711) |
| 17 | + |
| 18 | +## Desugaring |
| 19 | + |
| 20 | +- Adapt function arguments to n-ary prototype [#14651](https://github.com/lampepfl/dotty/pull/14651) |
| 21 | + |
| 22 | +## Erasure |
| 23 | + |
| 24 | +- Don't optimize explicitly written isInstanceOf tests away. [#14715](https://github.com/lampepfl/dotty/pull/14715) |
| 25 | + |
| 26 | +## Exports |
| 27 | + |
| 28 | +- Fix use of exported prefix [#14461](https://github.com/lampepfl/dotty/pull/14461) |
| 29 | +- Export constructor proxies for parameterized classes [#14681](https://github.com/lampepfl/dotty/pull/14681) |
| 30 | + |
| 31 | +## GADT |
| 32 | + |
| 33 | +- Fix [#14726](https://github.com/lampepfl/dotty/issues/14726): call exclusiveLower before addLess during unification [#14727](https://github.com/lampepfl/dotty/pull/14727) |
| 34 | +- Avoid unsound GADT constraints derived from subtyping relations between singletons and refined types [#14728](https://github.com/lampepfl/dotty/pull/14728) |
| 35 | +- Keep correct kind when preparing constraint in `stripParams` [#14761](https://github.com/lampepfl/dotty/pull/14761) |
| 36 | + |
| 37 | +## Initialization |
| 38 | + |
| 39 | +- Add special case to init checker to always allow certain methods [#14352](https://github.com/lampepfl/dotty/pull/14352) |
| 40 | + |
| 41 | +## Implicits |
| 42 | + |
| 43 | +- Avoid unnecessary under-constrained implicit searches [#14353](https://github.com/lampepfl/dotty/pull/14353) |
| 44 | +- Prevent implicit conversion chaining [#14750](https://github.com/lampepfl/dotty/pull/14750) |
| 45 | +- Fix hasKnownMembers [#14762](https://github.com/lampepfl/dotty/pull/14762) |
| 46 | + |
| 47 | +## Match types |
| 48 | + |
| 49 | +- Fix [#13855](https://github.com/lampepfl/dotty/issues/13855): Chaining Match Types fails at value level [#14354](https://github.com/lampepfl/dotty/pull/14354) |
| 50 | +- Constrain pattern types when typing a match type case [#14563](https://github.com/lampepfl/dotty/pull/14563) |
| 51 | +- Fix bounds of match type cases [#14645](https://github.com/lampepfl/dotty/pull/14645) |
| 52 | + |
| 53 | +## Metaprogramming |
| 54 | + |
| 55 | +- Allow nested Quotes with a different owners [#13652](https://github.com/lampepfl/dotty/pull/13652) |
| 56 | +- Add typed versions of `Mirror.ProductOf#fromProduct` [#14114](https://github.com/lampepfl/dotty/pull/14114) |
| 57 | +- Fix [#14393](https://github.com/lampepfl/dotty/issues/14393): foldOver in default TreeAccumulator can't process Typed nodes [#14396](https://github.com/lampepfl/dotty/pull/14396) |
| 58 | +- Fix invariant quote type holes [#14425](https://github.com/lampepfl/dotty/pull/14425) |
| 59 | +- Make singleton operations covariant [#14452](https://github.com/lampepfl/dotty/pull/14452) |
| 60 | +- Find inline calls inserted in synthetic members [#14480](https://github.com/lampepfl/dotty/pull/14480) |
| 61 | +- Don't generate `Mirror.Sum` for simple enum cases [#14525](https://github.com/lampepfl/dotty/pull/14525) |
| 62 | +- Collect all local class definitions [#14528](https://github.com/lampepfl/dotty/pull/14528) |
| 63 | +- Only make the staged parts of a quote inlineable [#14604](https://github.com/lampepfl/dotty/pull/14604) |
| 64 | +- Tolerate some faults when copying trees in `InlineTreeMap` [#14674](https://github.com/lampepfl/dotty/pull/14674) |
| 65 | +- Handle this prefix in objects (in quote patterns) [#14732](https://github.com/lampepfl/dotty/pull/14732) |
| 66 | +- Detect when position is not in known source [#14801](https://github.com/lampepfl/dotty/pull/14801) |
| 67 | +- Handle `SummonFrom` in reflect `TreeAccumulator` [#14809](https://github.com/lampepfl/dotty/pull/14809) |
| 68 | +-Handle situation where an inline info cannot be computed [#14827](https://github.com/lampepfl/dotty/pull/14827) |
| 69 | + |
| 70 | +## Opaque Types |
| 71 | + |
| 72 | +- Disallow overriding opaque type aliases [#14665](https://github.com/lampepfl/dotty/pull/14665) |
| 73 | +- Disallow private opaque type aliases [#14666](https://github.com/lampepfl/dotty/pull/14666) |
| 74 | +- Generate opaque proxies also for base classes [#14668](https://github.com/lampepfl/dotty/pull/14668) |
| 75 | + |
| 76 | +## Parser |
| 77 | + |
| 78 | +- Accept supplementary Unicode characters [#13136](https://github.com/lampepfl/dotty/pull/13136) |
| 79 | +- Don't compute indents when in a string [#14441](https://github.com/lampepfl/dotty/pull/14441) |
| 80 | +- Parse empty arguments in (invalid) `Apply` more often [#14463](https://github.com/lampepfl/dotty/pull/14463) |
| 81 | +- Expand span errorTermTree to include skipped span. [#14492](https://github.com/lampepfl/dotty/pull/14492) |
| 82 | +- Fix lookahead logic in Scanner [#14562](https://github.com/lampepfl/dotty/pull/14562) |
| 83 | +- Add private inteface methods parsing in JavaParser [#14643](https://github.com/lampepfl/dotty/pull/14643) |
| 84 | +- Reject postfix ops already in Parser [#14677](https://github.com/lampepfl/dotty/pull/14677) |
| 85 | +- Syntax error recovery [#14695](https://github.com/lampepfl/dotty/pull/14695) |
| 86 | + |
| 87 | +## Pattern matching |
| 88 | + |
| 89 | +- For generic tuples, call `Tuples.apply` instead of `_1/_2/..` [#14296](https://github.com/lampepfl/dotty/pull/14296) |
| 90 | +- Preserve the intersection of disjoint numbers in match analysis [#14550](https://github.com/lampepfl/dotty/pull/14550) |
| 91 | +- Fix casting of generic tuple selection [#14590](https://github.com/lampepfl/dotty/pull/14590) |
| 92 | +- Ignore private/sealed abstract class/traits [#14599](https://github.com/lampepfl/dotty/pull/14599) |
| 93 | +- Drop special treatment for Scala-2 code in unapply [#14766](https://github.com/lampepfl/dotty/pull/14766) |
| 94 | + |
| 95 | +## Pickling |
| 96 | + |
| 97 | +- Disable type simplify in unpickler [#14506](https://github.com/lampepfl/dotty/pull/14506) |
| 98 | +- Check if package names will be encoded in desugar [#14597](https://github.com/lampepfl/dotty/pull/14597) |
| 99 | +- Fix picking default syntax for comments [#14725](https://github.com/lampepfl/dotty/pull/14725) |
| 100 | + |
| 101 | +## Refchecks |
| 102 | + |
| 103 | +- Don't skip override tests when overridden is `AbsOverride` [#14527](https://github.com/lampepfl/dotty/pull/14527) |
| 104 | +- Extend "cannot override mutable variable" restriction to deferred var… [#14724](https://github.com/lampepfl/dotty/pull/14724) |
| 105 | + |
| 106 | +## Repl |
| 107 | + |
| 108 | +- Avoid stale import context during REPL parsing [#14493](https://github.com/lampepfl/dotty/pull/14493) |
| 109 | +- Fix #11202: Incorrect highlight for type constructor [#14518](https://github.com/lampepfl/dotty/pull/14518) |
| 110 | +- Make empty catch an incomplete. [#14519](https://github.com/lampepfl/dotty/pull/14519) |
| 111 | +- Add in feedback when resetting REPL state [#14521](https://github.com/lampepfl/dotty/pull/14521) |
| 112 | +- Fix [#14535](https://github.com/lampepfl/dotty/issues/14535): End marker now has the same color as its definition in repl [#14555](https://github.com/lampepfl/dotty/pull/14555) |
| 113 | +- Add backticks when needed in completions [#14594](https://github.com/lampepfl/dotty/pull/14594) |
| 114 | +- Autocomplete repl commands [#14627](https://github.com/lampepfl/dotty/pull/14627) |
| 115 | +- Harden REPL in presence of values that fail to initialize [#14702](https://github.com/lampepfl/dotty/pull/14702) |
| 116 | + |
| 117 | +## Reporting |
| 118 | + |
| 119 | +- Change error message text from "fully-initialized" to "fully initialized" [#14400](https://github.com/lampepfl/dotty/pull/14400) |
| 120 | +- Improve -explain rendering [#14357](https://github.com/lampepfl/dotty/pull/14357) |
| 121 | +- Propagate unreported features when flushing a reporter [#14503](https://github.com/lampepfl/dotty/pull/14503) |
| 122 | +- Avoid using `·` character [#14453](https://github.com/lampepfl/dotty/pull/14453) |
| 123 | +- Fix explain rendering with Windows EOL [#14456](https://github.com/lampepfl/dotty/pull/14456) |
| 124 | +- Fix [#14576](https://github.com/lampepfl/dotty/issues/14576): Ensure unreported warning summaries are also emitted via sbt-bridge [#14602](https://github.com/lampepfl/dotty/pull/14602) |
| 125 | +- Add context to safe-init warnings for inlined methods [#14646](https://github.com/lampepfl/dotty/pull/14646) |
| 126 | +- Show unique ids of pattern bound symbols [#14716](https://github.com/lampepfl/dotty/pull/14716) |
| 127 | +- Don't replace typevars by their f-bounds in error messages [#14723](https://github.com/lampepfl/dotty/pull/14723) |
| 128 | +- Error message improvement for illegal access extension methods [#14730](https://github.com/lampepfl/dotty/pull/14730) |
| 129 | +- Warn on misleading indentation in single-case catch [#14738](https://github.com/lampepfl/dotty/pull/14738) |
| 130 | +- Use correct ErrorMessageID for EmptyCatchOrFinallyBlock [#14786](https://github.com/lampepfl/dotty/pull/14786) |
| 131 | +- Correct highlight interpolation in explain message [#14802](https://github.com/lampepfl/dotty/pull/14802) |
| 132 | + Don't issue implicit errors if parameter has default value [#14849](https://github.com/lampepfl/dotty/pull/14849) |
| 133 | + |
| 134 | +## Typer |
| 135 | + |
| 136 | +- Fix approximating RefinedTypes (n>1) [#14361](https://github.com/lampepfl/dotty/pull/14361) |
| 137 | +- Allow override `protected[C]` in companion [#14105](https://github.com/lampepfl/dotty/pull/14105) |
| 138 | +- Hide `apply` generated for rotected case class constructor [#14266](https://github.com/lampepfl/dotty/pull/14266) |
| 139 | +- Infer parameters of eta applications with vararg parameters [#14397](https://github.com/lampepfl/dotty/pull/14397) |
| 140 | +- Keep softness when widening unions [#14399](https://github.com/lampepfl/dotty/pull/14399) |
| 141 | +- Fix [#11008](https://github.com/lampepfl/dotty/issues/11008): Support generic tuples as a valid unapply result [#14434](https://github.com/lampepfl/dotty/pull/14434) |
| 142 | +- Fix `TreeTypeMap` to correctly substitute type parameters [#14537](https://github.com/lampepfl/dotty/pull/14537) |
| 143 | +- Handle ownership changes in `InlineTyper` [#14568](https://github.com/lampepfl/dotty/pull/14568) |
| 144 | +- Handle more corner cases in `etaReduce` [#14628](https://github.com/lampepfl/dotty/pull/14628) |
| 145 | +- Remove false unchecked warnings on refined types [#14703](https://github.com/lampepfl/dotty/pull/14703) |
| 146 | +- Fix hoisting local symbols [#14714](https://github.com/lampepfl/dotty/pull/14714) |
| 147 | +- Fix desugaring empty argument blocks in normArgs [#14719](https://github.com/lampepfl/dotty/pull/14719) |
| 148 | +- Improve overloading resolution if expected type is not FunProto [#14733](https://github.com/lampepfl/dotty/pull/14733) |
| 149 | +- Don't force `LazyRefs` when computing `DepStatus` [#14774](https://github.com/lampepfl/dotty/pull/14774) |
| 150 | + |
| 151 | +## Explicit nulls |
| 152 | + |
| 153 | +- Fix override containing type param [#13975](https://github.com/lampepfl/dotty/pull/13975) |
| 154 | +- Fix case null on non-nullable type in unsafe null [#13976](https://github.com/lampepfl/dotty/pull/13976) |
| 155 | +- Thread context through block in transforms correctly and efficiently [#14523](https://github.com/lampepfl/dotty/pull/14523) |
| 156 | +- Fix intercept `TypeApply` [#14617](https://github.com/lampepfl/dotty/pull/14617) |
| 157 | +- Fix #14682: fix overriding check in mergeSingleDenot [#14755](https://github.com/lampepfl/dotty/pull/14755) |
| 158 | + |
| 159 | +## IDE Support |
| 160 | + |
| 161 | +- Fix `contextOfPath` for `Template` [#12783](https://github.com/lampepfl/dotty/pull/12783) |
| 162 | +- Search all source trees for a given span [#14436](https://github.com/lampepfl/dotty/pull/14436) |
| 163 | +- Set zero span for synthetic enum import selector [#14498](https://github.com/lampepfl/dotty/pull/14498) |
| 164 | +- Set zero span for synthetic tuple type [#14499](https://github.com/lampepfl/dotty/pull/14499) |
| 165 | +- Set proper position for ValDefs generated from tuples [#14513](https://github.com/lampepfl/dotty/pull/14513) |
| 166 | +- Provide signature help for unapply methods [#14611](https://github.com/lampepfl/dotty/pull/14611) |
| 167 | +- Add completions for specific MatchType cases [#14639](https://github.com/lampepfl/dotty/pull/14639) |
| 168 | +- Support backticked imports in completions [#14649](https://github.com/lampepfl/dotty/pull/14649) |
| 169 | +- Change completions filtering to now include package module classes [#14756](https://github.com/lampepfl/dotty/pull/14756) |
| 170 | + |
| 171 | +## Scaladoc |
| 172 | + |
| 173 | +- Correctly handle context functions [#14371](https://github.com/lampepfl/dotty/pull/14371) |
| 174 | +- Fix rendering dependent function types [#14327](https://github.com/lampepfl/dotty/pull/14327) |
| 175 | +- Unescaped special characters in Quotes documentation [#14377](https://github.com/lampepfl/dotty/pull/14377) |
| 176 | +- Refactor static site loading and directory structure [#14378](https://github.com/lampepfl/dotty/pull/14378) |
| 177 | +- Make member filtering case-insensitive [#14430](https://github.com/lampepfl/dotty/pull/14430) |
| 178 | +- Add member position IDs to anchors in searchbar [#14454](https://github.com/lampepfl/dotty/pull/14454) |
| 179 | +- Repair links [#14475](https://github.com/lampepfl/dotty/pull/14475) |
| 180 | +- Follow renames in content contributors script [#14478](https://github.com/lampepfl/dotty/pull/14478) |
| 181 | +- Change default blog directory to `blog` [#14485](https://github.com/lampepfl/dotty/pull/14485) |
| 182 | +- Refactor generation configuration in sbt. Generate reference documentation using Scaladoc [#14489](https://github.com/lampepfl/dotty/pull/14489) |
| 183 | +- Fix issues with incorrect external links and special characters [#14516](https://github.com/lampepfl/dotty/pull/14516) |
| 184 | +- Grouping entries in searchbar. Add hints to searchbar [#14539](https://github.com/lampepfl/dotty/pull/14539) |
| 185 | +- Fix [#14481](https://github.com/lampepfl/dotty/issues/14481): certain functions not being shown in searchbar [#14546](https://github.com/lampepfl/dotty/pull/14546) |
| 186 | +- Fix function `classpathArgs()` [#14559](https://github.com/lampepfl/dotty/pull/14559) |
| 187 | +- Add necessary parentheses in function types [#14565](https://github.com/lampepfl/dotty/pull/14565) |
| 188 | +- Fix groupping entries using markdown syntax [#14577](https://github.com/lampepfl/dotty/pull/14577) |
| 189 | +- Add table of content to static sites [#14607](https://github.com/lampepfl/dotty/pull/14607) |
| 190 | +- Allow to set a comment syntax based on path to source [#14650](https://github.com/lampepfl/dotty/pull/14650) |
| 191 | +- Tweak Language Reference documentation [#14669](https://github.com/lampepfl/dotty/pull/14669) |
| 192 | +- Don't add extra newlines when there aren't extra sections in doc markdown [#14734](https://github.com/lampepfl/dotty/pull/14734) |
| 193 | +- Fix regression with extension methods not being shown in searchbar [#14779](https://github.com/lampepfl/dotty/pull/14779) |
| 194 | +- Fix snippets hiding and buttons animation [#14839](https://github.com/lampepfl/dotty/pull/14839) |
| 195 | + |
| 196 | +## SemanticDB |
| 197 | + |
| 198 | +- Update generated semanticdb code with the latest scalapb [#14591](https://github.com/lampepfl/dotty/pull/14591) |
| 199 | +- Support MatchType[#14608](https://github.com/lampepfl/dotty/pull/14608) |
| 200 | + |
| 201 | +## Other |
| 202 | + |
| 203 | +- Kotlin interop: Find nested class if `InnerClass` entry is missing [#14426](https://github.com/lampepfl/dotty/pull/14426) |
| 204 | +- Add 3.2 language mode internally, treat it like 3.0, 3.1 [#14690](https://github.com/lampepfl/dotty/pull/14690) |
| 205 | +- Add -h to alternatives for -help [#14792](https://github.com/lampepfl/dotty/pull/14792) |
| 206 | + |
| 207 | +# Contributors |
| 208 | + |
| 209 | +Thank you to all the contributors who made this release possible 🎉 |
| 210 | + |
| 211 | +According to `git shortlog -sn --no-merges 3.1.2..3.1.3-RC1` these are: |
| 212 | + |
| 213 | +``` |
| 214 | + 59 odersky |
| 215 | + 48 Nicolas Stucki |
| 216 | + 38 Filip Zybała |
| 217 | + 36 Martin Odersky |
| 218 | + 29 noti0na1 |
| 219 | + 27 Som Snytt |
| 220 | + 24 Dale Wijnand |
| 221 | + 19 Anatolii Kmetiuk |
| 222 | + 19 Chris Kipp |
| 223 | + 17 Rikito Taniguchi |
| 224 | + 13 Xavientois |
| 225 | + 12 Jan Chyb |
| 226 | + 11 Tom Grigg |
| 227 | + 8 Matt Bovel |
| 228 | + 8 Guillaume Martres |
| 229 | + 8 Paweł Marks |
| 230 | + 7 Jamie Thompson |
| 231 | + 6 Tomasz Godzik |
| 232 | + 5 Michael Pilquist |
| 233 | + 5 rochala |
| 234 | + 4 Kacper Korban |
| 235 | + 4 adampauls |
| 236 | + 3 Phil |
| 237 | + 3 Sébastien Doeraene |
| 238 | + 3 Andrzej Ressel |
| 239 | + 3 Seth Tisue |
| 240 | + 3 Olivier Blanvillain |
| 241 | + 2 Arman Bilge |
| 242 | + 2 Julien Richard-Foy |
| 243 | + 2 Adrien Piquerez |
| 244 | + 2 Yichen Xu |
| 245 | + 1 ireina7 |
| 246 | + 1 Alexander Ioffe |
| 247 | + 1 Jentsch |
| 248 | + 1 Jędrzej Rochala |
| 249 | + 1 Michał Pałka |
| 250 | + 1 Ondrej Lhotak |
| 251 | + 1 Pascal Weisenburger |
| 252 | + 1 Quentin Bernet |
| 253 | + 1 Ruslan Shevchenko |
| 254 | + 1 SrTobi |
| 255 | + 1 Stephane MICHELOUD |
| 256 | + 1 Stéphane Micheloud |
| 257 | + 1 Vadim Chelyshov |
| 258 | + 1 Vasil Vasilev |
| 259 | + 1 bjornregnell |
| 260 | + 1 ghostbuster91 |
| 261 | + 1 som-snytt |
| 262 | + 1 Łukasz Wroński |
| 263 | +``` |
0 commit comments