Add ImplicitCallReference to NodeLintRegistry
Towards https://github.com/dart-lang/language/issues/2399
Change-Id: I4e31bec7703504711a5827e282b2b52d14ae6b05
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254465
Auto-Submit: Nate Bosch <nbosch@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index 02ab12d..cbd1507 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 4.7.0-dev
+* Add `addImplicitCallReference` to `NodeLintRegistry`.
+
## 4.6.0
* Added `DartType.element2`, so that `InterfaceType.element2` overrides it.
diff --git a/pkg/analyzer/lib/src/lint/linter_visitor.dart b/pkg/analyzer/lib/src/lint/linter_visitor.dart
index 3383df0..9c059a2 100644
--- a/pkg/analyzer/lib/src/lint/linter_visitor.dart
+++ b/pkg/analyzer/lib/src/lint/linter_visitor.dart
@@ -403,6 +403,12 @@
}
@override
+ void visitImplicitCallReference(ImplicitCallReference node) {
+ _runSubscriptions(node, registry._forImplicitCallReference);
+ super.visitImplicitCallReference(node);
+ }
+
+ @override
void visitImportDirective(ImportDirective node) {
_runSubscriptions(node, registry._forImportDirective);
super.visitImportDirective(node);
@@ -861,6 +867,8 @@
final List<_Subscription<IfElement>> _forIfElement = [];
final List<_Subscription<IfStatement>> _forIfStatement = [];
final List<_Subscription<ImplementsClause>> _forImplementsClause = [];
+ final List<_Subscription<ImplicitCallReference>> _forImplicitCallReference =
+ [];
final List<_Subscription<ImportDirective>> _forImportDirective = [];
final List<_Subscription<IndexExpression>> _forIndexExpression = [];
final List<_Subscription<InstanceCreationExpression>>
@@ -1215,6 +1223,11 @@
_forImplementsClause.add(_Subscription(linter, visitor, _getTimer(linter)));
}
+ void addImplicitCallReference(LintRule linter, AstVisitor visitor) {
+ _forImplicitCallReference
+ .add(_Subscription(linter, visitor, _getTimer(linter)));
+ }
+
void addImportDirective(LintRule linter, AstVisitor visitor) {
_forImportDirective.add(_Subscription(linter, visitor, _getTimer(linter)));
}
diff --git a/pkg/analyzer/pubspec.yaml b/pkg/analyzer/pubspec.yaml
index 54cf576..9196fd8 100644
--- a/pkg/analyzer/pubspec.yaml
+++ b/pkg/analyzer/pubspec.yaml
@@ -1,5 +1,5 @@
name: analyzer
-version: 4.6.0
+version: 4.7.0-dev
description: This package provides a library that performs static analysis of Dart code.
repository: https://github.com/dart-lang/sdk/tree/main/pkg/analyzer