|
| 1 | +# Highlights of the release |
| 2 | + |
| 3 | +- Scala 2 forwardport: `-Yprofile-trace` [#19897](https://github.com/scala/scala3/pull/19897) |
| 4 | + |
| 5 | +# Other changes and fixes |
| 6 | + |
| 7 | +## Annotations |
| 8 | + |
| 9 | +- Fix Java parsing of annotations on qualified types [#21867](https://github.com/scala/scala3/pull/21867) |
| 10 | +- Consider all arguments in Annotations.refersToParamOf [#22001](https://github.com/scala/scala3/pull/22001) |
| 11 | + |
| 12 | +## Backend |
| 13 | + |
| 14 | +- Flag class file collision as error [#19332](https://github.com/scala/scala3/pull/19332) |
| 15 | + |
| 16 | +## Compiler Phases |
| 17 | + |
| 18 | +- Fix #21939: Update names and descriptions for cc and setup phases [#21942](https://github.com/scala/scala3/pull/21942) |
| 19 | +- Limit exposure to ConcurrentModificationException when sys props are replaced or mutated [#22275](http://github.com/scala/scala3/pull/22275) |
| 20 | + |
| 21 | +## Experimental: Explicit Nulls |
| 22 | + |
| 23 | +- Improve warning for wildcard matching only null under the explicit nulls flag (scala#21577) [#21623](https://github.com/scala/scala3/pull/21623) |
| 24 | +- Fix warning message for matching on redundant nulls [#21850](https://github.com/scala/scala3/pull/21850) |
| 25 | + |
| 26 | +## Experimental: Capture Checking |
| 27 | + |
| 28 | +- Fix #21868, #21869, and #21870: handle CapsOf in more places [#21875](https://github.com/scala/scala3/pull/21875) |
| 29 | +- Consolidate CC [#21863](https://github.com/scala/scala3/pull/21863) |
| 30 | +- Add path support for capture checking [#21445](https://github.com/scala/scala3/pull/21445) |
| 31 | + |
| 32 | +## Experimentals |
| 33 | + |
| 34 | +- Replace symbol traversal with tree traversal when finding top level experimentals [#21827](https://github.com/scala/scala3/pull/21827) |
| 35 | + |
| 36 | +## Extension Methods |
| 37 | + |
| 38 | +- Nowarn extension matching nonpublic member [#21825](https://github.com/scala/scala3/pull/21825) |
| 39 | + |
| 40 | +## Implicits |
| 41 | + |
| 42 | +- Apply implicit conversion from derived Conversion instance defined as implicit rather than given [#21785](https://github.com/scala/scala3/pull/21785) |
| 43 | + |
| 44 | +## Imports |
| 45 | + |
| 46 | +- Allow imports nested in packagings to shadow [#21539](https://github.com/scala/scala3/pull/21539) |
| 47 | + |
| 48 | +## Inline |
| 49 | + |
| 50 | +- Avoid using the current denotation in NamedType.disambiguate [#21414](https://github.com/scala/scala3/pull/21414) |
| 51 | +- Drop phase.isTyper use in isLegalPrefix/asf [#21954](https://github.com/scala/scala3/pull/21954) |
| 52 | +- Fix for macro annotation that resolves macro-based implicit crashing the compiler [#20353](https://github.com/scala/scala3/pull/20353) |
| 53 | +- Allow macro annotations to recover from suspension [#21969](https://github.com/scala/scala3/pull/21969) |
| 54 | + |
| 55 | +## Linting |
| 56 | + |
| 57 | +- Disallow open modifier on objects [#21922](https://github.com/scala/scala3/pull/21922) |
| 58 | +- Allow discarding "Discarded non-Unit" warnings with `: Unit` [#21927](https://github.com/scala/scala3/pull/21927) |
| 59 | + |
| 60 | +## Opaque Types |
| 61 | + |
| 62 | +- Fix pkg obj prefix of opaque tp ext meth [#21527](https://github.com/scala/scala3/pull/21527) |
| 63 | + |
| 64 | +## Parser |
| 65 | + |
| 66 | +- Fix: don't consider `into` as a soft-modifier [#21924](https://github.com/scala/scala3/pull/21924) |
| 67 | + |
| 68 | +## Pattern Matching |
| 69 | + |
| 70 | +- Drop inaccessible subclasses from refineUsingParent [#21799](https://github.com/scala/scala3/pull/21799) |
| 71 | +- (Re-)Drop inaccessible subclasses from refineUsingParent [#21930](https://github.com/scala/scala3/pull/21930) |
| 72 | +- Fix use of class terms in match analysis [#21848](https://github.com/scala/scala3/pull/21848) |
| 73 | +- Don't project nested wildcard patterns to nullable [#21934](https://github.com/scala/scala3/pull/21934) |
| 74 | +- Fix provablyDisjoint handling enum constants with mixins [#21876](https://github.com/scala/scala3/pull/21876) |
| 75 | +- Do not consider uninhabited constructors when performing exhaustive match checking [#21750](https://github.com/scala/scala3/pull/21750) |
| 76 | + |
| 77 | +## Presentation Compiler |
| 78 | + |
| 79 | +- Update mtags to 1.4.1 and backport remaining changes [#21859](https://github.com/scala/scala3/pull/21859) |
| 80 | +- Backport changes for the presentation compiler from Metals [#21756](https://github.com/scala/scala3/pull/21756) |
| 81 | + |
| 82 | +## Pickling |
| 83 | + |
| 84 | +- Avoid orphan param from default arg [#21824](https://github.com/scala/scala3/pull/21824) |
| 85 | +- Make sure definition tree has the defined symbol [#21851](https://github.com/scala/scala3/pull/21851) |
| 86 | + |
| 87 | +## REPL |
| 88 | + |
| 89 | +- Allow top-level opaque type definitions in REPL [#21753](https://github.com/scala/scala3/pull/21753) |
| 90 | +- JLine: follow recommendation to use JNI, not JNA; also JLine 3.27.1 (was 3.27.0) [#22271](http://github.com/scala/scala3/pull/22271) |
| 91 | + |
| 92 | +## Scaladoc |
| 93 | + |
| 94 | +- Fix scaladoc TastyInspector regressions [#21716](https://github.com/scala/scala3/pull/21716) |
| 95 | +- Bring back the fix for scaladoc TastyInspector regressions [#21929](https://github.com/scala/scala3/pull/21929) |
| 96 | +- Fix scaladoc graph highlight background color in dark mode [#21814](https://github.com/scala/scala3/pull/21814) |
| 97 | + |
| 98 | +## Standard Library |
| 99 | + |
| 100 | +- Combine cases of `Tuple.Zip` disjoint from `(h1 *: t1, h2 *: t2)` [#21287](https://github.com/scala/scala3/pull/21287) |
| 101 | + |
| 102 | +## Quotes |
| 103 | + |
| 104 | +- Fix #20471: owners of top-level symbols in cached quoted code being incorrect [#21945](https://github.com/scala/scala3/pull/21945) |
| 105 | + |
| 106 | +## Reporting |
| 107 | + |
| 108 | +- Do not warn about expected missing positions in quotes.reflect.Symbol [#21677](https://github.com/scala/scala3/pull/21677) |
| 109 | +- Add missing error messages to asserts in QuotesImpl [#21852](https://github.com/scala/scala3/pull/21852) |
| 110 | +- Don't point to the compiler backlog when a compiler plugin phase crashes [#21887](https://github.com/scala/scala3/pull/21887) |
| 111 | +- Better error message for polytypes wrapping capturing types [#21843](https://github.com/scala/scala3/pull/21843) |
| 112 | +- Pretty-print lambdas [#21846](https://github.com/scala/scala3/pull/21846) |
| 113 | +- Nowarn extension matching nonpublic member [#22276](http://github.com/scala/scala3/pull/22276) |
| 114 | +- Refactor: Improve Given search preference warning [#22273](http://github.com/scala/scala3/pull/22273) |
| 115 | + |
| 116 | +## Runner |
| 117 | + |
| 118 | +- Fix: update `scala-cli.jar` path [#22274](http://github.com/scala/scala3/pull/22274) |
| 119 | + |
| 120 | +## Releases |
| 121 | + |
| 122 | +- Fix layout of released SDK archives, restore intermiediete top-level directory [#22272](http://github.com/scala/scala3/pull/22272) |
| 123 | + |
| 124 | +## Scala.js |
| 125 | + |
| 126 | +- Shade scalajs.ir under dotty.tools [#21765](https://github.com/scala/scala3/pull/21765) |
| 127 | + |
| 128 | +## SemanticDB |
| 129 | + |
| 130 | +- Extract semanticDB for lifted definitions [#21856](https://github.com/scala/scala3/pull/21856) |
| 131 | + |
| 132 | +## Transform |
| 133 | + |
| 134 | +- Fix enclosingClass from returning refinement classes [#21411](https://github.com/scala/scala3/pull/21411) |
| 135 | +- Attempt to beta reduce only if parameters and arguments have same shape [#21970](https://github.com/scala/scala3/pull/21970) |
| 136 | +- Drop copied parent refinements before generating bytecode [#21733](https://github.com/scala/scala3/pull/21733) |
| 137 | + |
| 138 | +## Tooling |
| 139 | + |
| 140 | +- Ensure to escape characters before constructing JSON profile trace [#21872](https://github.com/scala/scala3/pull/21872) |
| 141 | + |
| 142 | +## Tuples |
| 143 | + |
| 144 | +- Fix tupleTypeFromSeq for XXL tuples [#21782](https://github.com/scala/scala3/pull/21782) |
| 145 | + |
| 146 | +## Typer |
| 147 | + |
| 148 | +- Do not crash when typing a closure with unknown type, since it can occur for erroneous input [#21178](https://github.com/scala/scala3/pull/21178) |
| 149 | +- Revert SAM condition to what it was before [#21684](https://github.com/scala/scala3/pull/21684) |
| 150 | +- Fix ctx implicits under case unapplySeq [#21748](https://github.com/scala/scala3/pull/21748) |
| 151 | +- Avoid erasure/preErasure issues around Any in transformIsInstanceOf [#21647](https://github.com/scala/scala3/pull/21647) |
| 152 | + |
| 153 | +# Contributors |
| 154 | + |
| 155 | +Thank you to all the contributors who made this release possible 🎉 |
| 156 | + |
| 157 | +According to `git shortlog -sn --no-merges 3.6.2..3.6.3` these are: |
| 158 | + |
| 159 | +``` |
| 160 | + 33 Wojciech Mazur |
| 161 | + 30 Dale Wijnand |
| 162 | + 30 Kacper Korban |
| 163 | + 14 noti0na1 |
| 164 | + 11 Hamza Remmal |
| 165 | + 10 Eugene Flesselle |
| 166 | + 10 HarrisL2 |
| 167 | + 9 Martin Odersky |
| 168 | + 8 Matt Bovel |
| 169 | + 7 Jan Chyb |
| 170 | + 6 Tomasz Godzik |
| 171 | + 5 Seth Tisue |
| 172 | + 4 Jamie Thompson |
| 173 | + 2 Friendseeker |
| 174 | + 2 João Ferreira |
| 175 | + 2 Pascal Weisenburger |
| 176 | + 2 Som Snytt |
| 177 | + 2 Sébastien Doeraene |
| 178 | + 1 Adrien Piquerez |
| 179 | + 1 Alden Torres |
| 180 | + 1 Alexander |
| 181 | + 1 Eugene Yokota |
| 182 | + 1 Fengyun Liu |
| 183 | + 1 Georgi Krastev |
| 184 | + 1 Jentsch |
| 185 | + 1 Lunfu Zhong |
| 186 | + 1 Michał Pałka |
| 187 | + 1 Natsu Kagami |
| 188 | + 1 Rui Chen |
| 189 | + 1 dependabot[bot] |
| 190 | + 1 friendseeker |
| 191 | + 1 tgodzik |
| 192 | +``` |
0 commit comments