Add CHANGELOG entry for 50383

Issue 50383 is the breaking change whereby all cyclic dependencies are
reported as an error during top-level inference.

Change-Id: I669276c2e356aeed261287a0b295971d11357950
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/272781
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
This commit is contained in:
Erik Ernst 2022-11-30 09:40:40 +00:00 committed by Commit Queue
parent e70befdcbd
commit 1d7ec85d9c

View file

@ -44,6 +44,24 @@
[#49687]: https://github.com/dart-lang/sdk/issues/49687
[#2020]: https://github.com/dart-lang/language/issues/2020
- **Breaking Change** [#50383][]: Report a compile-time error for all cyclic
dependencies during top-level type inference.
Previously, some of these dependencies were ignored, based on an analysis
determining that they could not influence the inferred type. However,
this analysis was complex, differed slightly among tools, and had become
much more complex due to other changes (especially, enhanced flow
analysis).
With this change, all tools treat these cyclic dependencies in the
same way, the analysis is well-understood, and, arguably, the code is
more readable.
Breakage is mitigated by adding a declared type to one top-level
declaration per cycle which is now an error.
[#50383]: https://github.com/dart-lang/sdk/issues/50383
- Add support for **unnamed libraries**. Dart language 2.19 allows a library
directive to be written without a name (`library;`). A library directive can
be used for library-level annotations (such as `@deprecated`) and for