|
| 1 | +# Highlights of the release |
| 2 | + |
| 3 | +- Support for JDK 25 [#23004](https://github.com/scala/scala3/pull/23004) |
| 4 | +- Warn if interpolator uses toString [#20578](https://github.com/scala/scala3/pull/20578) |
| 5 | +- Warn if match in block is not used for PartialFunction [#23002](https://github.com/scala/scala3/pull/23002) |
| 6 | + |
| 7 | +# Other changes and fixes |
| 8 | + |
| 9 | +## Annotations |
| 10 | + |
| 11 | +- Approximate annotated types in `wildApprox` [#22893](https://github.com/scala/scala3/pull/22893) |
| 12 | +- Keep unused annot on params [#23037](https://github.com/scala/scala3/pull/23037) |
| 13 | + |
| 14 | +## Erasure |
| 15 | + |
| 16 | +- Disallow context function types as value-class parameters [#23015](https://github.com/scala/scala3/pull/23015) |
| 17 | + |
| 18 | +## Experimental: Capture Checking |
| 19 | + |
| 20 | +- Two fixes to handling of abstract types with cap bounds [#22838](https://github.com/scala/scala3/pull/22838) |
| 21 | +- Drop idempotent type maps [#22910](https://github.com/scala/scala3/pull/22910) |
| 22 | +- Fix setup of class constructors [#22980](https://github.com/scala/scala3/pull/22980) |
| 23 | + |
| 24 | +## Named Tuples |
| 25 | + |
| 26 | +- Call dealias after stripping type variables for tupleElementTypesUpTo [#23005](https://github.com/scala/scala3/pull/23005) |
| 27 | +- Avoid loosing denotations of named types during `integrate` [#22839](https://github.com/scala/scala3/pull/22839) |
| 28 | + |
| 29 | +## Experimental: Unroll |
| 30 | + |
| 31 | +- Fix #22833: allow unroll annotation in methods of final class [#22926](https://github.com/scala/scala3/pull/22926) |
| 32 | + |
| 33 | +## Experimental: Referencable Package Objects |
| 34 | + |
| 35 | +- Add experimental.packageObjectValues language setting [#23001](https://github.com/scala/scala3/pull/23001) |
| 36 | + |
| 37 | +## Exports |
| 38 | + |
| 39 | +- Respect export alias for default arg forwarder [#21109](https://github.com/scala/scala3/pull/21109) |
| 40 | + |
| 41 | +## Extension Methods |
| 42 | + |
| 43 | +- Extension check checks for no parens not empty parens [#22825](https://github.com/scala/scala3/pull/22825) |
| 44 | + |
| 45 | +## GADTs |
| 46 | + |
| 47 | +- Fix: Prevent GADT reasoning in pattern alternatives [#22853](https://github.com/scala/scala3/pull/22853) |
| 48 | + |
| 49 | +## Linting |
| 50 | + |
| 51 | +- Dealias when looking into imports [#22889](https://github.com/scala/scala3/pull/22889) |
| 52 | +- Process Export for unused check [#22984](https://github.com/scala/scala3/pull/22984) |
| 53 | +- Drill into QuotePattern bindings symbol info [#22987](https://github.com/scala/scala3/pull/22987) |
| 54 | +- No warn implicit param of overriding method [#22901](https://github.com/scala/scala3/pull/22901) |
| 55 | +- No warn for evidence params of marker traits such as NotGiven [#22985](https://github.com/scala/scala3/pull/22985) |
| 56 | + |
| 57 | +## Initialization |
| 58 | + |
| 59 | +- Check for tasty error in template trees. [#22867](https://github.com/scala/scala3/pull/22867) |
| 60 | + |
| 61 | +## Metaprogramming: Compile-time |
| 62 | + |
| 63 | +- Fix issue with certain synthetics missing in compiletime.typechecks [#22978](https://github.com/scala/scala3/pull/22978) |
| 64 | + |
| 65 | +## Pattern Matching |
| 66 | + |
| 67 | +- Fix existing GADT constraints with introduced pattern-bound symbols [#22928](https://github.com/scala/scala3/pull/22928) |
| 68 | + |
| 69 | +## Pickling |
| 70 | + |
| 71 | +- Fix fromProduct synthesized code for parameter-dependent case classes [#22961](https://github.com/scala/scala3/pull/22961) |
| 72 | + |
| 73 | +## Presentation Compiler |
| 74 | + |
| 75 | +- Completions for requests just before string [#22894](https://github.com/scala/scala3/pull/22894) |
| 76 | +- Fix: go to def should lead to all: apply, object and class [#22771](https://github.com/scala/scala3/pull/22771) |
| 77 | +- Ignore ending `$` when looking at end marker names [#22798](https://github.com/scala/scala3/pull/22798) |
| 78 | +- Feature: Skip auto importing symbols we know are wrong in current context [#22813](https://github.com/scala/scala3/pull/22813) |
| 79 | +- Show the Autofill completion case as what would be auto-filled [#22819](https://github.com/scala/scala3/pull/22819) |
| 80 | +- Bugfix: Fix issues with annotations not detected [#22878](https://github.com/scala/scala3/pull/22878) |
| 81 | +- Improvement: Rework IndexedContext to reuse the previously calculated scopes [#22898](https://github.com/scala/scala3/pull/22898) |
| 82 | +- Pc: Properly adjust indentation when inlining blocks [#22915](https://github.com/scala/scala3/pull/22915) |
| 83 | +- Improvement: Support using directives in worksheets [#22957](https://github.com/scala/scala3/pull/22957) |
| 84 | +- Fix: show hover for synthetics if explicitly used [#22973](https://github.com/scala/scala3/pull/22973) |
| 85 | +- Pc: fix: inline value when def indentation equals 2 [#22990](https://github.com/scala/scala3/pull/22990) |
| 86 | + |
| 87 | +## Rewrites |
| 88 | + |
| 89 | +- Fix insertion of `using` in applications with trailing lambda syntax [#22937](https://github.com/scala/scala3/pull/22937) |
| 90 | +- Test chars safely when highlighting [#22918](https://github.com/scala/scala3/pull/22918) |
| 91 | + |
| 92 | +## Reporting |
| 93 | + |
| 94 | +- Print infix operations in infix form [#22854](https://github.com/scala/scala3/pull/22854) |
| 95 | + |
| 96 | +## Scaladoc |
| 97 | + |
| 98 | +- Chore: add support for 'abstract override' modifier [#22802](https://github.com/scala/scala3/pull/22802) |
| 99 | +- Scaladoc: fix generation of unique header ids [#22779](https://github.com/scala/scala3/pull/22779) |
| 100 | + |
| 101 | +## Typer |
| 102 | + |
| 103 | +- Disallow context bounds in type lambdas [#22659](https://github.com/scala/scala3/pull/22659) |
| 104 | +- Refuse trailing type parameters in extractors [#22699](https://github.com/scala/scala3/pull/22699) |
| 105 | +- Fix #22724: Revert the PolyType case in #21744 [#22820](https://github.com/scala/scala3/pull/22820) |
| 106 | +- Fix isGenericArrayElement for higher-kinded types [#22938](https://github.com/scala/scala3/pull/22938) |
| 107 | +- Tighten condition to preserve denotation in IntegrateMap [#23060](https://github.com/scala/scala3/pull/23060) |
| 108 | + |
| 109 | +## Transform |
| 110 | + |
| 111 | +- Mix in the `productPrefix` hash statically in case class `hashCode` [#22865](https://github.com/scala/scala3/pull/22865) |
| 112 | + |
| 113 | +## Value Classes |
| 114 | + |
| 115 | +- Fix #21918: Disallow value classes extending type aliases of AnyVal [#23021](https://github.com/scala/scala3/pull/23021) |
| 116 | + |
| 117 | + |
| 118 | +# Contributors |
| 119 | + |
| 120 | +Thank you to all the contributors who made this release possible 🎉 |
| 121 | + |
| 122 | +According to `git shortlog -sn --no-merges 3.7.0..3.7.1-RC1` these are: |
| 123 | + |
| 124 | +``` |
| 125 | + 135 Martin Odersky |
| 126 | + 27 Som Snytt |
| 127 | + 13 Matt Bovel |
| 128 | + 10 Wojciech Mazur |
| 129 | + 9 Hamza Remmal |
| 130 | + 5 Quentin Bernet |
| 131 | + 5 Tomasz Godzik |
| 132 | + 4 aherlihy |
| 133 | + 3 HarrisL2 |
| 134 | + 3 Jan Chyb |
| 135 | + 3 Natsu Kagami |
| 136 | + 3 Ondrej Lhotak |
| 137 | + 3 Sébastien Doeraene |
| 138 | + 2 Piotr Chabelski |
| 139 | + 2 Yichen Xu |
| 140 | + 2 Yoonjae Jeon |
| 141 | + 2 kasiaMarek |
| 142 | + 1 Aleksey Troitskiy |
| 143 | + 1 Daisy Li |
| 144 | + 1 Dale Wijnand |
| 145 | + 1 Jan-Pieter van den Heuvel |
| 146 | + 1 Jędrzej Rochala |
| 147 | + 1 Kacper Korban |
| 148 | + 1 Katarzyna Marek |
| 149 | + 1 Lukas Rytz |
| 150 | + 1 Mikołaj Fornal |
| 151 | + 1 Nikita Glushchenko |
| 152 | + 1 Oliver Bračevac |
| 153 | + 1 Ondřej Lhoták |
| 154 | + 1 dependabot[bot] |
| 155 | + 1 noti0na1 |
| 156 | + 1 philippus |
| 157 | +``` |
0 commit comments