3d67e6f998
Some notes. 1. `Token.next` is `Token?` because there are null(s) for comment tokens. But I think that it is never `null` in code, because there is at least EOF token. So, lots of `!` null checks. 2. `Link.tail` is never null when `isNotEmpty`, but the type system cannot express it. So, some number of `!` null checks. 3. I keep assert(s) for now, and use comment `// ignore: unnecessary_null_comparison`. 4. I disabled `can_get_rid_of_nnbd_issue_error`, I think it fails because of changes in `_fe_analyzer_shared` language version. Smoke test in google3 looks green. https://test.corp.google.com/ui#id=OCL:346825148:BASE:346841611:1607632317129:6e87bf7 I have not tried yet full TAP, will do in the evening. I have not tried yet Golem, or looked at benchmarks. Change-Id: I651301e5d3a851dd77d73af960dac779cb0fc991 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175620 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: 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.