|
| 1 | +# Forward compatibility improvements |
| 2 | + |
| 3 | +- Enable generation of TASTy files readable for older compilers [#14156](https://github.com/lampepfl/dotty/pull/14156) |
| 4 | + |
| 5 | +# General improvements |
| 6 | + |
| 7 | +- Add eval (-e) expression evaluation to command line [#14263](https://github.com/lampepfl/dotty/pull/14263) |
| 8 | +- Format compiler crash stack traces [#14269](https://github.com/lampepfl/dotty/pull/14269) |
| 9 | +- Improve typer traces [#14270](https://github.com/lampepfl/dotty/pull/14270) |
| 10 | +- Add -Xmacro-settings option and API [#14234](https://github.com/lampepfl/dotty/pull/14234) |
| 11 | +- Add reflect TypeRepr.substituteTypes [#13166](https://github.com/lampepfl/dotty/pull/13166) |
| 12 | +- Expand compiletime.ops [#13400](https://github.com/lampepfl/dotty/pull/13400) |
| 13 | +- Cache isSubspace for a 3000% speedup [#13637](https://github.com/lampepfl/dotty/pull/13637) |
| 14 | +- lint trivially self-recursive extension methods [#13709](https://github.com/lampepfl/dotty/pull/13709) |
| 15 | +- add `printTypesAndErasure` test main method to compare typer and erasure [#13745](https://github.com/lampepfl/dotty/pull/13745) |
| 16 | +- Warning for infinite recursive lazy vals [#13749](https://github.com/lampepfl/dotty/pull/13749) |
| 17 | +- Provide scala.home setting for scripts [#13759](https://github.com/lampepfl/dotty/pull/13759) |
| 18 | +- Improve message when -Xmax-inlines limit reached [#13783](https://github.com/lampepfl/dotty/pull/13783) |
| 19 | +- Add append operator to Tuple [#13786](https://github.com/lampepfl/dotty/pull/13786) |
| 20 | +- Allow passing any JMH option to scala3-bench [#13787](https://github.com/lampepfl/dotty/pull/13787) |
| 21 | +- Warn on lossy conversion of literals & constants [#13792](https://github.com/lampepfl/dotty/pull/13792) |
| 22 | +- Consider minTargetVersion as always supported [#13811](https://github.com/lampepfl/dotty/pull/13811) |
| 23 | +- Add -Xmacro-check for Block constructors [#13824](https://github.com/lampepfl/dotty/pull/13824) |
| 24 | +- Navigate the AST within AnnotatedType and ImportType [#13834](https://github.com/lampepfl/dotty/pull/13834) |
| 25 | +- Refine handling of CanThrow capabilities [#13866](https://github.com/lampepfl/dotty/pull/13866) |
| 26 | +- Indicate name of classfile where leaky mapping of existential type happens [#13879](https://github.com/lampepfl/dotty/pull/13879) |
| 27 | +- Refine treatment of TypeBounds in patterns [#13881](https://github.com/lampepfl/dotty/pull/13881) |
| 28 | +- Impose implicit search limit [#13886](https://github.com/lampepfl/dotty/pull/13886) |
| 29 | +- Better handling of multiple exceptions for saferExceptions [#13914](https://github.com/lampepfl/dotty/pull/13914) |
| 30 | +- Complete when importing same symbol multiple times [#13972](https://github.com/lampepfl/dotty/pull/13972) |
| 31 | +- Implement :settings in the REPL [#13982](https://github.com/lampepfl/dotty/pull/13982) |
| 32 | +- Fixes and improvements to trace logging [#13984](https://github.com/lampepfl/dotty/pull/13984) |
| 33 | +- Fail compilation of attempting a 0-arity product extraction [#14029](https://github.com/lampepfl/dotty/pull/14029) |
| 34 | +- Traverse the types to find experimental references [#14047](https://github.com/lampepfl/dotty/pull/14047) |
| 35 | +- Retain HasDefaultParams flag on export. [#14051](https://github.com/lampepfl/dotty/pull/14051) |
| 36 | +- Also consider private symbols in implicit scope of type [#14054](https://github.com/lampepfl/dotty/pull/14054) |
| 37 | +- Allow return in tailrec position [#14067](https://github.com/lampepfl/dotty/pull/14067) |
| 38 | +- Make outer references Java-synthetic [#14084](https://github.com/lampepfl/dotty/pull/14084) |
| 39 | +- Add Reflect `TypeRepr.typeArgs` [#14088](https://github.com/lampepfl/dotty/pull/14088) |
| 40 | +- Reject empty target names [#14090](https://github.com/lampepfl/dotty/pull/14090) |
| 41 | +- Use =>> instead of => for printing a LambdaTypeTree [#14107](https://github.com/lampepfl/dotty/pull/14107) |
| 42 | +- REPL: Add compiler options to :reset [#14139](https://github.com/lampepfl/dotty/pull/14139) |
| 43 | +- Add hint on -Xcheck-macro scope extrusion failure [#14203](https://github.com/lampepfl/dotty/pull/14203) |
| 44 | +- Support quoted PolyFunction [#14222](https://github.com/lampepfl/dotty/pull/14222) |
| 45 | +- Update wording of uninitialized value error to be grammatically correct [#14292](https://github.com/lampepfl/dotty/pull/14292) |
| 46 | +- Rename `-Yscala-release`, `-release` and `-Xtarget` settings to make them more consistent [#14606](https://github.com/lampepfl/dotty/pull/14606) |
| 47 | + |
| 48 | +# Scaladoc |
| 49 | + |
| 50 | +- Fix missing known subtypes [#13794](https://github.com/lampepfl/dotty/pull/13794) |
| 51 | +- Markdown preprocessor [#13140](https://github.com/lampepfl/dotty/pull/13140) |
| 52 | +- Add source position for errors from doc-root-content file [#13908](https://github.com/lampepfl/dotty/pull/13908) |
| 53 | +- Fix double implicit modifier [#13909](https://github.com/lampepfl/dotty/pull/13909) |
| 54 | +- Fix links to unexisting types sites [#13917](https://github.com/lampepfl/dotty/pull/13917) |
| 55 | +- Add support for tables in wiki syntax [#13933](https://github.com/lampepfl/dotty/pull/13933) |
| 56 | +- Improve features parity with old scaladoc/docs.scala-lang [#13954](https://github.com/lampepfl/dotty/pull/13954) |
| 57 | +- Add missing styles to snippets that are not Scala [#13959](https://github.com/lampepfl/dotty/pull/13959) |
| 58 | +- Fix filtering extensions. Better support for exports [#14125](https://github.com/lampepfl/dotty/pull/14125) |
| 59 | + |
| 60 | +# SemanticDB |
| 61 | + |
| 62 | +- Add annotations [#13818](https://github.com/lampepfl/dotty/pull/13818) |
| 63 | +- Support TypeApply Synthetic [#13481](https://github.com/lampepfl/dotty/pull/13481) |
| 64 | + |
| 65 | +# Bug fixes |
| 66 | + |
| 67 | +- Fix [#13855](https://github.com/lampepfl/dotty/issues/13855): Chaining Match Types fails at value level [#14354](https://github.com/lampepfl/dotty/pull/14354) |
| 68 | +- Fix [#12260](https://github.com/lampepfl/dotty/issues/12260): Add underscore to match type syntax [#12261](https://github.com/lampepfl/dotty/pull/12261) |
| 69 | +- Fix [#11861](https://github.com/lampepfl/dotty/issues/11861) - hash nested calls to inline definitions [#12931](https://github.com/lampepfl/dotty/pull/12931) |
| 70 | +- Avoid shadowing of name 'name' [#13442](https://github.com/lampepfl/dotty/pull/13442) |
| 71 | +- Fix [#13633](https://github.com/lampepfl/dotty/issues/13633): Can't reduce match types inside a type alias [#13635](https://github.com/lampepfl/dotty/pull/13635) |
| 72 | +- Fix erased context function types [#13736](https://github.com/lampepfl/dotty/pull/13736) |
| 73 | +- Widen qualifier skolems [#13748](https://github.com/lampepfl/dotty/pull/13748) |
| 74 | +- Change order of proxy evaluation when inlining [#13755](https://github.com/lampepfl/dotty/pull/13755) |
| 75 | +- Fix init checker on secondary constructor parameter access [#13776](https://github.com/lampepfl/dotty/pull/13776) |
| 76 | +- Add missing @experimental in Tuples [#13778](https://github.com/lampepfl/dotty/pull/13778) |
| 77 | +- Fix improper usage of constrained breaking type inference [#13779](https://github.com/lampepfl/dotty/pull/13779) |
| 78 | +- Fix error message when deriving an obstract type [#13812](https://github.com/lampepfl/dotty/pull/13812) |
| 79 | +- Handles Nothing when synthesizing CanEqual [#13828](https://github.com/lampepfl/dotty/pull/13828) |
| 80 | +- Fix [#13026](https://github.com/lampepfl/dotty/issues/13026): No longer print VBAR and padding in the middle of the message [#13829](https://github.com/lampepfl/dotty/pull/13829) |
| 81 | +- Solves dotc assertion error on (non-sensical?) parameter type. #13769 [#13830](https://github.com/lampepfl/dotty/pull/13830) |
| 82 | +- Fix missing code-completion on standalone annotations [#13831](https://github.com/lampepfl/dotty/pull/13831) |
| 83 | +- Fix comparing `AnyVal | Null` to `Null` and selecting in `UnsafeNulls` [#13837](https://github.com/lampepfl/dotty/pull/13837) |
| 84 | +- Fix error summary printed twice [#13843](https://github.com/lampepfl/dotty/pull/13843) |
| 85 | +- Detect opaque aliases in inline val types [#13857](https://github.com/lampepfl/dotty/pull/13857) |
| 86 | +- Fix `@experimental @main` methods [#13858](https://github.com/lampepfl/dotty/pull/13858) |
| 87 | +- Fix [#13860](https://github.com/lampepfl/dotty/issues/13860): Ignore bridges when looking for a default getter's attached method. [#13870](https://github.com/lampepfl/dotty/pull/13870) |
| 88 | +- Add missing position when expanding error [#13872](https://github.com/lampepfl/dotty/pull/13872) |
| 89 | +- Try to instantiate type variables in tryInsertImplicitOnQualifier [#13884](https://github.com/lampepfl/dotty/pull/13884) |
| 90 | +- Fix crasher for missing integer argument on command line [#13894](https://github.com/lampepfl/dotty/pull/13894) |
| 91 | +- Fix messages leaking via suspended messages [#13911](https://github.com/lampepfl/dotty/pull/13911) |
| 92 | +- Don't lift try-catch statements that are already in local functions [#13944](https://github.com/lampepfl/dotty/pull/13944) |
| 93 | +- Initialize quote cache on tasty inspector run [#13953](https://github.com/lampepfl/dotty/pull/13953) |
| 94 | +- Tighten product match logic in irrefutable check [#13962](https://github.com/lampepfl/dotty/pull/13962) |
| 95 | +- Fix Mirror.Product for type lambdas [#14003](https://github.com/lampepfl/dotty/pull/14003) |
| 96 | +- Sound type avoidance (hopefully!) [#14026](https://github.com/lampepfl/dotty/pull/14026) |
| 97 | +- Fix REPL clashing with CWD artefacts [#14021](https://github.com/lampepfl/dotty/pull/14021) |
| 98 | +- Don't retypecheck erroneous arguments when fixing function [#14043](https://github.com/lampepfl/dotty/pull/14043) |
| 99 | +- Fix [#13994](https://github.com/lampepfl/dotty/issues/13994): initialise inline ctx in lateEnter [#14050](https://github.com/lampepfl/dotty/pull/14050) |
| 100 | +- Inline inlined private methods before checking accessibility [#14049](https://github.com/lampepfl/dotty/pull/14049) |
| 101 | +- Handle hoisted super arguments correctly in `elimByName` [#14057](https://github.com/lampepfl/dotty/pull/14057) |
| 102 | +- Check variance of RHS of opaque type [#14058](https://github.com/lampepfl/dotty/pull/14058) |
| 103 | +- Don't insert INDENT/UNINDENT without anything in between [#14066](https://github.com/lampepfl/dotty/pull/14066) |
| 104 | +- Don't generate illegal types when clarifying implicit errors [#14068](https://github.com/lampepfl/dotty/pull/14068) |
| 105 | +- Allow import `<ident>` to show completions [#14069](https://github.com/lampepfl/dotty/pull/14069) |
| 106 | +- Bypass eligible caches for implicit search under GADT constraints [#14072](https://github.com/lampepfl/dotty/pull/14072) |
| 107 | +- Fix passing jvm options [#14073](https://github.com/lampepfl/dotty/pull/14073) |
| 108 | +- Harden erasure of PolyFunction apply's [#14075](https://github.com/lampepfl/dotty/pull/14075) |
| 109 | +- Test for non-open classes warning [#14079](https://github.com/lampepfl/dotty/pull/14079) |
| 110 | +- Avoid field/field clashes [#14081](https://github.com/lampepfl/dotty/pull/14081) |
| 111 | +- Fix reachability of unapplySeq of non-List sequences [#14112](https://github.com/lampepfl/dotty/pull/14112) |
| 112 | +- Check for splices in quoted macro parameters [#14117](https://github.com/lampepfl/dotty/pull/14117) |
| 113 | +- Fix reachability by retaining spaces of Prod params [#14118](https://github.com/lampepfl/dotty/pull/14118) |
| 114 | +- Extract GADT constraints from wildcard type arguments [#14132](https://github.com/lampepfl/dotty/pull/14132) |
| 115 | +- Fix `derivedPolyProto` to use the correct result type [#14148](https://github.com/lampepfl/dotty/pull/14148) |
| 116 | +- Remove reflect TypeApply TypeVars [#14201](https://github.com/lampepfl/dotty/pull/14201) |
| 117 | +- Clear temp var for captured var expr to permit GC [#14205](https://github.com/lampepfl/dotty/pull/14205) |
| 118 | +- Re-type implicit candidate if expected type is context function [#14219](https://github.com/lampepfl/dotty/pull/14219) |
| 119 | +- Adapt generic tuples to be able to access members [#14242](https://github.com/lampepfl/dotty/pull/14242) |
| 120 | +- Fix Scala.JS source map URIs [#14243](https://github.com/lampepfl/dotty/pull/14243) |
| 121 | +- Disallow erased inline definitions [#14250](https://github.com/lampepfl/dotty/pull/14250) |
| 122 | +- Fix [#7512](https://github.com/lampepfl/dotty/issues/7512): Normalize type arguments before instantiation [#14259](https://github.com/lampepfl/dotty/pull/14259) |
| 123 | +- Disallow bottom types in erased implementations [#14267](https://github.com/lampepfl/dotty/pull/14267) |
| 124 | +- Fix `checkNoModuleClash` & avoid types with less precision loss [#14274](https://github.com/lampepfl/dotty/pull/14274) |
| 125 | +- Parse splices inside quoted patterns as patterns [#14277](https://github.com/lampepfl/dotty/pull/14277) |
| 126 | +- Make initialization checker see through synthetic applys [#14283](https://github.com/lampepfl/dotty/pull/14283) |
| 127 | +- Fix byte code generation for by-name parameters [#14310](https://github.com/lampepfl/dotty/pull/14310) |
| 128 | +- Avoid misleading error message [#14331](https://github.com/lampepfl/dotty/pull/14331) |
| 129 | +- Set context when reporting summonInline errors [#14405](http://github.com/lampepfl/dotty/pull/14405) |
| 130 | +- Fix [#14541](http://github.com/lampepfl/dotty/issues/14541): Problem running `@main` methods with command line arguments [#14543](http://github.com/lampepfl/dotty/pull/14543) |
| 131 | +- Check defined in src for cache in companion [#14557](http://github.com/lampepfl/dotty/pull/14557) |
| 132 | + |
| 133 | +# Contributors |
| 134 | + |
| 135 | +Thank you to all the contributors who made this release possible 🎉 |
| 136 | + |
| 137 | +According to `git shortlog -sn --no-merges 3.1.1..3.1.2` these are: |
| 138 | + |
| 139 | +``` |
| 140 | + 57 Martin Odersky |
| 141 | + 44 Nicolas Stucki |
| 142 | + 28 Dale Wijnand |
| 143 | + 20 Paweł Marks |
| 144 | + 18 Jamie Thompson |
| 145 | + 16 Andrzej Ratajczak |
| 146 | + 16 Filip Zybała |
| 147 | + 16 Guillaume Martres |
| 148 | + 15 Michał Pałka |
| 149 | + 10 Olivier Blanvillain |
| 150 | + 9 Som Snytt |
| 151 | + 8 Matt Bovel |
| 152 | + 7 Fengyun Liu |
| 153 | + 7 Tomasz Godzik |
| 154 | + 6 danicheg |
| 155 | + 6 Sébastien Doeraene |
| 156 | + 6 Gagandeep Kalra |
| 157 | + 6 oronpo |
| 158 | + 5 Seth Tisue |
| 159 | + 5 Arman Bilge |
| 160 | + 4 Stephane MICHELOUD |
| 161 | + 4 noti0na1 |
| 162 | + 3 Phil |
| 163 | + 3 adampauls |
| 164 | + 3 ghostbuster91 |
| 165 | + 3 Eric Torreborre |
| 166 | + 2 Matthieu Bovel |
| 167 | + 2 philwalk |
| 168 | + 2 Kacper Korban |
| 169 | + 2 Ruslan Shevchenko |
| 170 | + 2 Oron Port |
| 171 | + 2 Chris Kipp |
| 172 | + 1 Andrzej Ressel |
| 173 | + 1 Anatolii Kmetiuk |
| 174 | + 1 Arthur Sengileyev |
| 175 | + 1 Cédric Chantepie |
| 176 | + 1 Denis Zolkin |
| 177 | + 1 Georgi Krastev |
| 178 | + 1 Hugo van Rijswijk |
| 179 | + 1 Jakob Odersky |
| 180 | + 1 Julien Richard-Foy |
| 181 | + 1 Kien Dang |
| 182 | + 1 Natsu Kagami |
| 183 | + 1 Ondrej Lhotak |
| 184 | + 1 Ondřej Lhoták |
| 185 | + 1 Rikito Taniguchi |
| 186 | + 1 SDSR |
| 187 | + 1 Tom Grigg |
| 188 | + 1 Yang, Bo |
| 189 | + 1 comcx |
| 190 | + 1 kenji yoshida |
| 191 | + 1 mzcu |
| 192 | + 1 soronpo |
| 193 | + 1 Łukasz Wroński |
| 194 | + 1 Adrien Piquerez |
| 195 | +``` |
| 196 | + |
| 197 | +# Reporting Bugs |
| 198 | + |
| 199 | +If you encounter a bug, please [open an issue](https://github.com/lampepfl/dotty/issues/new)! 🙏 |
0 commit comments