02ced6c1a5
Fixes two minor bugs with the sorting of members in the API summary tool: - The technique for placing getters next to their corresponding setters was to sort them lexicographically based on `Element.apiName`, which in the case of setters appends `=`. This mostly worked, but due to the fact that `=` is between `9` and `A` in ASCII, it was wrong in a few corner cases. For example, it would sort `x`, `x=`, `x1`, and `x1=` in the order `x`, `x1`, `x1=`, `x=`. Fixing this didn't affect any `api.txt` files in practice. - The technique for sorting constructors also used `Element.apiName`, which in the case of an unnamed constructor is `new`. This meant that if a class had both named and unnamed constructors, the unnamed constructor would not always be sorted before the other constructors. The fix for both bugs is to sort by `Element.name` (which does not add `=` for setters and is the empty string for unnamed constructors), and then to break ties by explicitly checking whether the element is a setter. Change-Id: I6a6a69648fb5915266a9111c5d884531bba4405d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/482361 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Paul Berry <paulberry@google.com>
analysis_server_plugin package
This package offers support for writing Dart analysis server plugins, for Dart 3.10 (Flutter 3.38) and later.
Analysis server plugins empower developers to contribute their own Dart static
analysis in IDEs and at the command line via dart analyze and flutter analyze. Analysis server plugins can offer the following static analyses:
- analysis rules, which report diagnostics in the IDE, and at the command line
- IDE quick fixes, which are local refactorings offered to users to correct a given diagnostic
- IDE quick assists, which are local refactorings that are offered at specific syntax nodes in code, but do not necessarily correct a static code issue
Review the following documents for how to write and how to use analysis server plugins: