5fedeeb0d6
The front end handles mixin applications by synthesizing new fields and procedures in the mixin application class to reflect the fields and procedures from the mixin. In order to ensure that the appropriate "why not promoted" context messages are created for these synthesized fields and procedures, entries need to be created for them in the `FieldNonPromotabilityInfo.individualPropertyReasons` map. Note that the source locations for these synthesized fields correspond to the declaration of the mixin application rather than the original field or procedure; to find the original field or procedure we use `Procedure.stubTarget`. Change-Id: Ib20d2514cb5aad8f95b93d26ad0e3917f1613db3 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/330246 Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Bob Nystrom <rnystrom@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.