Skip to content

Commit 6896a21

Browse files
srawlinsCommit Queue
authored and
Commit Queue
committed
analyzer plugins: Move DartFixContext and Impl to server_plugin
* Combine DartFixContext and DartFixContextImpl into one class; separation seems unnecessary. * Change constructor (which was on DartFixContextImpl) to use all named parameters. * Change `resolveResult` field to `resolvedResult`, since the type is called `ResolvedUnitResult`. * Start doc comments with third person verbs [1]. [1]: https://dart.dev/effective-dart/documentation#prefer-starting-function-or-method-comments-with-third-person-verbs Work towards #53402 Change-Id: Idb3c6776f899d5bc9b634c1d9c4b998de2603d04 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/358382 Reviewed-by: Konstantin Shcheglov <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]>
1 parent d470144 commit 6896a21

File tree

13 files changed

+152
-172
lines changed

13 files changed

+152
-172
lines changed

pkg/analysis_server/lib/plugin/edit/fix/fix_dart.dart

Lines changed: 0 additions & 43 deletions
This file was deleted.

pkg/analysis_server/lib/src/cider/fixes.dart

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analysis_server/src/services/correction/change_workspace.dart';
6-
import 'package:analysis_server/src/services/correction/fix.dart';
76
import 'package:analysis_server/src/services/correction/fix_internal.dart';
8-
import 'package:analyzer/dart/analysis/results.dart';
97
import 'package:analyzer/dart/element/element.dart';
108
import 'package:analyzer/error/error.dart';
119
import 'package:analyzer/instrumentation/service.dart';
@@ -14,7 +12,7 @@ import 'package:analyzer/src/dart/analysis/file_state.dart';
1412
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
1513
import 'package:analyzer/src/dart/micro/resolve_file.dart';
1614
import 'package:analyzer/src/services/top_level_declarations.dart';
17-
import 'package:analyzer_plugin/utilities/change_builder/change_workspace.dart';
15+
import 'package:server_plugin/edit/fix/dart_fix_context.dart';
1816
import 'package:server_plugin/edit/fix/fix.dart';
1917

