Skip to content

Commit 56f8296

Browse files
bwilkersonCommit Queue
authored andcommitted
[migrate] protocol_server.dart
Change-Id: I5dcaaa2ae57d17eafb6359eccf9ea2a35df21784 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/409900 Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]>
1 parent 47dfec7 commit 56f8296

File tree

4 files changed

+40
-157
lines changed

4 files changed

+40
-157
lines changed

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,7 @@ class CanRenameResponse {
9393
getElementKindName(newNameMember),
9494
newName,
9595
);
96-
result.addError(
97-
message,
98-
newLocation_fromElement(newNameMember.asElement),
99-
);
96+
result.addError(message, newLocation_fromElement2(newNameMember));
10097
}
10198
}
10299

pkg/analysis_server/lib/src/protocol_server.dart

Lines changed: 22 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +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-
// ignore_for_file: analyzer_use_new_elements
6-
75
import 'package:analysis_server/plugin/protocol/protocol_dart.dart';
86
import 'package:analysis_server/protocol/protocol_generated.dart';
97
import 'package:analysis_server/src/computer/computer_color.dart';
@@ -12,8 +10,6 @@ import 'package:analysis_server/src/services/search/search_engine.dart'
1210
import 'package:analysis_server/src/utilities/extensions/element.dart';
1311
import 'package:analyzer/dart/analysis/results.dart' as engine;
1412
import 'package:analyzer/dart/ast/ast.dart' as engine;
15-
import 'package:analyzer/dart/ast/token.dart' as engine;
16-
import 'package:analyzer/dart/element/element.dart' as engine;
1713
import 'package:analyzer/dart/element/element2.dart' as engine;
1814
import 'package:analyzer/dart/element/type.dart';
1915
import 'package:analyzer/diagnostic/diagnostic.dart' as engine;
@@ -22,7 +18,6 @@ import 'package:analyzer/source/error_processor.dart';
2218
import 'package:analyzer/source/source.dart' as engine;
2319
import 'package:analyzer/source/source_range.dart' as engine;
2420
import 'package:analyzer/src/dart/element/element.dart';
25-
import 'package:analyzer/src/utilities/extensions/element.dart';
2621
import 'package:analyzer_plugin/protocol/protocol_common.dart';
2722

2823
export 'package:analysis_server/plugin/protocol/protocol_dart.dart';
@@ -38,16 +33,6 @@ List<AnalysisError> doAnalysisError_listFromEngine(
3833
return mapEngineErrors(result, result.errors, newAnalysisError_fromEngine);
3934
}
4035

