| Index: pkg/analysis_server/lib/src/services/correction/fix.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart
|
| index 73f9bd5732474c3ba70768484dbbd7da87ed658a..124d0f0832788e527947fd865ee20715b1389fc3 100644
|
| --- a/pkg/analysis_server/lib/src/services/correction/fix.dart
|
| +++ b/pkg/analysis_server/lib/src/services/correction/fix.dart
|
| @@ -4,6 +4,8 @@
|
|
|
| library analysis_server.src.services.correction.fix;
|
|
|
| +import 'dart:async';
|
| +
|
| import 'package:analysis_server/plugin/edit/fix/fix_core.dart';
|
| import 'package:analysis_server/src/plugin/server_plugin.dart';
|
| import 'package:analyzer/file_system/file_system.dart';
|
| @@ -17,14 +19,17 @@ import 'package:analyzer/src/generated/parser.dart';
|
| * reported after it's source was analyzed in the given [context]. The [plugin]
|
| * is used to get the list of fix contributors.
|
| */
|
| -List<Fix> computeFixes(ServerPlugin plugin, ResourceProvider resourceProvider,
|
| - AnalysisContext context, AnalysisError error) {
|
| +Future<List<Fix>> computeFixes(
|
| + ServerPlugin plugin,
|
| + ResourceProvider resourceProvider,
|
| + AnalysisContext context,
|
| + AnalysisError error) async {
|
| List<Fix> fixes = <Fix>[];
|
| List<FixContributor> contributors = plugin.fixContributors;
|
| + FixContext fixContext = new FixContextImpl(resourceProvider, context, error);
|
| for (FixContributor contributor in contributors) {
|
| try {
|
| - List<Fix> contributedFixes =
|
| - contributor.computeFixes(resourceProvider, context, error);
|
| + List<Fix> contributedFixes = await contributor.computeFixes(fixContext);
|
| if (contributedFixes != null) {
|
| fixes.addAll(contributedFixes);
|
| }
|
| @@ -202,3 +207,24 @@ class DartFixKind {
|
| static const USE_NOT_EQ_NULL =
|
| const FixKind('USE_NOT_EQ_NULL', 50, "Use != null instead of 'is! Null'");
|
| }
|
| +
|
| +/**
|
| + * The implementation of [FixContext].
|
| + */
|
| +class FixContextImpl implements FixContext {
|
| + @override
|
| + final ResourceProvider resourceProvider;
|
| +
|
| + @override
|
| + final AnalysisContext analysisContext;
|
| +
|
| + @override
|
| + final AnalysisError error;
|
| +
|
| + FixContextImpl(this.resourceProvider, this.analysisContext, this.error);
|
| +
|
| + FixContextImpl.from(FixContext other)
|
| + : resourceProvider = other.resourceProvider,
|
| + analysisContext = other.analysisContext,
|
| + error = other.error;
|
| +}
|
|
|