add an `allAnalysisOptions` getter to driver based contexts Change-Id: I0dc6a2508ba89afc86a663cbd0557d168a0c7cc1 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/334643 Commit-Queue: Phil Quitslund <pquitslund@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/analytics/analytics_manager.dart b/pkg/analysis_server/lib/src/analytics/analytics_manager.dart index 55de01a..74cedf9 100644 --- a/pkg/analysis_server/lib/src/analytics/analytics_manager.dart +++ b/pkg/analysis_server/lib/src/analytics/analytics_manager.dart
@@ -18,6 +18,7 @@ import 'package:analysis_server/src/protocol_server.dart'; import 'package:analysis_server/src/status/pages.dart'; import 'package:analyzer/dart/analysis/analysis_context.dart'; +import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart'; import 'package:collection/collection.dart'; import 'package:leak_tracker/src/usage_tracking/model.dart'; import 'package:meta/meta.dart'; @@ -147,15 +148,20 @@ /// Record that the [contexts] have been created. void createdAnalysisContexts(List<AnalysisContext> contexts) { for (var context in contexts) { - for (var rule in context.analysisOptions.lintRules) { - var name = rule.name; - _lintUsageCounts[name] = (_lintUsageCounts[name] ?? 0) + 1; - } - for (var processor in context.analysisOptions.errorProcessors) { - var severity = processor.severity?.name ?? 'ignore'; - var severityCounts = - _severityAdjustments.putIfAbsent(processor.code, () => {}); - severityCounts[severity] = (severityCounts[severity] ?? 0) + 1; + var allOptions = + (context as DriverBasedAnalysisContext).allAnalysisOptions; + for (var analysisOptions in allOptions) { + for (var rule in analysisOptions.lintRules) { + var name = rule.name; + _lintUsageCounts[name] = (_lintUsageCounts[name] ?? 0) + 1; + } + + for (var processor in analysisOptions.errorProcessors) { + var severity = processor.severity?.name ?? 'ignore'; + var severityCounts = + _severityAdjustments.putIfAbsent(processor.code, () => {}); + severityCounts[severity] = (severityCounts[severity] ?? 0) + 1; + } } } }
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver_based_analysis_context.dart b/pkg/analyzer/lib/src/dart/analysis/driver_based_analysis_context.dart index 7140ce7..38c0e31 100644 --- a/pkg/analyzer/lib/src/dart/analysis/driver_based_analysis_context.dart +++ b/pkg/analyzer/lib/src/dart/analysis/driver_based_analysis_context.dart
@@ -32,6 +32,9 @@ AnalysisDriver? analysisDriver, ]); + /// Get all the analysis options objects associated with this context. + List<AnalysisOptions> get allAnalysisOptions => [analysisOptions]; + @override AnalysisOptions get analysisOptions => driver.analysisOptions;