41-
/// Adds [edit] to the file containing the given [element].
42-
void doSourceChange_addElementEdit(
43-
SourceChange change,
44-
engine.Element element,
45-
SourceEdit edit,
46-
) {
47-
var source = element.source!;
48-
doSourceChange_addSourceEdit(change, source, edit);
49-
}
50-
5136
/// Adds [edit] to the file containing the given [fragment].
5237
void doSourceChange_addFragmentEdit(
5338
SourceChange change,
@@ -69,14 +54,6 @@ void doSourceChange_addSourceEdit(
6954
change.addEdit(file, isNewFile ? -1 : 0, edit);
7055
}
7156

72-
String? getAliasedTypeString(engine.Element element) {
73-
if (element is engine.TypeAliasElement) {
74-
var aliasedType = element.aliasedType;
75-
return aliasedType.getDisplayString();
76-
}
77-
return null;
78-
}
79-
8057
String? getAliasedTypeString2(engine.Element2 element) {
8158
if (element is engine.TypeAliasElement2) {
8259
var aliasedType = element.aliasedType;
@@ -85,25 +62,6 @@ String? getAliasedTypeString2(engine.Element2 element) {
8562
return null;
8663
}
8764

88-
/// Returns a color hex code (in the form '#FFFFFF') if [element] represents
89-
/// a color.
90-
String? getColorHexString(engine.Element? element) {
91-
if (element is engine.VariableElement) {
92-
var dartValue = element.computeConstantValue();
93-
if (dartValue != null) {
94-
var color = ColorComputer.getColorForObject(dartValue);
95-
if (color != null) {
96-
return '#'
97-
'${color.red.toRadixString(16).padLeft(2, '0')}'
98-
'${color.green.toRadixString(16).padLeft(2, '0')}'
99-
'${color.blue.toRadixString(16).padLeft(2, '0')}'
100-
.toUpperCase();
101-
}
102-
}
103-
}
104-
return null;
105-
}
106-
10765
/// Returns a color hex code (in the form '#FFFFFF') if [element] represents
10866
/// a color.
10967
String? getColorHexString2(engine.Element2? element) {
@@ -123,26 +81,6 @@ String? getColorHexString2(engine.Element2? element) {
12381
return null;
12482
}
12583

126-
String? getReturnTypeString(engine.Element element) {
127-
if (element is engine.ExecutableElement) {
128-
if (element.kind == engine.ElementKind.SETTER) {
129-
return null;
130-
} else {
131-
return element.returnType.getDisplayString();
132-
}
133-
} else if (element is engine.VariableElement) {
134-
var type = element.type;
135-
return type.getDisplayString();
136-
} else if (element is engine.TypeAliasElement) {
137-
var aliasedType = element.aliasedType;
138-
if (aliasedType is FunctionType) {
139-
var returnType = aliasedType.returnType;
140-
return returnType.getDisplayString();
141-
}
142-
}
143-
return null;
144-
}
145-
14684
String? getReturnTypeString2(engine.Element2 element) {
14785
if (element is engine.ExecutableElement2) {
14886
if (element.kind == engine.ElementKind.SETTER) {
@@ -294,23 +232,6 @@ DiagnosticMessage newDiagnosticMessage(
294232
);
295233
}
296234

297-
/// Create a Location based on an [engine.Element].
298-
Location? newLocation_fromElement(engine.Element? element) {
299-
if (element == null || element.source == null) {
300-
return null;
301-
}
302-
var offset = element.nameOffset;
303-
var length = element.nameLength;
304-
if (element is engine.CompilationUnitElement ||
305-
(element is engine.LibraryElement && offset < 0)) {
306-
offset = 0;
307-
length = 0;
308-
}
309-
var unitElement = _getUnitElement(element);
310-
var range = engine.SourceRange(offset, length);
311-
return _locationForArgs(unitElement, range);
312-
}
313-
314235
/// Create a Location based on an [engine.Element2].
315236
Location? newLocation_fromElement2(engine.Element2? element) {
316237
if (element == null) {
@@ -351,33 +272,24 @@ Location? newLocation_fromFragment(engine.Fragment? fragment) {
351272

352273
/// Create a Location based on an [engine.SearchMatch].
353274
Location newLocation_fromMatch(engine.SearchMatch match) {
354-
var unitElement = _getUnitElement(match.element2.asElement!);
355-
return _locationForArgs(unitElement, match.sourceRange);
275+
var libraryFragment = _getUnitElement(match.element2);
276+
return _locationForArgs(libraryFragment, match.sourceRange);
356277
}
357278

358279
/// Create a Location based on an [engine.AstNode].
359280
Location newLocation_fromNode(engine.AstNode node) {
360281
var unit = node.thisOrAncestorOfType<engine.CompilationUnit>()!;
361-
var unitElement = unit.declaredElement!;
282+
var libraryFragment = unit.declaredFragment!;
362283
var range = engine.SourceRange(node.offset, node.length);
363-
return _locationForArgs(unitElement, range);
364-
}
365-
366-
/// Create a Location based on an [engine.AstNode].
367-
Location newLocation_fromToken({
368-
required engine.CompilationUnitElement unitElement,
369-
required engine.Token token,
370-
}) {
371-
var range = engine.SourceRange(token.offset, token.length);
372-
return _locationForArgs(unitElement, range);
284+
return _locationForArgs(libraryFragment, range);
373285
}
374286

375287
/// Create a Location based on an [engine.CompilationUnit].
376288
Location newLocation_fromUnit(
377289
engine.CompilationUnit unit,
378290
engine.SourceRange range,
379291
) {
380-
return _locationForArgs(unit.declaredElement!, range);
292+
return _locationForArgs(unit.declaredFragment!, range);
381293
}
382294

383295
/// Construct based on an element from the analyzer engine.
@@ -391,7 +303,7 @@ OverriddenMember newOverriddenMember_fromEngine(engine.Element2 member) {
391303
SearchResult newSearchResult_fromMatch(engine.SearchMatch match) {
392304
var kind = newSearchResultKind_fromEngine(match.kind);
393305
var location = newLocation_fromMatch(match);
394-
var path = _computePath(match.element2.asElement!);
306+
var path = _computePath(match.element2);
395307
return SearchResult(location, kind, !match.isResolved, path);
396308
}
397309

@@ -428,61 +340,34 @@ SourceEdit newSourceEdit_range(
428340
return SourceEdit(range.offset, range.length, replacement, id: id);
429341
}
430342

431-
List<Element> _computePath(engine.Element element) {
343+
List<Element> _computePath(engine.Element2 element) {
432344
var path = <Element>[];
433-
434-
if (element is engine.PrefixElement) {
435-
element = element.enclosingElement3;
436-
}
437-
438-
var element2 = element.asElement2;
439-
if (element2 != null) {
440-
for (var fragment in element2.firstFragment.withAncestors) {
441-
if (fragment case engine.Element e) {
442-
if (fragment is engine.LibraryFragment) {
443-
path.add(
444-
convertLibraryFragment(fragment as CompilationUnitElementImpl),
445-
);
446-
}
447-
path.add(convertElement(e.asElement2!));
448-
}
345+
for (var fragment in element.firstFragment.withAncestors) {
346+
if (fragment is engine.LibraryFragment) {
347+
path.add(convertLibraryFragment(fragment as CompilationUnitElementImpl));
449348
}
349+
path.add(convertElement(fragment.element));
450350
}
451-
452351
return path;
453352
}
454353

455-
engine.CompilationUnitElement _getUnitElement(engine.Element element) {
456-
if (element is engine.CompilationUnitElement) {
457-
return element;
458-
}
459-
460-
if (element.enclosingElement3 case engine.LibraryElement enclosing) {
461-
return enclosing.definingCompilationUnit;
354+
engine.LibraryFragment _getUnitElement(engine.Element2 element) {
355+
if (element is engine.LibraryElement2) {
356+
return element.firstFragment;
462357
}
463-
464-
if (element is engine.LibraryElement) {
465-
return element.definingCompilationUnit;
466-
}
467-
468-
var element2 = element.asElement2;
469-
if (element2 != null) {
470-
for (var fragment in element2.firstFragment.withAncestors) {
471-
if (fragment case engine.CompilationUnitElement unit) {
472-
return unit;
473-
}
474-
}
358+
var fragment = element.firstFragment.libraryFragment;
359+
if (fragment == null) {
360+
throw StateError('No unit: $element');
475361
}
476-
477-
throw StateError('No unit: $element');
362+
return fragment;
478363
}
479364

480-
/// Creates a new [Location].
365+
/// Returns a new [Location] based on a source [range] with a [libraryFragment].
481366
Location _locationForArgs(
482-
engine.CompilationUnitElement unitElement,
367+
engine.LibraryFragment libraryFragment,
483368
engine.SourceRange range,
484369
) {
485-
var lineInfo = unitElement.lineInfo;
370+
var lineInfo = libraryFragment.lineInfo;
486371

487372
var startLocation = lineInfo.getLocation(range.offset);
488373
var endLocation = lineInfo.getLocation(range.end);
@@ -493,7 +378,7 @@ Location _locationForArgs(
493378
var endColumn = endLocation.columnNumber;
494379

495380
return Location(
496-
unitElement.source.fullName,
381+
libraryFragment.source.fullName,
497382
range.offset,
498383
range.length,
499384
startLine,

pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,6 @@ Future<void> addLibraryImports(
6060
return;
6161
}
6262

63-
// TODO(brianwilkerson): Use `targetLibrary2` everywhere below and rename it
64-
// to `targetLibrary`.
65-
var targetLibrary = targetLibrary2.asElement;
6663
var libUtils = CorrectionUtils(resolveResult);
6764
var eol = libUtils.endOfLine;
6865
// Prepare information about existing imports.
@@ -110,9 +107,9 @@ Future<void> addLibraryImports(
110107
}
111108
if (importUri.compareTo(existingImport.uri) < 0) {
112109
var importCode = 'import $quote$importUri$quote;$eol';
113-
doSourceChange_addElementEdit(
110+
doSourceChange_addFragmentEdit(
114111
change,
115-
targetLibrary,
112+
targetLibrary2.firstFragment,
116113
SourceEdit(existingImport.offset, 0, importCode),
117114
);
118115
inserted = true;
@@ -124,9 +121,9 @@ Future<void> addLibraryImports(
124121
if (isPackage && isFirstPackage && isAfterDart) {
125122
importCode = eol + importCode;
126123
}
127-
doSourceChange_addElementEdit(
124+
doSourceChange_addFragmentEdit(
128125
change,
129-
targetLibrary,
126+
targetLibrary2.firstFragment,
130127
SourceEdit(importDirectives.last.end, 0, importCode),
131128
);
132129
}
@@ -143,9 +140,9 @@ Future<void> addLibraryImports(
143140
for (var importUri in uriList) {
144141
var importCode = '${prefix}import $quote$importUri$quote;';
145142
prefix = eol;
146-
doSourceChange_addElementEdit(
143+
doSourceChange_addFragmentEdit(
147144
change,
148-
targetLibrary,
145+
targetLibrary2.firstFragment,
149146
SourceEdit(libraryDirective.end, 0, importCode),
150147
);
151148
}
@@ -208,9 +205,9 @@ Future<void> addLibraryImports(
208205
if (i == uriList.length - 1 && insertEmptyLineAfter) {
209206
importCode = '$importCode$eol';
210207
}
211-
doSourceChange_addElementEdit(
208+
doSourceChange_addFragmentEdit(
212209
change,
213-
targetLibrary,
210+
targetLibrary2.firstFragment,
214211
SourceEdit(offset, 0, importCode),
215212
);
216213
}
@@ -493,9 +490,9 @@ final class ExtractMethodRefactoringImpl extends RefactoringImpl
493490
}
494491
// add replace edit
495492
var edit = newSourceEdit_range(range, invocationSource);
496-
doSourceChange_addElementEdit(
493+
doSourceChange_addFragmentEdit(
497494
change,
498-
_resolveResult.unit.declaredElement!,
495+
_resolveResult.unit.declaredFragment!,
499496
edit,
500497
);
501498
}
@@ -579,9 +576,9 @@ final class ExtractMethodRefactoringImpl extends RefactoringImpl
579576
if (declarationSource != null) {
580577
var offset = _parentMember!.end;
581578
var edit = SourceEdit(offset, 0, '$eol$eol$prefix$declarationSource');
582-
doSourceChange_addElementEdit(
579+
doSourceChange_addFragmentEdit(
583580
change,
584-
_resolveResult.unit.declaredElement!,
581+
_resolveResult.unit.declaredFragment!,
585582
edit,
586583
);
587584
}

pkg/analysis_server/lib/src/services/refactoring/legacy/rename.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,11 @@ class RenameProcessor {
8282
required String code,
8383
}) {
8484
var edit = SourceEdit(offset, length, code);
85-
doSourceChange_addElementEdit(change, referenceElement, edit);
85+
doSourceChange_addFragmentEdit(
86+
change,
87+
referenceElement.asElement2!.firstFragment,
88+
edit,
89+
);
8690
}
8791

8892
/// Add an edit that replaces the specified region with [code].

0 commit comments

Comments
 (0)