a8b8df2e45
The following shared getters are renamed so that their names are distinct from the corresponding getters in the analyzer: - `SharedFunctionTypeStructure.sortedNamedParameters` is renamed to `sortedNamedParametersShared` to be distinct from the analyzer's getter `FunctionTypeImpl.sortedNamedParameters`. - `SharedFunctionTypeStructure.typeFormals` is renamed to `typeParametersShared` to be distinct from the analyzer's getter `FunctionTypeImpl.typeFormals`. - `SharedNamedFunctionParameterStructure.name` is renamed to `nameShared` to be distinct from the analyzer's getter `ParameterElement.name`. - `SharedNamedTypeStructure.name` is renamed to `nameShared` to be distinct from the analyzer's getter `RecordTypeNamedFieldImpl.name`. These renames pave the way for switching the analyzer's use of these shared types over to the new element model. They're necessary because when the analyzer switches over to the new element model: - `FunctionTypeImpl.sortedNamedParameters` will no longer have the correct type to override `SharedFunctionTypeStructure.sortedNamedParameters`; instead, it will be necessary to convert each named parameter to a corresponding element in the new element model (`FormalParameterElementImpl` or `ParameterMember`). - `FunctionTypeImpl.typeFormals` will no longer have the correct type to override `SharedFunctionTypeStructure.typeParametersShared`; instead, it will be necessary to use `FunctionTypeImpl.typeParameters` (which is a list of new element model type parameters). - `ParameterElementMixin` will no longer implement `SharedNamedFunctionParameterStructure`; instead, `FormalParameterElementImpl` and `ParameterMember` (which are classes in the new element model) will implement it. The class `FormalParameterElementImpl` deliberately doesn't have a `name` getter; instead it has a `name3` getter, with slightly different semantics (it returns `null` rather than the empty string when there is no name). Change-Id: I629e45b6fc588e6a86f7590aab853064e31ab661 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/402220 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Chloe Stefantsova <cstefantsova@google.com> Commit-Queue: Paul Berry <paulberry@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.