|
| 1 | +# Highlights of the release |
| 2 | + |
| 3 | +- Warn if interpolator uses toString [#20578](https://github.com/scala/scala3/pull/20578) |
| 4 | +- Fixes #15736 blocking Scala 3 on Android [#22632](https://github.com/scala/scala3/pull/22632) |
| 5 | +- Implement :jar (deprecate :require) [#22343](https://github.com/scala/scala3/pull/22343) |
| 6 | +- In selector check, prefix of reference must match import qualifier [#20894](https://github.com/scala/scala3/pull/20894) |
| 7 | +- Fix #21242: Add REPL flag to quit after evaluating init script [#22636](https://github.com/scala/scala3/pull/22636) |
| 8 | +- Warn if implicit default shadows given [#23559](https://github.com/scala/scala3/pull/23559) |
| 9 | + |
| 10 | +# Other changes and fixes |
| 11 | + |
| 12 | +## Annotations |
| 13 | + |
| 14 | +- Approximate annotated types in `wildApprox` [#22893](https://github.com/scala/scala3/pull/22893) |
| 15 | +- Fix copy of annotation on @main methods [#22582](https://github.com/scala/scala3/pull/22582) |
| 16 | + |
| 17 | +## CI |
| 18 | + |
| 19 | +- Disable Cats flaky tests [#23007](https://github.com/scala/scala3/pull/23007) |
| 20 | + |
| 21 | +## Developer Experience |
| 22 | + |
| 23 | +- Add support for running the `test` sub-command with the bisect script [#22796](https://github.com/scala/scala3/pull/22796) |
| 24 | + |
| 25 | +## Documentation |
| 26 | + |
| 27 | +- Improve the usage of inclusive language [#22360](https://github.com/scala/scala3/pull/22360) |
| 28 | +- Update indentation.md to fix a typo [#23505](https://github.com/scala/scala3/pull/23505) |
| 29 | + |
| 30 | +## Enums |
| 31 | + |
| 32 | +- Make hashcode of enum items stable [#23218](https://github.com/scala/scala3/pull/23218) |
| 33 | + |
| 34 | +## Erasure |
| 35 | + |
| 36 | +- Add regression test for #23616 [#23623](https://github.com/scala/scala3/pull/23623) |
| 37 | +- Disallow context function types as value-class parameters [#23015](https://github.com/scala/scala3/pull/23015) |
| 38 | +- Handle type aliases in contextFunctionResultTypeAfter [#21517](https://github.com/scala/scala3/pull/21517) |
| 39 | +- Align erasure of `Array[Nothing]` and `Array[Null]` with Scala 2 [#22517](https://github.com/scala/scala3/pull/22517) |
| 40 | + |
| 41 | +## Experimental: Erased definitions |
| 42 | + |
| 43 | +- Erased fields are not nullable [#23311](https://github.com/scala/scala3/pull/23311) |
| 44 | + |
| 45 | +## Implicits |
| 46 | + |
| 47 | +- Refine implicit search fallbacks for better ClassTag handling [#23532](https://github.com/scala/scala3/pull/23532) |
| 48 | +- Fix #20335: Try extensions for arguments with type mismatch error [#23212](https://github.com/scala/scala3/pull/23212) |
| 49 | + |
| 50 | +## Inline |
| 51 | + |
| 52 | +- Fix Symbol.info remapping in TreeTypeMap [#23432](https://github.com/scala/scala3/pull/23432) |
| 53 | + |
| 54 | +## Lambda Lift |
| 55 | + |
| 56 | +- Fix: treat static vals as enclosures in lambdalift [#22452](https://github.com/scala/scala3/pull/22452) |
| 57 | +- Fix: record calls to constructors in lambdaLift [#22487](https://github.com/scala/scala3/pull/22487) |
| 58 | + |
| 59 | +## Linting |
| 60 | + |
| 61 | +- Check OrType in interpolated toString lint [#23365](https://github.com/scala/scala3/pull/23365) |
| 62 | +- Consider setter of effectively private var [#23211](https://github.com/scala/scala3/pull/23211) |
| 63 | +- Nowarn receiver of extension taking params [#23351](https://github.com/scala/scala3/pull/23351) |
| 64 | +- Dealias when looking into imports [#22889](https://github.com/scala/scala3/pull/22889) |
| 65 | +- Revert unconditional lint of Inlined expansion [#22815](https://github.com/scala/scala3/pull/22815) |
| 66 | +- Warn unused member of anonymous class [#22729](https://github.com/scala/scala3/pull/22729) |
| 67 | +- No warning for parameter of overriding method [#22757](https://github.com/scala/scala3/pull/22757) |
| 68 | +- Lazy val def member is pattern var [#22750](https://github.com/scala/scala3/pull/22750) |
| 69 | +- Ignore params to default arg getters [#22749](https://github.com/scala/scala3/pull/22749) |
| 70 | +- Restore resolving prefixes of implicit Ident [#22751](https://github.com/scala/scala3/pull/22751) |
| 71 | +- Exclude synthetic this.m, Any.m from import lookup [#22695](https://github.com/scala/scala3/pull/22695) |
| 72 | +- Nowarn public implicit val class params [#22664](https://github.com/scala/scala3/pull/22664) |
| 73 | +- Don't warn retainedBody [#22510](https://github.com/scala/scala3/pull/22510) |
| 74 | +- Suppress spurious Suppression [#22383](https://github.com/scala/scala3/pull/22383) |
| 75 | +- Handle Typeable [#22663](https://github.com/scala/scala3/pull/22663) |
| 76 | +- CheckUnused checks span.exists before testing its parts [#22504](https://github.com/scala/scala3/pull/22504) |
| 77 | +- Process Export for unused check [#22984](https://github.com/scala/scala3/pull/22984) |
| 78 | +- Enclosing package p.q not visible as q [#23069](https://github.com/scala/scala3/pull/23069) |
| 79 | +- Remove premature caching of lookups for unused lint [#22982](https://github.com/scala/scala3/pull/22982) |
| 80 | +- Improve checking LHS of Assign [#22977](https://github.com/scala/scala3/pull/22977) |
| 81 | +- Improve Unit ascription escape hatch [#23147](https://github.com/scala/scala3/pull/23147) |
| 82 | +- Mention extension in unused param warning [#23132](https://github.com/scala/scala3/pull/23132) |
| 83 | +- Dealias for unused param check [#23256](https://github.com/scala/scala3/pull/23256) |
| 84 | +- Take inferred or explicit refinement result for unused check [#23325](https://github.com/scala/scala3/pull/23325) |
| 85 | +- Add accessible check for import usage [#23348](https://github.com/scala/scala3/pull/23348) |
| 86 | +- Use result of lambda type of implicit in CheckUnused [#23497](https://github.com/scala/scala3/pull/23497) |
| 87 | + |
| 88 | +## Match Types |
| 89 | + |
| 90 | +- Handle NoType in TypeComparer.disjointnessBoundary [#21520](https://github.com/scala/scala3/pull/21520) |
| 91 | +- Fix: #23261 Distinguish 0.0 and -0.0 in ConstantType match types [#23265](https://github.com/scala/scala3/pull/23265) |
| 92 | + |
| 93 | +## Metaprogramming |
| 94 | + |
| 95 | +- Add a check for correct Array shape in quotes.reflect.ClassOfConstant [#22033](https://github.com/scala/scala3/pull/22033) |
| 96 | + |
| 97 | +## Opaque Types |
| 98 | + |
| 99 | +- Fix stack overflow errors when generating opaque type proxies [#22479](https://github.com/scala/scala3/pull/22479) |
| 100 | + |
| 101 | +## Optional Braces |
| 102 | + |
| 103 | +- Correctly detect colon lambda eol indent for optional brace of argument [#22477](https://github.com/scala/scala3/pull/22477) |
| 104 | + |
| 105 | +## Overloading |
| 106 | + |
| 107 | +- Fail compilation if multiple conflicting top-level private defs/vals are in the same package [#22759](https://github.com/scala/scala3/pull/22759) |
| 108 | + |
| 109 | +## Parser |
| 110 | + |
| 111 | +- Allow observing an indent after conditional [#22611](https://github.com/scala/scala3/pull/22611) |
| 112 | +- No outdent at eof [#22435](https://github.com/scala/scala3/pull/22435) |
| 113 | +- Fix annotations being not expected in the middle of an array type by java parser [#22391](https://github.com/scala/scala3/pull/22391) |
| 114 | +- Fix incorrect warning with -no-indent [#23216](https://github.com/scala/scala3/pull/23216) |
| 115 | + |
| 116 | +## Pattern Matching |
| 117 | + |
| 118 | +- Fix issue in lazy symbol completion or bug in nested classfile parser [#23634](https://github.com/scala/scala3/pull/23634) |
| 119 | +- Fix existing GADT constraints with introduced pattern-bound symbols [#22928](https://github.com/scala/scala3/pull/22928) |
| 120 | +- Avoid crash in uninhab check in Space [#22601](https://github.com/scala/scala3/pull/22601) |
| 121 | + |
| 122 | +## Pickling |
| 123 | + |
| 124 | +- Try to handle SkolemTypes in SingletonTypeTree during pickling [#23236](https://github.com/scala/scala3/pull/23236) |
| 125 | + |
| 126 | +## Positions |
| 127 | + |
| 128 | +- Compare span points in pathTo to determine best span [#23581](https://github.com/scala/scala3/pull/23581) |
| 129 | + |
| 130 | +## Presentation Compiler |
| 131 | + |
| 132 | +- Fix: Fix extracting refinements from intersection types in dynamic select hovers [#23640](https://github.com/scala/scala3/pull/23640) |
| 133 | +- Completions for requests just before string [#22894](https://github.com/scala/scala3/pull/22894) |
| 134 | +- Add enum type param support in sourceSymbol [#18603](https://github.com/scala/scala3/pull/18603) |
| 135 | +- Use untpd.Tree instead of tpd.Tree for SelectionRangeProvider [#22702](https://github.com/scala/scala3/pull/22702) |
| 136 | +- Fix: handle multiple params lists in for infer type [#23197](https://github.com/scala/scala3/pull/23197) |
| 137 | +- Fix completion mode filtering + optimize scopeCompletions [#23172](https://github.com/scala/scala3/pull/23172) |
| 138 | +- Add selection ranges for more names [#23257](https://github.com/scala/scala3/pull/23257) |
| 139 | +- Add inlay hints for by-name parameters [#23283](https://github.com/scala/scala3/pull/23283) |
| 140 | +- Add jpath to VirtualFile (for pc) [#23203](https://github.com/scala/scala3/pull/23203) |
| 141 | + |
| 142 | +## Quotes |
| 143 | + |
| 144 | +- Fix issue with static `this` references erroring in quoted code [#22618](https://github.com/scala/scala3/pull/22618) |
| 145 | +- Skip splice level checking for <refinement> symbols [#22782](https://github.com/scala/scala3/pull/22782) |
| 146 | +- Fix stale top level synthetic package object being used in later runs [#23464](https://github.com/scala/scala3/pull/23464) |
| 147 | + |
| 148 | +## REPL |
| 149 | + |
| 150 | +- REPL: JLine 3.29.0 (was 3.27.1) [#22679](https://github.com/scala/scala3/pull/22679) |
| 151 | +- Repl: emit warning for the `:sh` command [#22694](https://github.com/scala/scala3/pull/22694) |
| 152 | + |
| 153 | +## Reflection |
| 154 | + |
| 155 | +- Fix regression: do not approximate prefixes when using memberType in reflect API [#22448](https://github.com/scala/scala3/pull/22448) |
| 156 | +- Forbid `StringConstant(null)` [#23064](https://github.com/scala/scala3/pull/23064) |
| 157 | +- Quotes reflect: sort the typeMembers output list and filter out non-members [#22876](https://github.com/scala/scala3/pull/22876) |
| 158 | + |
| 159 | +## Reporting |
| 160 | + |
| 161 | +- Register nowarn when inlining [#22682](https://github.com/scala/scala3/pull/22682) |
| 162 | +- Filter help renders box border [#22434](https://github.com/scala/scala3/pull/22434) |
| 163 | +- Fix incorrect warning on type ascription for backquoted identifiers [#23088](https://github.com/scala/scala3/pull/23088) |
| 164 | +- Add an explainer to the DoubleDefinition error [#23470](https://github.com/scala/scala3/pull/23470) |
| 165 | + |
| 166 | +## Scaladoc |
| 167 | + |
| 168 | +- Encode path of class [#23503](https://github.com/scala/scala3/pull/23503) |
| 169 | + |
| 170 | +## Settings |
| 171 | + |
| 172 | +- Chore: filter allowed source versions by import and by settings [#23215](https://github.com/scala/scala3/pull/23215) |
| 173 | + |
| 174 | +## Testing framework |
| 175 | + |
| 176 | +- Revert dubious retry in vulpix [#21801](https://github.com/scala/scala3/pull/21801) |
| 177 | + |
| 178 | +## Transform |
| 179 | + |
| 180 | +- Check only stable qual for import prefix [#22633](https://github.com/scala/scala3/pull/22633) |
| 181 | +- Warn trivial recursion with module prefix [#23278](https://github.com/scala/scala3/pull/23278) |
| 182 | + |
| 183 | +## Tuples |
| 184 | + |
| 185 | +- Normalize tuple types in var args seq literals and classOf instances [#23465](https://github.com/scala/scala3/pull/23465) |
| 186 | + |
| 187 | +## Typer |
| 188 | + |
| 189 | +- Generalize "Don't approximate a type using Nothing as prefix" [#23628](https://github.com/scala/scala3/pull/23628) |
| 190 | +- Don't approximate a type using `Nothing` as prefix [#23531](https://github.com/scala/scala3/pull/23531) |
| 191 | +- Tighten condition to preserve denotation in IntegrateMap [#23060](https://github.com/scala/scala3/pull/23060) |
| 192 | +- Disallow context bounds in type lambdas [#22659](https://github.com/scala/scala3/pull/22659) |
| 193 | +- Fix #22724: Revert the PolyType case in #21744 [#22820](https://github.com/scala/scala3/pull/22820) |
| 194 | +- Fix isGenericArrayElement for higher-kinded types [#22938](https://github.com/scala/scala3/pull/22938) |
| 195 | +- Revert lambda cleanup [#22697](https://github.com/scala/scala3/pull/22697) |
| 196 | +- Constructor companion gets privateWithin [#22627](https://github.com/scala/scala3/pull/22627) |
| 197 | +- Add regression test for #22076 [#22602](https://github.com/scala/scala3/pull/22602) |
| 198 | +- Constructor proxy is restricted if class is protected [#22563](https://github.com/scala/scala3/pull/22563) |
| 199 | +- Check if a prefix is valid before selecting from a type [#22368](https://github.com/scala/scala3/pull/22368) |
| 200 | +- Preserve hard unions in widenSingletons [#22369](https://github.com/scala/scala3/pull/22369) |
| 201 | +- Revert recent changes to opaque type proxy generation [#23059](https://github.com/scala/scala3/pull/23059) |
| 202 | +- Compare TypeVar and TypeParamRef in mergeRefinedOrApplied [#23045](https://github.com/scala/scala3/pull/23045) |
| 203 | +- Only keep denotation for methods in IntegrateMap [#23226](https://github.com/scala/scala3/pull/23226) |
| 204 | +- Tighten condition when to do SAM type conversion [#23246](https://github.com/scala/scala3/pull/23246) |
| 205 | +- Revert "Make overload pruning based on result types less aggressive (#21744)" in main [#23331](https://github.com/scala/scala3/pull/23331) |
| 206 | +- Fix #22922: Add TypeParamRef handling in isSingletonBounded [#23501](https://github.com/scala/scala3/pull/23501) |
| 207 | +- Fix this references everywhere in dependent function types [#23514](https://github.com/scala/scala3/pull/23514) |
| 208 | +- More careful ClassTag instantiation [#23659](https://github.com/scala/scala3/pull/23659) |
| 209 | +- Use more context for implicit search only if no default argument [#23664](https://github.com/scala/scala3/pull/23664) |
| 210 | + |
| 211 | +## JDK |
| 212 | + |
| 213 | +- Check path of module prefix for tailrec [#23491](https://github.com/scala/scala3/pull/23491) |
| 214 | + |
| 215 | +## Releases |
| 216 | + |
| 217 | +- [CI] Switch releasing to Sontype Central instead of legacy Sonatype OSS [#23290](https://github.com/scala/scala3/pull/23290) |
| 218 | + |
0 commit comments