2018
class CiderErrorFixes {
@@ -52,9 +50,9 @@ class CiderFixesComputer {
5250
var workspace = DartChangeWorkspace([resolvedUnit.session]);
5351
var context = _CiderDartFixContextImpl(
5452
_fileResolver,
55-
workspace,
56-
resolvedUnit,
57-
error,
53+
workspace: workspace,
54+
resolvedResult: resolvedUnit,
55+
error: error,
5856
);
5957

6058
var fixes = await computeFixes(context);
@@ -71,16 +69,15 @@ class CiderFixesComputer {
7169
}
7270
}
7371

74-
class _CiderDartFixContextImpl extends DartFixContextImpl {
72+
class _CiderDartFixContextImpl extends DartFixContext {
7573
final FileResolver _fileResolver;
7674

7775
_CiderDartFixContextImpl(
78-
this._fileResolver,
79-
ChangeWorkspace workspace,
80-
ResolvedUnitResult resolvedUnit,
81-
AnalysisError error,
82-
) : super(InstrumentationService.NULL_SERVICE, workspace, resolvedUnit,
83-
error);
76+
this._fileResolver, {
77+
required super.workspace,
78+
required super.resolvedResult,
79+
required super.error,
80+
}) : super(instrumentationService: InstrumentationService.NULL_SERVICE);
8481

8582
@override
8683
Future<Map<LibraryElement, Element>> getTopLevelDeclarations(

pkg/analysis_server/lib/src/g3/fixes.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import 'package:analyzer/instrumentation/service.dart';
1515
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
1616
import 'package:analyzer/src/dart/error/lint_codes.dart';
1717
import 'package:collection/collection.dart';
18+
import 'package:server_plugin/edit/fix/dart_fix_context.dart';
1819
import 'package:server_plugin/edit/fix/fix.dart';
1920

2021
/// The root of a set of classes that support testing for lint fixes.
@@ -92,11 +93,11 @@ class LintFixTester {
9293
}
9394

9495
var workspace = DartChangeWorkspace([analysisSession]);
95-
var context = DartFixContextImpl(
96-
InstrumentationService.NULL_SERVICE,
97-
workspace,
98-
unitResult,
99-
error,
96+
var context = DartFixContext(
97+
instrumentationService: InstrumentationService.NULL_SERVICE,
98+
workspace: workspace,
99+
resolvedResult: unitResult,
100+
error: error,
100101
);
101102

102103
List<Fix> fixes;

pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import 'package:analysis_server/src/plugin/result_converter.dart';
1010
import 'package:analysis_server/src/protocol_server.dart';
1111
import 'package:analysis_server/src/request_handler_mixin.dart';
1212
import 'package:analysis_server/src/services/correction/change_workspace.dart';
13-
import 'package:analysis_server/src/services/correction/fix.dart';
1413
import 'package:analysis_server/src/services/correction/fix/analysis_options/fix_generator.dart';
1514
import 'package:analysis_server/src/services/correction/fix/pubspec/fix_generator.dart';
1615
import 'package:analysis_server/src/services/correction/fix_internal.dart';
@@ -29,6 +28,7 @@ import 'package:analyzer/src/util/file_paths.dart' as file_paths;
2928
import 'package:analyzer/src/util/file_paths.dart';
3029
import 'package:analyzer/src/workspace/pub.dart';
3130
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
31+
import 'package:server_plugin/edit/fix/dart_fix_context.dart';
3232
import 'package:server_plugin/edit/fix/fix.dart';
3333
import 'package:yaml/yaml.dart';
3434

@@ -178,8 +178,12 @@ class EditGetFixesHandler extends LegacyHandler
178178
var workspace = DartChangeWorkspace(
179179
await server.currentSessions,
180180
);
181-
var context = DartFixContextImpl(
182-
server.instrumentationService, workspace, result, error);
181+
var context = DartFixContext(
182+
instrumentationService: server.instrumentationService,
183+
workspace: workspace,
184+
resolvedResult: result,
185+
error: error,
186+
);
183187

184188
List<Fix> fixes;
185189
try {

pkg/analysis_server/lib/src/lsp/handlers/code_actions/dart.dart

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import 'package:analysis_server/src/protocol_server.dart'
1313
import 'package:analysis_server/src/services/correction/assist.dart';
1414
import 'package:analysis_server/src/services/correction/assist_internal.dart';
1515
import 'package:analysis_server/src/services/correction/change_workspace.dart';
16-
import 'package:analysis_server/src/services/correction/fix.dart';
1716
import 'package:analysis_server/src/services/correction/fix_internal.dart';
1817
import 'package:analysis_server/src/services/refactoring/framework/refactoring_context.dart';
1918
import 'package:analysis_server/src/services/refactoring/framework/refactoring_processor.dart';
@@ -23,6 +22,7 @@ import 'package:analyzer/dart/analysis/session.dart'
2322
show InconsistentAnalysisException;
2423
import 'package:analyzer/dart/element/element.dart';
2524
import 'package:analyzer/src/dart/ast/utilities.dart';
25+
import 'package:server_plugin/edit/fix/dart_fix_context.dart';
2626

2727
/// Produces [CodeAction]s from Dart source commands, fixes, assists and
2828
/// refactors from the server.
@@ -169,8 +169,12 @@ class DartCodeActionsProducer extends AbstractCodeActionsProducer {
169169
range.start.line > errorEndLine) {
170170
continue;
171171
}
172-
var context = DartFixContextImpl(
173-
server.instrumentationService, workspace, unit, error);
172+
var context = DartFixContext(
173+
instrumentationService: server.instrumentationService,
174+
workspace: workspace,
175+
resolvedResult: unit,
176+
error: error,
177+
);
174178
final fixes = await computeFixes(context);
175179
if (fixes.isNotEmpty) {
176180
final diagnostic = toDiagnostic(

pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:_fe_analyzer_shared/src/scanner/errors.dart';
6-
import 'package:analysis_server/plugin/edit/fix/fix_dart.dart';
76
import 'package:analysis_server/protocol/protocol_generated.dart'
87
hide AnalysisOptions;
98
import 'package:analysis_server/src/lsp/source_edits.dart';
@@ -12,8 +11,9 @@ import 'package:analysis_server/src/services/correction/dart/abstract_producer.d
1211
import 'package:analysis_server/src/services/correction/dart/data_driven.dart';
1312
import 'package:analysis_server/src/services/correction/dart/organize_imports.dart';
1413
import 'package:analysis_server/src/services/correction/dart/remove_unused_import.dart';
15-
import 'package:analysis_server/src/services/correction/fix.dart';
14+
import 'package:analysis_server/src/services/correction/fix/pubspec/fix_generator.dart';
1615
import 'package:analysis_server/src/services/correction/fix_processor.dart';
16+
import 'package:analysis_server/src/services/correction/organize_imports.dart';
1717
import 'package:analysis_server/src/services/linter/lint_names.dart';
1818
import 'package:analyzer/dart/analysis/analysis_context.dart';
1919
import 'package:analyzer/dart/analysis/results.dart';
@@ -48,12 +48,10 @@ import 'package:analyzer_plugin/protocol/protocol_common.dart'
4848
import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core.dart';
4949
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
5050
import 'package:analyzer_plugin/utilities/change_builder/conflicting_edit_exception.dart';
51+
import 'package:server_plugin/edit/fix/dart_fix_context.dart';
5152
import 'package:server_plugin/edit/fix/fix.dart';
5253
import 'package:yaml/yaml.dart';
5354

54-
import 'fix/pubspec/fix_generator.dart';
55-
import 'organize_imports.dart';
56-
5755
/// A fix producer that produces changes that will fix multiple diagnostics in
5856
/// one or more files.
5957
///
@@ -596,15 +594,15 @@ class BulkFixProcessor {
596594
var analysisOptions =
597595
unit.session.analysisContext.getAnalysisOptionsForFile(unit.file);
598596

599-
DartFixContextImpl fixContext(
597+
DartFixContext fixContext(
600598
AnalysisError diagnostic, {
601599
required bool autoTriggered,
602600
}) {
603-
return DartFixContextImpl(
604-
instrumentationService,
605-
workspace,
606-
unit,
607-
diagnostic,
601+
return DartFixContext(
602+
instrumentationService: instrumentationService,
603+
workspace: workspace,
604+
resolvedResult: unit,
605+
error: diagnostic,
608606
autoTriggered: autoTriggered,
609607
);
610608
}

pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import 'dart:math' as math;
66

77
import 'package:_fe_analyzer_shared/src/scanner/token.dart';
8-
import 'package:analysis_server/plugin/edit/fix/fix_dart.dart';
98
import 'package:analysis_server/src/services/correction/util.dart';
109
import 'package:analysis_server/src/utilities/selection.dart';
1110
import 'package:analyzer/dart/analysis/code_style_options.dart';
@@ -34,6 +33,7 @@ import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
3433
import 'package:analyzer_plugin/utilities/range_factory.dart';
3534
import 'package:meta/meta.dart';
3635
import 'package:path/path.dart' as path;
36+
import 'package:server_plugin/edit/fix/dart_fix_context.dart';
3737

3838
/// An object that can compute a correction (fix or assist) in a Dart file.
3939
abstract class CorrectionProducer<T extends ParsedUnitResult>
@@ -582,7 +582,7 @@ abstract class _AbstractCorrectionProducer<T extends ParsedUnitResult> {
582582
AnalysisSessionHelper get sessionHelper => _context.sessionHelper;
583583

584584
bool get strictCasts {
585-
var file = _context.dartFixContext?.resolveResult.file;
585+
var file = _context.dartFixContext?.resolvedResult.file;
586586
// TODO(pq): can this ever happen?
587587
if (file == null) return false;
588588
var analysisOptions = _context.session.analysisContext

pkg/analysis_server/lib/src/services/correction/fix.dart

Lines changed: 2 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,6 @@
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:analysis_server/plugin/edit/fix/fix_dart.dart';
6-
import 'package:analyzer/dart/analysis/results.dart';
7-
import 'package:analyzer/dart/element/element.dart';
8-
import 'package:analyzer/error/error.dart';
9-
import 'package:analyzer/instrumentation/service.dart';
10-
import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart';
11-
import 'package:analyzer/src/dart/analysis/file_state_filter.dart';
12-
import 'package:analyzer/src/services/top_level_declarations.dart';
13-
import 'package:analyzer_plugin/utilities/change_builder/change_workspace.dart';
145
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
156

167
/// An enumeration of quick fix kinds for the errors found in an analysis
@@ -38,59 +29,6 @@ class AnalysisOptionsFixKind {
3829
);
3930
}
4031

41-
/// The implementation of [DartFixContext].
42-
class DartFixContextImpl implements DartFixContext {
43-
@override
44-
final InstrumentationService instrumentationService;
45-
46-
@override
47-
final ChangeWorkspace workspace;
48-
49-
@override
50-
final ResolvedUnitResult resolveResult;
51-
52-
@override
53-
final AnalysisError error;
54-
55-
@override
56-
final bool autoTriggered;
57-
58-
DartFixContextImpl(this.instrumentationService, this.workspace,
59-
this.resolveResult, this.error,
60-
{this.autoTriggered = false});
61-
62-
@override
63-
Future<Map<LibraryElement, Element>> getTopLevelDeclarations(
64-
String name) async {
65-
return TopLevelDeclarations(resolveResult).withName(name);
66-
}
67-
68-
@override
69-
Stream<LibraryElement> librariesWithExtensions(String memberName) async* {
70-
var analysisContext = resolveResult.session.analysisContext;
71-
var analysisDriver = (analysisContext as DriverBasedAnalysisContext).driver;
72-
await analysisDriver.discoverAvailableFiles();
73-
74-
var fsState = analysisDriver.fsState;
75-
var filter = FileStateFilter(
76-
fsState.getFileForPath(resolveResult.path),
77-
);
78-
79-
for (var file in fsState.knownFiles.toList()) {
80-
if (!filter.shouldInclude(file)) {
81-
continue;
82-
}
83-
84-
var elementResult = await analysisDriver.getLibraryByUri(file.uriStr);
85-
if (elementResult is! LibraryElementResult) {
86-
continue;
87-
}
88-
89-
yield elementResult.element;
90-
}
91-
}
92-
}
93-
9432
/// An enumeration of quick fix kinds found in a Dart file.
9533
class DartFixKind {
9634
static const ADD_ASYNC = FixKind(
@@ -1911,11 +1849,8 @@ class DartFixKind {
19111849
DartFixKindPriority.IN_FILE,
19121850
"Use x.isNotEmpty instead of '!x.isEmpty' everywhere in file",
19131851
);
1914-
static const USE_NAMED_CONSTANTS = FixKind(
1915-
'dart.fix.use.namedConstants',
1916-
DartFixKindPriority.DEFAULT,
1917-
'Replace with a predefined named constant'
1918-
);
1852+
static const USE_NAMED_CONSTANTS = FixKind('dart.fix.use.namedConstants',
1853+
DartFixKindPriority.DEFAULT, 'Replace with a predefined named constant');
19191854
static const USE_NOT_EQ_NULL = FixKind(
19201855
'dart.fix.use.notEqNull',
19211856
DartFixKindPriority.DEFAULT,

0 commit comments

Comments
 (0)