Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Unified Diff: pkg/analyzer/lib/src/task/dart.dart

Issue 1807723002: Timing hooks to profile linters (#24548). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/task/dart.dart
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
index f6a3d70e5cb4b429765348b973e88499126a548d..408db9e179fd4428465287be74c85d0dd8830b46 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.dart
@@ -2813,10 +2813,20 @@ class GenerateLintsTask extends SourceBasedAnalysisTask {
//
// Generate lints.
//
+ List<AstVisitor> visitors = <AstVisitor>[];
+
List<Linter> linters = getLints(context);
- linters.forEach((l) => l.reporter = errorReporter);
- Iterable<AstVisitor> visitors = linters.map((l) => l.getVisitor()).toList();
- unit.accept(new DelegatingAstVisitor(visitors.where((v) => v != null)));
+ for (Linter linter in linters) {
+ AstVisitor visitor = linter.getVisitor();
+ if (visitor != null) {
+ linter.reporter = errorReporter;
+ visitors
+ .add(new TimedAstVisitor(visitor, lintRegistry.getTimer(linter)));
+ }
+ }
+
+ DelegatingAstVisitor dv = new DelegatingAstVisitor(visitors);
+ unit.accept(dv);
//
// Record outputs.

Powered by Google App Engine
This is Rietveld 408576698