8d1a8ada6b
I don't try to be even close to be correct here, but this is the base on top of which I'd like to build the full implementation. The idea is that we scan, and implement parser listener that builds prefixed name in scopes. We fill scope with declarations as we find them. Using these scopes we can decide which import prefixes can be removed. As usually for shared code, clients will implement abstract methods in the client specific way. We might get a hierarchy of `Edit` objects, such as `RemoveImportPrefix` and `RemoveImportDirective` because at least in the analyzer we might need to apply some changes to the element models (metadata, constants). Change-Id: I153259d87a09ab070f37192ae64ccd8da36e2d41 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/350260 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
FE/analyzer shared code
This package contains logic that is shared between the front_end and analyzer packages. It is intended solely to facilitate development of the Dart SDK, and is not intended for use by end users. In particular, this package has no public API, so no guarantee is made of compatibility between one version of the package and the next.
End users should consider using the analyzer package to analyze Dart source code.