Skip to content

Commit c6658d0

Browse files
srawlinsCommit Queue
authored andcommitted
analysis_server_plugin: Use Diagnostic instead of deprecated AnalysisError
Work towards #60635 Change-Id: Icf4186098ed04f15395aaf06c18772f8fd6ec4b7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/426560 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]>
1 parent 25dfb54 commit c6658d0

File tree

5 files changed

+30
-25
lines changed

5 files changed

+30
-25
lines changed

pkg/analysis_server_plugin/lib/edit/fix/dart_fix_context.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import 'package:analysis_server_plugin/edit/fix/fix_context.dart';
66
import 'package:analysis_server_plugin/src/correction/change_workspace.dart';
77
import 'package:analyzer/dart/analysis/results.dart';
88
import 'package:analyzer/dart/element/element.dart';
9-
import 'package:analyzer/error/error.dart';
9+
import 'package:analyzer/diagnostic/diagnostic.dart';
1010
import 'package:analyzer/instrumentation/service.dart';
1111
import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart';
1212
import 'package:analyzer/src/dart/analysis/file_state_filter.dart';
@@ -49,7 +49,7 @@ class DartFixContext implements FixContext {
4949
_cachedTopLevelDeclarations = {};
5050

5151
@override
52-
final AnalysisError error;
52+
final Diagnostic error;
5353

5454
DartFixContext({
5555
required this.instrumentationService,

pkg/analysis_server_plugin/lib/edit/fix/fix_context.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/error/error.dart';
5+
import 'package:analyzer/diagnostic/diagnostic.dart';
66
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
77

88
/// Provides context information for [FixContributor]s.
99
///
1010
/// Clients may not extend, implement or mix-in this class.
1111
abstract interface class FixContext {
1212
/// The error to fix.
13-
AnalysisError get error;
13+
Diagnostic get error;
1414
}

pkg/analysis_server_plugin/lib/src/correction/fix_in_file_processor.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:analysis_server_plugin/edit/dart/correction_producer.dart';
66
import 'package:analysis_server_plugin/edit/fix/dart_fix_context.dart';
77
import 'package:analysis_server_plugin/edit/fix/fix.dart';
88
import 'package:analysis_server_plugin/src/correction/fix_generators.dart';
9+
import 'package:analyzer/diagnostic/diagnostic.dart';
910
import 'package:analyzer/error/error.dart';
1011
import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core.dart';
1112
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
@@ -69,7 +70,7 @@ final class FixInFileProcessor {
6970
unitResult: _fixContext.unitResult,
7071
error: error,
7172
);
72-
fixState = await _fixError(fixContext, fixState, generator, error);
73+
fixState = await _fixDiagnostic(fixContext, fixState, generator, error);
7374

7475
// The original error was not fixable; continue to next generator.
7576
if (!(fixState.builder as ChangeBuilderImpl).hasEdits) {
@@ -85,7 +86,8 @@ final class FixInFileProcessor {
8586
unitResult: _fixContext.unitResult,
8687
error: error,
8788
);
88-
fixState = await _fixError(fixContext, fixState, generator, error);
89+
fixState =
90+
await _fixDiagnostic(fixContext, fixState, generator, error);
8991
}
9092
if (fixState is _NotEmptyFixState) {
9193
var sourceChange = fixState.builder.sourceChange;
@@ -104,11 +106,11 @@ final class FixInFileProcessor {
104106
return fixes;
105107
}
106108

107-
Future<_FixState> _fixError(
109+
Future<_FixState> _fixDiagnostic(
108110
DartFixContext fixContext,
109111
_FixState fixState,
110112
ProducerGenerator generator,
111-
AnalysisError diagnostic,
113+
Diagnostic diagnostic,
112114
) async {
113115
var context = CorrectionProducerContext.createResolved(
114116
applyingBulkFixes: true,

pkg/analysis_server_plugin/lib/src/correction/ignore_diagnostic.dart

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import 'package:analysis_server_plugin/edit/dart/correction_producer.dart';
66
import 'package:analysis_server_plugin/edit/dart/dart_fix_kind_priority.dart';
7-
import 'package:analyzer/error/error.dart';
7+
import 'package:analyzer/diagnostic/diagnostic.dart';
88
import 'package:analyzer/file_system/file_system.dart';
99
import 'package:analyzer/src/dart/analysis/analysis_options.dart';
1010
import 'package:analyzer/src/ignore_comments/ignore_info.dart';
@@ -200,7 +200,7 @@ class IgnoreDiagnosticOnLine extends _DartIgnoreDiagnostic {
200200
if (_isCodeUnignorable) return;
201201

202202
await builder.addDartFileEdit(file, (builder) {
203-
var offset = error.problemMessage.offset;
203+
var offset = diagnostic.problemMessage.offset;
204204
var lineNumber = unitResult.lineInfo.getLocation(offset).lineNumber - 1;
205205

206206
if (lineNumber == 0) {
@@ -234,20 +234,21 @@ abstract class _BaseIgnoreDiagnostic extends ResolvedCorrectionProducer {
234234
// TODO(applicability): comment on why.
235235
CorrectionApplicability.singleLocation;
236236

237-
AnalysisError get error => diagnostic as AnalysisError;
237+
@override
238+
Diagnostic get diagnostic => super.diagnostic!;
238239

239240
@override
240241
List<String> get fixArguments => [_code];
241242

242-
String get _code => error.errorCode.name.toLowerCase();
243+
String get _code => diagnostic.errorCode.name.toLowerCase();
243244

244245
/// Returns `true` if any of the following is `true`:
245246
/// - `error.code` is present in the `cannot-ignore` list.
246247
/// - `error.code` is already ignored in the `errors` list.
247248
bool get _isCodeUnignorable {
248249
var cannotIgnore = (analysisOptions as AnalysisOptionsImpl)
249250
.unignorableNames
250-
.contains(error.errorCode.name);
251+
.contains(diagnostic.errorCode.name);
251252

252253
if (cannotIgnore) {
253254
return true;
@@ -260,7 +261,7 @@ abstract class _BaseIgnoreDiagnostic extends ResolvedCorrectionProducer {
260261
// See `ErrorConfig` in `pkg/analyzer/source/error_processor.dart`.
261262
return analysisOptions.errorProcessors.any(
262263
(element) =>
263-
element.severity == null && element.code == error.errorCode.name,
264+
element.severity == null && element.code == diagnostic.errorCode.name,
264265
);
265266
}
266267
}

pkg/analysis_server_plugin/lib/src/plugin_server.dart

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
1818
import 'package:analyzer/dart/analysis/results.dart';
1919
import 'package:analyzer/dart/analysis/session.dart';
2020
import 'package:analyzer/dart/ast/ast.dart';
21-
import 'package:analyzer/error/error.dart';
21+
import 'package:analyzer/diagnostic/diagnostic.dart';
2222
import 'package:analyzer/error/listener.dart';
2323
import 'package:analyzer/file_system/file_system.dart';
2424
import 'package:analyzer/file_system/overlay_file_system.dart';
@@ -42,7 +42,7 @@ import 'package:analyzer_plugin/protocol/protocol_generated.dart' as protocol;
4242
import 'package:analyzer_plugin/src/protocol/protocol_internal.dart';
4343

4444
typedef _ErrorAndProtocolError = ({
45-
AnalysisError error,
45+
Diagnostic diagnostic,
4646
protocol.AnalysisError protocolError,
4747
});
4848

@@ -180,21 +180,22 @@ class PluginServer {
180180
return protocol.EditGetFixesResult(const []);
181181
}
182182

183-
var lintAtOffset = errors.where((error) => error.error.offset == offset);
183+
var lintAtOffset =
184+
errors.where((error) => error.diagnostic.offset == offset);
184185
if (lintAtOffset.isEmpty) return protocol.EditGetFixesResult(const []);
185186

186187
var errorFixesList = <protocol.AnalysisErrorFixes>[];
187188

188189
var workspace = DartChangeWorkspace([analysisContext.currentSession]);
189-
for (var (:error, :protocolError) in lintAtOffset) {
190+
for (var (:diagnostic, :protocolError) in lintAtOffset) {
190191
var context = DartFixContext(
191192
// TODO(srawlins): Use a real instrumentation service. Other
192193
// implementations get InstrumentationService from AnalysisServer.
193194
instrumentationService: InstrumentationService.NULL_SERVICE,
194195
workspace: workspace,
195196
libraryResult: libraryResult,
196197
unitResult: unitResult,
197-
error: error,
198+
error: diagnostic,
198199
);
199200

200201
List<Fix> fixes;
@@ -394,7 +395,7 @@ class PluginServer {
394395
var errorsAndProtocolErrors = [
395396
for (var e in errors)
396397
(
397-
error: e,
398+
diagnostic: e,
398399
protocolError: protocol.AnalysisError(
399400
protocol.AnalysisErrorSeverity.INFO,
400401
protocol.AnalysisErrorType.STATIC_WARNING,
@@ -638,14 +639,15 @@ class PluginServer {
638639
_priorityPaths.any(analysisContext.contextRoot.isAnalyzed);
639640

640641
static protocol.Location _locationFor(
641-
CompilationUnit unit, String path, AnalysisError error) {
642+
CompilationUnit unit, String path, Diagnostic diagnostic) {
642643
var lineInfo = unit.lineInfo;
643-
var startLocation = lineInfo.getLocation(error.offset);
644-
var endLocation = lineInfo.getLocation(error.offset + error.length);
644+
var startLocation = lineInfo.getLocation(diagnostic.offset);
645+
var endLocation =
646+
lineInfo.getLocation(diagnostic.offset + diagnostic.length);
645647
return protocol.Location(
646648
path,
647-
error.offset,
648-
error.length,
649+
diagnostic.offset,
650+
diagnostic.length,
649651
startLocation.lineNumber,
650652
startLocation.columnNumber,
651653
endLine: endLocation.lineNumber,

0 commit comments

Comments
 (0)