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>
Front end for Dart
This package provides a low-level API for use by compiler back ends that wish to implement the Dart language. It is intended for eventual use by dev_compiler, dart2js, and the Dart VM. In addition, it will share implementation details with the analyzer package--this will be accomplished by having the analyzer package import (and re-export) parts of this package's private implementation.
End-users should use the dart analyze
command-line tool to analyze their Dart code.
Integrators that want to write tools that analyze Dart code should use the analyzer package.
Note: A previous version of this package was published on pub.dev. It has now been marked DISCONTINUED as it is not intended for direct consumption, as per the notes above.