time lint registry (for benchmarking)

Change-Id: I92acdd06bac04ce9879cb971a2c98c27749aa4a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199372
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 17deaf8..49162d7 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -325,9 +325,10 @@
   void _computeLints(FileState file, LinterContextUnit currentUnit,
       List<LinterContextUnit> allUnits) {
     var unit = currentUnit.unit;
-    ErrorReporter errorReporter = _getErrorReporter(file);
+    var errorReporter = _getErrorReporter(file);
 
-    var nodeRegistry = NodeLintRegistry(_analysisOptions.enableTiming);
+    var enableTiming = _analysisOptions.enableTiming;
+    var nodeRegistry = NodeLintRegistry(enableTiming);
     var visitors = <AstVisitor>[];
 
     var context = LinterContextImpl(
@@ -340,9 +341,12 @@
       _analysisOptions,
       file.workspacePackage,
     );
-    for (Linter linter in _analysisOptions.lintRules) {
+    for (var linter in _analysisOptions.lintRules) {
       linter.reporter = errorReporter;
+      var timer = enableTiming ? lintRegistry.getTimer(linter) : null;
+      timer?.start();
       linter.registerNodeProcessors(nodeRegistry, context);
+      timer?.stop();
     }
 
     // Run lints that handle specific node types.