mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 23:19:47 +00:00
Add Annotation support to LinterVisitor and NodeLintRegistry
Bug: https://github.com/dart-lang/linter/issues/1073 Change-Id: I891e4b6322a13781220efc52c23ee9ca3c557418 Reviewed-on: https://dart-review.googlesource.com/c/88162 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com>
This commit is contained in:
parent
428629efd8
commit
983795d26a
|
@ -18,6 +18,12 @@ class LinterVisitor extends RecursiveAstVisitor<void> {
|
|||
|
||||
LinterVisitor(this.registry, this.exceptionHandler);
|
||||
|
||||
@override
|
||||
void visitAnnotation(Annotation node) {
|
||||
_runSubscriptions(node, registry._forAnnotation);
|
||||
super.visitAnnotation(node);
|
||||
}
|
||||
|
||||
@override
|
||||
void visitAsExpression(AsExpression node) {
|
||||
_runSubscriptions(node, registry._forAsExpression);
|
||||
|
@ -680,6 +686,7 @@ class LinterVisitor extends RecursiveAstVisitor<void> {
|
|||
/// The container to register visitors for separate AST node types.
|
||||
class NodeLintRegistry {
|
||||
final bool enableTiming;
|
||||
final List<_Subscription<Annotation>> _forAnnotation = [];
|
||||
final List<_Subscription<AsExpression>> _forAsExpression = [];
|
||||
final List<_Subscription<AssertInitializer>> _forAssertInitializer = [];
|
||||
final List<_Subscription<AssertStatement>> _forAssertStatement = [];
|
||||
|
@ -808,6 +815,10 @@ class NodeLintRegistry {
|
|||
|
||||
NodeLintRegistry(this.enableTiming);
|
||||
|
||||
void addAnnotation(LintRule linter, AstVisitor visitor) {
|
||||
_forAnnotation.add(new _Subscription(linter, visitor, _getTimer(linter)));
|
||||
}
|
||||
|
||||
void addAsExpression(LintRule linter, AstVisitor visitor) {
|
||||
_forAsExpression.add(new _Subscription(linter, visitor, _getTimer(linter)));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue