|
2 | 2 | // for details. All rights reserved. Use of this source code is governed by a
|
3 | 3 | // BSD-style license that can be found in the LICENSE file.
|
4 | 4 |
|
5 |
| -// ignore_for_file: analyzer_use_new_elements |
6 |
| - |
7 | 5 | import 'package:analysis_server/src/protocol_server.dart';
|
8 | 6 | import 'package:analysis_server/src/services/correction/status.dart';
|
9 | 7 | import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
|
10 | 8 | import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
|
11 | 9 | import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
|
12 | 10 | import 'package:analyzer/dart/analysis/results.dart';
|
13 | 11 | import 'package:analyzer/dart/ast/ast.dart';
|
14 |
| -import 'package:analyzer/dart/element/element.dart'; |
| 12 | +import 'package:analyzer/dart/element/element2.dart'; |
15 | 13 | import 'package:analyzer/source/source_range.dart';
|
16 | 14 | import 'package:analyzer/src/dart/analysis/search.dart';
|
| 15 | +import 'package:analyzer/src/dart/analysis/session_helper.dart'; |
17 | 16 | import 'package:analyzer/src/dart/ast/utilities.dart';
|
18 | 17 | import 'package:analyzer/src/utilities/extensions/element.dart';
|
19 | 18 | import 'package:analyzer_plugin/utilities/range_factory.dart';
|
20 | 19 |
|
21 |
| -/// A [Refactoring] for renaming [LibraryImportElement]s. |
| 20 | +/// A [Refactoring] for renaming [LibraryImport]s. |
22 | 21 | class RenameImportRefactoringImpl extends RenameRefactoringImpl {
|
23 |
| - RenameImportRefactoringImpl( |
| 22 | + @override |
| 23 | + final MockLibraryImportElement element2; |
| 24 | + |
| 25 | + factory RenameImportRefactoringImpl( |
| 26 | + RefactoringWorkspace workspace, |
| 27 | + AnalysisSessionHelper sessionHelper, |
| 28 | + LibraryImport import, |
| 29 | + ) { |
| 30 | + var element2 = MockLibraryImportElement(import); |
| 31 | + return RenameImportRefactoringImpl._( |
| 32 | + workspace, |
| 33 | + sessionHelper, |
| 34 | + element2, |
| 35 | + element2, |
| 36 | + ); |
| 37 | + } |
| 38 | + |
| 39 | + RenameImportRefactoringImpl._( |
24 | 40 | super.workspace,
|
25 | 41 | super.sessionHelper,
|
26 |
| - LibraryImportElement super.element, |
27 |
| - ); |
28 |
| - |
29 |
| - @override |
30 |
| - LibraryImportElement get element => super.element as LibraryImportElement; |
| 42 | + super.element, |
| 43 | + this.element2, |
| 44 | + ) : super.c2(); |
31 | 45 |
|
32 | 46 | @override
|
33 | 47 | String get refactoringName {
|
@@ -78,12 +92,12 @@ class RenameImportRefactoringImpl extends RenameRefactoringImpl {
|
78 | 92 | }
|
79 | 93 | }
|
80 | 94 | if (edit != null) {
|
81 |
| - doSourceChange_addElementEdit(change, element, edit); |
| 95 | + doSourceChange_addFragmentEdit(change, element2, edit); |
82 | 96 | }
|
83 | 97 | }
|
84 | 98 | // update references
|
85 | 99 | var references = await searchEngine.searchLibraryImportReferences(
|
86 |
| - element.asElement2, |
| 100 | + element2.import, |
87 | 101 | );
|
88 | 102 | for (var reference in references) {
|
89 | 103 | if (newName.isEmpty) {
|
@@ -117,14 +131,14 @@ class RenameImportRefactoringImpl extends RenameRefactoringImpl {
|
117 | 131 |
|
118 | 132 | /// Return the [ImportDirective] node that corresponds to the [element].
|
119 | 133 | Future<ImportDirective?> _findNode() async {
|
120 |
| - var library = element.library; |
121 |
| - var path = library.source.fullName; |
| 134 | + var libraryFragment = element2.libraryFragment; |
| 135 | + var path = libraryFragment.source.fullName; |
122 | 136 | var unitResult = sessionHelper.session.getParsedUnit(path);
|
123 | 137 | if (unitResult is! ParsedUnitResult) {
|
124 | 138 | return null;
|
125 | 139 | }
|
126 | 140 | var unit = unitResult.unit;
|
127 |
| - var index = library.definingCompilationUnit.libraryImports.indexOf(element); |
| 141 | + var index = libraryFragment.libraryImports2.indexOf(element2.import); |
128 | 142 | return unit.directives.whereType<ImportDirective>().elementAt(index);
|
129 | 143 | }
|
130 | 144 |
|
|
0 commit comments