dca8eb4ae6
Changes the logic for deciding whether to output details about a top level element. Previously, details would be output if the library containing the element's declaration was in `lib` but not `lib/src`. This led to a bug: if a top level element was declared in `lib/src` but exported by an `export` directive in `lib`, no details would be output, and the API summary would just show `(non-public)` after the exported name. This bug was mostly benign because we were working around it with an analyzer-specific hack: when analyzing the `analyzer` package, top level elements with an annotation of type `AnalyzerPublicApi` would have their details output regardless of where they were declared. But it wasn't completely benign: the tool was failing to output details of `DartDocumentLinkVisitor` and `DocumentLink` (from `package:analyzer_plugin`), as well as `PackageBuilder` (from `package:analyzer_testing`). The new logic is: details are output if the element appears in the export namespace of any library in `lib` but not `lib/src`. I've re-run the API summary tool so the `api.txt` files in `package:analyzer_plugin` and `package:analyzer_testing` now include the details they were missing. The analyzer-specific hack is left in place, though, because there are some analyzer classes that aren't exported, but still considered part of the analyzer public API. In a follow-up CL, I will make the API summary tool extensible so that this analyzer-specific logic can be injected by the analyzer when generating its `api.txt` file, and it won't pollute the incipient `api_summary` tool. Change-Id: I6a6a69641d656caa4f8e6361557c13fa7485e422 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/482440 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
This package provides testing utilities related to the analyzer and analysis_server_plugin packages.
Support
Post issues and feature requests at https://github.com/dart-lang/sdk/issues. These will be triaged according to the analyzer triage priorities.
Questions and discussions are welcome at the #hackers-analyzer Discord channel.
License
See the LICENSE file.