forked from scala/scala3
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Cherry-picked 390f836]
- Loading branch information
Showing
1 changed file
with
288 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,288 @@ | ||
# Highlights of the release | ||
|
||
- Support records in JavaParsers [#16762](https://github.com/lampepfl/dotty/pull/16762) | ||
- Port JVM backend refactor from Scala 2 [#15322](https://github.com/lampepfl/dotty/pull/15322) | ||
|
||
# Other changes and fixes | ||
|
||
## Backend | ||
|
||
- Disallow mixins where super calls bind to vals [#16908](https://github.com/lampepfl/dotty/pull/16908) | ||
- Fix #15107: Avoid re-emitting a LineNumber after only LabelNodes. [#16813](https://github.com/lampepfl/dotty/pull/16813) | ||
|
||
## Coverage | ||
|
||
- Fix #17042: Preserve the shape of secondary ctors in instrumentCoverage. [#17111](https://github.com/lampepfl/dotty/pull/17111) | ||
|
||
## Default parameters | ||
|
||
- Dupe fix when finding default arg getters [#17058](https://github.com/lampepfl/dotty/pull/17058) | ||
|
||
## Documentation | ||
|
||
- Fix: ensure syntax blocks for ebnf are marked as such [#16837](https://github.com/lampepfl/dotty/pull/16837) | ||
|
||
## Erasure | ||
|
||
- Handle `@companionClass` and `@companionMethod` meta-annotations [#17091](https://github.com/lampepfl/dotty/pull/17091) | ||
|
||
## Extension Methods | ||
|
||
- Support extension methods imported from different objects [#17050](https://github.com/lampepfl/dotty/pull/17050) | ||
|
||
## GADTs | ||
|
||
- Fix tuple member selection so it works with GADT healing [#16766](https://github.com/lampepfl/dotty/pull/16766) | ||
- Fix upper bound constraints, that are higher-kinded [#16744](https://github.com/lampepfl/dotty/pull/16744) | ||
- Split out immutable GadtConstraint [#16602](https://github.com/lampepfl/dotty/pull/16602) | ||
|
||
## Implicits | ||
|
||
- Improve subtyping check for not yet eta-expanded higher kinded types [#17139](https://github.com/lampepfl/dotty/pull/17139) | ||
- Harden tpd.Apply/TypeApply in case of errors [#16887](https://github.com/lampepfl/dotty/pull/16887) | ||
- Try to be more subtle when inferring type parameters of class parents [#16896](https://github.com/lampepfl/dotty/pull/16896) | ||
- Include `P` in the implicit scope of `P.this.type` [#17088](https://github.com/lampepfl/dotty/pull/17088) | ||
|
||
## Incremental Compilation | ||
|
||
- Fix under-compilation when the method type in a SAM changes [#16996](https://github.com/lampepfl/dotty/pull/16996) | ||
|
||
## Infrastructure | ||
|
||
- Set reference version to 3.3.0-RC6 [#17504](https://github.com/lampepfl/dotty/pull/17504) | ||
- Fix #17119: Download Coursier from GitHub directly [#17141](https://github.com/lampepfl/dotty/pull/17141) | ||
|
||
## Inline | ||
|
||
- Remove NamedArg from inlined arguments [#17228](https://github.com/lampepfl/dotty/pull/17228) | ||
- Don't generate a Select for a TermRef with NoPrefix [#16754](https://github.com/lampepfl/dotty/pull/16754) | ||
- Prepare bodies of inline forwarders eagerly [#16757](https://github.com/lampepfl/dotty/pull/16757) | ||
- Do not remove inline method implementations until PruneErasedDefs [#17408](https://github.com/lampepfl/dotty/pull/17408) | ||
|
||
## Java Interop | ||
|
||
- ClassfileParser: allow missing param names (for JDK 21) [#17536](https://github.com/lampepfl/dotty/pull/17536) | ||
|
||
## Linting | ||
|
||
- Improve -Wunused: locals, privates with unset vars warning #16639 [#17160](https://github.com/lampepfl/dotty/pull/17160) | ||
- Fix wunused false positive when deriving alias type [#17157](https://github.com/lampepfl/dotty/pull/17157) | ||
- Port `-Wnonunit-statement` setting for dotty [#16936](https://github.com/lampepfl/dotty/pull/16936) | ||
|
||
## Match Types | ||
|
||
- Normalize match type usage during implicit lookup [#17457](https://github.com/lampepfl/dotty/pull/17457) | ||
- Fix #13757: Explicitly disallow higher-kinded scrutinees of match types. [#17322](https://github.com/lampepfl/dotty/pull/17322) | ||
- Fix match type reduction with wildcard type arguments [#17065](https://github.com/lampepfl/dotty/pull/17065) | ||
- Fix check whether classtag can be generated for match types [#16708](https://github.com/lampepfl/dotty/pull/16708) | ||
|
||
## Parser | ||
|
||
- Allow lines starting with `.` to fall outside previous indentation widths [#17056](https://github.com/lampepfl/dotty/pull/17056) | ||
|
||
## Pattern Matching | ||
|
||
- Fix #11541: Specialize ClassTag[T] in exhaustivity check [#17385](https://github.com/lampepfl/dotty/pull/17385) | ||
- Check outer class prefixes in type projections when pattern matching [#17136](https://github.com/lampepfl/dotty/pull/17136) | ||
- Make unchecked cases non-`@unchecked` and non-unreachable [#16958](https://github.com/lampepfl/dotty/pull/16958) | ||
- Fix #16899: Better handle X instanceOf P where X is T1 | T2 [#17382](https://github.com/lampepfl/dotty/pull/17382) | ||
|
||
## Pickling | ||
|
||
- ClassfileParser: Avoid cycle when accessing companion in inner class lookup [#16882](https://github.com/lampepfl/dotty/pull/16882) | ||
|
||
## Polyfunctions | ||
|
||
- Fix type aliases in beta-reduction of polyfunctions [#17054](https://github.com/lampepfl/dotty/pull/17054) | ||
|
||
## Quotes | ||
|
||
- Register `paramProxy` and `thisProxy` in `Quote` type [#17541](https://github.com/lampepfl/dotty/pull/17541) | ||
- Only check newVal/newMethod privateWithin on -Xcheck-macros [#17437](https://github.com/lampepfl/dotty/pull/17437) | ||
- Unencode quote and splice trees [#17342](https://github.com/lampepfl/dotty/pull/17342) | ||
- Correctly type Expr.ofTupleFromSeq for arity > 22 [#17261](https://github.com/lampepfl/dotty/pull/17261) | ||
- Use TermRef to distinguish distinct Type[T] instances [#17205](https://github.com/lampepfl/dotty/pull/17205) | ||
- Check level consistency of SingletonTypeTree as a type [#17209](https://github.com/lampepfl/dotty/pull/17209) | ||
- Fix splice type variable pattern detection [#17048](https://github.com/lampepfl/dotty/pull/17048) | ||
- Avoid creation of `@SplicedType` quote local refrences [#17051](https://github.com/lampepfl/dotty/pull/17051) | ||
- Dealias type references when healing types in quotes [#17049](https://github.com/lampepfl/dotty/pull/17049) | ||
- Replace quoted type variables in signature of HOAS pattern result [#16951](https://github.com/lampepfl/dotty/pull/16951) | ||
- Beta-reduce directly applied PolymorphicFunction [#16623](https://github.com/lampepfl/dotty/pull/16623) | ||
- Use `Object.toString` for `quoted.{Expr, Type}` [#16663](https://github.com/lampepfl/dotty/pull/16663) | ||
- Fix Splicer.isEscapedVariable [#16838](https://github.com/lampepfl/dotty/pull/16838) | ||
- Fix references to class members defined in quotes [#17107](https://github.com/lampepfl/dotty/pull/17107) | ||
- Handle pickled forward references in pickled expressions [#16855](https://github.com/lampepfl/dotty/pull/16855) | ||
- Fix #16615 - crashes of path dependent types in spliced Type.of [#16773](https://github.com/lampepfl/dotty/pull/16773) | ||
- Disallow local term references in staged types [#16362](https://github.com/lampepfl/dotty/pull/16362) | ||
- Refactor level checking / type healing logic [#17082](https://github.com/lampepfl/dotty/pull/17082) | ||
- Dealias quoted types when staging [#17059](https://github.com/lampepfl/dotty/pull/17059) | ||
- Fix quotes with references to path dependent types [#17081](https://github.com/lampepfl/dotty/pull/17081) | ||
- Make arguments order in quote hole deterministic [#17405](https://github.com/lampepfl/dotty/pull/17405) | ||
- Only transform the body of the quote with QuoteTransformer [#17451](https://github.com/lampepfl/dotty/pull/17451) | ||
- Place staged type captures in Quote AST [#17424](https://github.com/lampepfl/dotty/pull/17424) | ||
- Add SplicePattern AST to parse and type quote pattern splices [#17396](https://github.com/lampepfl/dotty/pull/17396) | ||
|
||
## Reflection | ||
|
||
- -Xcheck-macros: add hint when a symbol in created twice [#16733](https://github.com/lampepfl/dotty/pull/16733) | ||
- Assert that symbols created using reflect API have correct privateWithin symbols [#17352](https://github.com/lampepfl/dotty/pull/17352) | ||
- Fix reflect.LambdaType type test [#16972](https://github.com/lampepfl/dotty/pull/16972) | ||
- Improve `New`/`Select` -Ycheck message [#16746](https://github.com/lampepfl/dotty/pull/16746) | ||
- Improve error message for CyclicReference in macros [#16749](https://github.com/lampepfl/dotty/pull/16749) | ||
- Add reflect `defn.FunctionClass` overloads [#16849](https://github.com/lampepfl/dotty/pull/16849) | ||
|
||
## REPL | ||
|
||
- Always load REPL classes in macros including the output directory [#16866](https://github.com/lampepfl/dotty/pull/16866) | ||
|
||
## Reporting | ||
|
||
- Improve missing argument list error [#17126](https://github.com/lampepfl/dotty/pull/17126) | ||
- Improve implicit parameter error message with aliases [#17125](https://github.com/lampepfl/dotty/pull/17125) | ||
- Improve "constructor proxy shadows outer" handling [#17154](https://github.com/lampepfl/dotty/pull/17154) | ||
- Clarify ambiguous reference error message [#16137](https://github.com/lampepfl/dotty/pull/16137) | ||
- Hint about forbidden combination of implicit values and conversions [#16735](https://github.com/lampepfl/dotty/pull/16735) | ||
- Attach explanation message to diagnostic message [#16787](https://github.com/lampepfl/dotty/pull/16787) | ||
- Propagate implicit search errors from implicit macros [#16840](https://github.com/lampepfl/dotty/pull/16840) | ||
- Detail UnapplyInvalidReturnType error message [#17167](https://github.com/lampepfl/dotty/pull/17167) | ||
- Add way to debug -Xcheck-macros tree checking [#16973](https://github.com/lampepfl/dotty/pull/16973) | ||
- Enrich and finesse compiler crash reporting [#17031](https://github.com/lampepfl/dotty/pull/17031) | ||
- Allow @implicitNotFound messages as explanations [#16893](https://github.com/lampepfl/dotty/pull/16893) | ||
- Include top-level symbols from same file in outer ambiguity error [#17033](https://github.com/lampepfl/dotty/pull/17033) | ||
- Do not issue deprecation warnings when declaring deprecated case classes [#17165](https://github.com/lampepfl/dotty/pull/17165) | ||
|
||
## Scala-JS | ||
|
||
- Fix #17344: Make implicit references to this above dynamic imports explicit. [#17357](https://github.com/lampepfl/dotty/pull/17357) | ||
- Fix #12621: Better error message for JS trait ctor param. [#16811](https://github.com/lampepfl/dotty/pull/16811) | ||
- Fix #16801: Handle Closure's of s.r.FunctionXXL. [#16809](https://github.com/lampepfl/dotty/pull/16809) | ||
- Fix #17549: Unify how Memoize and Constructors decide what fields need storing. [#17560](https://github.com/lampepfl/dotty/pull/17560) | ||
|
||
## Scaladoc | ||
|
||
- Feat: Add a blog configuration with yaml [#17214](https://github.com/lampepfl/dotty/pull/17214) | ||
- Don't render the "$" for module [#17302](https://github.com/lampepfl/dotty/pull/17302) | ||
- Fix: Add scrollbar to the sidebar [#17203](https://github.com/lampepfl/dotty/pull/17203) | ||
- Scaladoc: fix crash when processing extends call [#17260](https://github.com/lampepfl/dotty/pull/17260) | ||
- Fix: Modify the CSS so that the logo of the generated documentation is adaptive [#17172](https://github.com/lampepfl/dotty/pull/17172) | ||
- Fix: Remove the duplicate parameter when generating the scaladoc. [#17097](https://github.com/lampepfl/dotty/pull/17097) | ||
- Fix: padding top in mobile version [#17019](https://github.com/lampepfl/dotty/pull/17019) | ||
- Fix: tap target of the menu in Mobile version [#17018](https://github.com/lampepfl/dotty/pull/17018) | ||
- Scaladoc: Fix expand icon not changing on anchor link [#17053](https://github.com/lampepfl/dotty/pull/17053) | ||
- Scaladoc: fix inkuire generation for PolyTypes [#17129](https://github.com/lampepfl/dotty/pull/17129) | ||
- Re port scroll bar [#17463](https://github.com/lampepfl/dotty/pull/17463) | ||
- Handle empty files and truncated YAML front matter [#17527](https://github.com/lampepfl/dotty/pull/17527) | ||
|
||
## SemanticDB | ||
|
||
- Make sure symbol exists before calling owner [#16860](https://github.com/lampepfl/dotty/pull/16860) | ||
- Support LambdaType (convert from HKTypeLambda) [#16056](https://github.com/lampepfl/dotty/pull/16056) | ||
|
||
## Specification | ||
|
||
- Apply `class-shadowing.md` to the Spec [#16839](https://github.com/lampepfl/dotty/pull/16839) | ||
- Adding base for future Spec into the compiler repo [#16825](https://github.com/lampepfl/dotty/pull/16825) | ||
|
||
## Standard Library | ||
|
||
- Optimization: avoid NotGiven allocations [#17090](https://github.com/lampepfl/dotty/pull/17090) | ||
|
||
## Tooling | ||
|
||
- Disable `ExtractSemanticDB` phase when writing to output directory defined as JAR. [#16790](https://github.com/lampepfl/dotty/pull/16790) | ||
- Print owner of bind symbol with -Yprint-debug-owners [#16854](https://github.com/lampepfl/dotty/pull/16854) | ||
- Small fixes to allow using Metals with scaladoc with sbt [#16816](https://github.com/lampepfl/dotty/pull/16816) | ||
|
||
## Transform | ||
|
||
- Move CrossVersionChecks before FirstTransform [#17301](https://github.com/lampepfl/dotty/pull/17301) | ||
- Fix needsOuterIfReferenced [#17159](https://github.com/lampepfl/dotty/pull/17159) | ||
- Drop incorrect super accessor in trait subclass [#17062](https://github.com/lampepfl/dotty/pull/17062) | ||
- Generate toString only for synthetic companions of case classes [#16890](https://github.com/lampepfl/dotty/pull/16890) | ||
- Check trait constructor for accessibility even if not called at Typer [#17094](https://github.com/lampepfl/dotty/pull/17094) | ||
- Fix #17435: A simpler fix [#17436](https://github.com/lampepfl/dotty/pull/17436) | ||
|
||
## Typer | ||
|
||
- Preserve type bounds for inlined definitions in posttyper [#17190](https://github.com/lampepfl/dotty/pull/17190) | ||
- Change logic to find members of recursive types [#17386](https://github.com/lampepfl/dotty/pull/17386) | ||
- Recognize named arguments in isFunctionWithUnknownParamType [#17161](https://github.com/lampepfl/dotty/pull/17161) | ||
- Better comparisons for type projections [#17092](https://github.com/lampepfl/dotty/pull/17092) | ||
- Allow selectDynamic and applyDynamic to be extension methods [#17106](https://github.com/lampepfl/dotty/pull/17106) | ||
- Fix use of accessibleFrom when finding default arg getters [#16977](https://github.com/lampepfl/dotty/pull/16977) | ||
- Map class literal constant types [#16988](https://github.com/lampepfl/dotty/pull/16988) | ||
- Always use adapted type in withDenotation [#16901](https://github.com/lampepfl/dotty/pull/16901) | ||
- Restrict captureWildcards to only be used if needed [#16799](https://github.com/lampepfl/dotty/pull/16799) | ||
- Don't capture wildcards if in closure or by-name [#16732](https://github.com/lampepfl/dotty/pull/16732) | ||
- Infer: Don't minimise to Nothing if there's an upper bound [#16786](https://github.com/lampepfl/dotty/pull/16786) | ||
- Perform Matchable check only if type test is needed [#16824](https://github.com/lampepfl/dotty/pull/16824) | ||
- Don't eta expand unary varargs methods [#16892](https://github.com/lampepfl/dotty/pull/16892) | ||
- Fix beta-reduction with `Nothing` and `null` args [#16938](https://github.com/lampepfl/dotty/pull/16938) | ||
- Generate kind-correct wildcards when selecting from a wildcard [#17025](https://github.com/lampepfl/dotty/pull/17025) | ||
- Fix #16405 ctd - wildcards prematurely resolving to Nothing [#16764](https://github.com/lampepfl/dotty/pull/16764) | ||
- Test: add regression test for #7790 [#17473](https://github.com/lampepfl/dotty/pull/17473) | ||
- Properly handle `AnyVal`s as refinement members of `Selectable`s [#16286](https://github.com/lampepfl/dotty/pull/16286) | ||
|
||
# Contributors | ||
|
||
Thank you to all the contributors who made this release possible 🎉 | ||
|
||
According to `git shortlog -sn --no-merges 3.3.0..3.3.1-RC1` these are: | ||
|
||
``` | ||
148 Nicolas Stucki | ||
65 Martin Odersky | ||
51 Szymon Rodziewicz | ||
49 Dale Wijnand | ||
49 Quentin Bernet | ||
38 Chris Kipp | ||
19 David Hua | ||
18 Lucas | ||
18 ysthakur | ||
15 Fengyun Liu | ||
15 Paweł Marks | ||
14 Guillaume Martres | ||
14 Jamie Thompson | ||
11 Sébastien Doeraene | ||
9 Timothée Andres | ||
8 Kacper Korban | ||
7 Matt Bovel | ||
7 Som Snytt | ||
6 Julien Richard-Foy | ||
6 Lucas Leblanc | ||
5 Michał Pałka | ||
4 Anatolii Kmetiuk | ||
4 Guillaume Raffin | ||
4 Paul Coral | ||
4 Wojciech Mazur | ||
4 Yichen Xu | ||
3 Decel | ||
3 Jan Chyb | ||
2 Adrien Piquerez | ||
2 Arman Bilge | ||
2 Carl | ||
2 Florian3k | ||
2 Kenji Yoshida | ||
2 Michael Pilquist | ||
2 Natsu Kagami | ||
2 Seth Tisue | ||
2 Tomasz Godzik | ||
2 Vasil Vasilev | ||
2 Yadu Krishnan | ||
1 Bersier | ||
1 Flavio Brasil | ||
1 Jan-Pieter van den Heuvel | ||
1 Lukas Rytz | ||
1 Miles Yucht | ||
1 Mohammad Yousuf Minhaj Zia | ||
1 Ondra Pelech | ||
1 Philippus | ||
1 Rikito Taniguchi | ||
1 Simon R | ||
1 brandonspark | ||
1 github-actions[bot] | ||
1 liang3zy22 | ||
1 s.bazarsadaev | ||
1 Łukasz Wroński | ||
``` |