|
| 1 | +# Highlights of the release |
| 2 | + |
| 3 | +- Bump Scala CLI to v1.9.1 (was v1.9.0) [#23962](https://github.com/scala/scala3/pull/23962) |
| 4 | +- Make coverage more similar to the one in Scala 2 [#23722](https://github.com/scala/scala3/pull/23722) |
| 5 | + |
| 6 | +# Other changes and fixes |
| 7 | + |
| 8 | +## Context Functions |
| 9 | + |
| 10 | +- Explain no expansion of ContextFunction0 [#23844](https://github.com/scala/scala3/pull/23844) |
| 11 | + |
| 12 | +## Experimental: Capture Checking |
| 13 | + |
| 14 | +- Fix #23737: Update superCallContext to include dummy capture parameters in scope [#23740](https://github.com/scala/scala3/pull/23740) |
| 15 | +- Fix separation checking for function results [#23927](https://github.com/scala/scala3/pull/23927) |
| 16 | +- Simple enhancement for pattern matching with capturing types [#23524](https://github.com/scala/scala3/pull/23524) |
| 17 | +- Don't check bounds in match type cases at CC [#23738](https://github.com/scala/scala3/pull/23738) |
| 18 | + |
| 19 | +## Experimental: Explicit Nulls |
| 20 | + |
| 21 | +- Add warnings for inferred flexible types in public methods and fields [#23880](https://github.com/scala/scala3/pull/23880) |
| 22 | + |
| 23 | +## Exports |
| 24 | + |
| 25 | +- Refine isEffectivelyFinal to avoid no-owner crash [#23675](https://github.com/scala/scala3/pull/23675) |
| 26 | + |
| 27 | +## Implicits |
| 28 | + |
| 29 | +- Fix LiftToAnchors for higher-kinded type applications [#23672](https://github.com/scala/scala3/pull/23672) |
| 30 | +- Fix implicit scope liftToAnchors for parameter lower bounds [#23679](https://github.com/scala/scala3/pull/23679) |
| 31 | + |
| 32 | +## Linting |
| 33 | + |
| 34 | +- Invent given pattern name in for comprehension [#23121](https://github.com/scala/scala3/pull/23121) |
| 35 | +- Unused var message mentions unread or unset [#23719](https://github.com/scala/scala3/pull/23719) |
| 36 | +- Lint function arrow intended context function [#23847](https://github.com/scala/scala3/pull/23847) |
| 37 | + |
| 38 | +## Match Types |
| 39 | + |
| 40 | +- Fix `derivesFrom` false negative in `provablyDisjointClasses` [#23834](https://github.com/scala/scala3/pull/23834) |
| 41 | + |
| 42 | + |
| 43 | +## Parser |
| 44 | + |
| 45 | +- Improve message for nested package missing braces [#23816](https://github.com/scala/scala3/pull/23816) |
| 46 | +- Fix: allow postfix setters under language.postfixOps [#23775](https://github.com/scala/scala3/pull/23775) |
| 47 | + |
| 48 | +## Pattern Matching |
| 49 | + |
| 50 | +- Fix: do not transform `Ident` to `This` in PostTyper anymore [#23899](https://github.com/scala/scala3/pull/23899) |
| 51 | +- Call inhabited for AppliedType recursively [#23964](https://github.com/scala/scala3/pull/23964) |
| 52 | +- Fix false unreachable case warning [#23800](https://github.com/scala/scala3/pull/23800) |
| 53 | +- Add subtype-based fallback in inferPrefixMap and recalculate constraints after application [#23771](https://github.com/scala/scala3/pull/23771) |
| 54 | + |
| 55 | +## Presentation Compiler |
| 56 | + |
| 57 | +- Additional completions for using clause [#23647](https://github.com/scala/scala3/pull/23647) |
| 58 | +- Completions - do not add `[]` for `... derives TC@@` [#23811](https://github.com/scala/scala3/pull/23811) |
| 59 | +- Improve symbol order in completions provided by the presentation compiler [#23888](https://github.com/scala/scala3/pull/23888) |
| 60 | +- Porting XRayModeHints [#23891](https://github.com/scala/scala3/pull/23891) |
| 61 | +- Go to definition and hover for named args in pattern match [#23956](https://github.com/scala/scala3/pull/23956) |
| 62 | + |
| 63 | +## Reporting |
| 64 | + |
| 65 | +- Do not discard amended format when f-interpolator warns [#23697](https://github.com/scala/scala3/pull/23697) |
| 66 | +- Mention named givens in double def explainer [#23833](https://github.com/scala/scala3/pull/23833) |
| 67 | +- Compute the right span for abstract error messages [#23853](https://github.com/scala/scala3/pull/23853) |
| 68 | +- Add quick fix to add .nn [#23598](https://github.com/scala/scala3/pull/23598) |
| 69 | +- Add addendum to `private val` parameter variance error message [#23876](https://github.com/scala/scala3/pull/23876) |
| 70 | + |
| 71 | +## Scaladoc |
| 72 | + |
| 73 | +- Indicate optional parameters with `= ...` [#23676](https://github.com/scala/scala3/pull/23676) |
| 74 | +- Scaladoc Support for Capture & Separation Checking [#23607](https://github.com/scala/scala3/pull/23607) |
| 75 | +- Capture Calcuclus: don't eagerly drop caps on parameters [#23759](https://github.com/scala/scala3/pull/23759) |
| 76 | + |
| 77 | +## SemanticDB |
| 78 | + |
| 79 | +- Add context parameters to SemanticDB synthetics [#23381](https://github.com/scala/scala3/pull/23381) |
| 80 | +- Include synthetic apply in semanticdb [#23629](https://github.com/scala/scala3/pull/23629) |
| 81 | + |
| 82 | +## Tuples |
| 83 | + |
| 84 | +- Fix: make vals created in desugaring of n-ary lambdas non-synthetic [#23896](https://github.com/scala/scala3/pull/23896) |
| 85 | + |
| 86 | +## Typer |
| 87 | + |
| 88 | +- Prevent crash in SAM conversion with mismatched arity [#23877](https://github.com/scala/scala3/pull/23877) |
| 89 | +- Handle assertion error in TyperState [#23665](https://github.com/scala/scala3/pull/23665) |
| 90 | +- Correctly require a `ClassTag` when building a multidimensional `Array` [#23902](https://github.com/scala/scala3/pull/23902) |
| 91 | +- Make isExactlyNothing and isExactlyAny work for And/OrTypes [#24016](https://github.com/scala/scala3/pull/24016) |
| 92 | + |
| 93 | + |
| 94 | +# Contributors |
| 95 | + |
| 96 | +Thank you to all the contributors who made this release possible 🎉 |
| 97 | + |
| 98 | +According to `git shortlog -sn --no-merges 3.7.3..3.7.4-RC1` these are: |
| 99 | + |
| 100 | +``` |
| 101 | + 12 Som Snytt |
| 102 | + 11 noti0na1 |
| 103 | + 11 Wojciech Mazur |
| 104 | + 6 Martin Odersky |
| 105 | + 5 Eugene Flesselle |
| 106 | + 4 Hamza Remmal |
| 107 | + 4 Natsu Kagami |
| 108 | + 4 Seyon Sivatharan |
| 109 | + 3 Oliver Bračevac |
| 110 | + 3 Yoonjae Jeon |
| 111 | + 3 dependabot[bot] |
| 112 | + 2 Jan Chyb |
| 113 | + 2 Katarzyna Marek |
| 114 | + 2 Matt Bovel |
| 115 | + 1 HarrisL2 |
| 116 | + 1 Kacper Korban |
| 117 | + 1 Martin Duhem |
| 118 | + 1 Paweł Perłakowski |
| 119 | + 1 Piotr Chabelski |
| 120 | + 1 Tomasz Godzik |
| 121 | + 1 Vadim Chelyshov |
| 122 | + 1 Yichen Xu |
| 123 | + 1 Zieliński Patryk |
| 124 | + 1 aherlihy |
| 125 | + 1 katrinafyi |
| 126 | + 1 vder |
| 127 | + 1 zielinsky |
| 128 | +``` |
0 commit comments