Deprecate ImportElement.prefixOffset
Change-Id: I74441b4c060c326b68c446b2483d6509dd2b2970
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201663
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart b/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart
index db58a6d..2dfbd42 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart
@@ -60,7 +60,7 @@
var node = _findNode();
if (node != null) {
var uriEnd = node.uri.end;
- var prefixEnd = element.prefixOffset + prefix.nameLength;
+ var prefixEnd = prefix.nameOffset + prefix.nameLength;
edit = newSourceEdit_range(
range.startOffsetEndOffset(uriEnd, prefixEnd), '');
}
@@ -72,7 +72,7 @@
edit = newSourceEdit_range(SourceRange(uriEnd, 0), ' as $newName');
}
} else {
- var offset = element.prefixOffset;
+ var offset = prefix.nameOffset;
var length = prefix.nameLength;
edit = newSourceEdit_range(SourceRange(offset, length), newName);
}
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index 2dd64a6..6853504 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -2,6 +2,7 @@
* Added `StringInterpolation.firstString` and `lastString`, to express
explicitly that there are always (possibly empty) strings as the first
and the last elements of an interpolation.
+* Deprecated `ImportElement.prefixOffset`, use `prefix.nameOffset` instead.
## 1.7.0
* Require `meta: ^1.4.0`.
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index 596c1b6..eb07ad0 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -1284,6 +1284,7 @@
/// Return the offset of the prefix of this import in the file that contains
/// this import directive, or `-1` if this import is synthetic, does not have
/// a prefix, or otherwise does not have an offset.
+ @Deprecated('Use prefix.nameOffset instead')
int get prefixOffset;
}
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index e41c39c..b8b5942 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -3434,9 +3434,6 @@
PrefixElement? prefix;
@override
- int prefixOffset = -1;
-
- @override
List<NamespaceCombinator> combinators = const [];
/// The cached value of [namespace].
@@ -3474,6 +3471,10 @@
NamespaceBuilder().createImportNamespaceForDirective(this);
}
+ @Deprecated('Use prefix.nameOffset instead')
+ @override
+ int get prefixOffset => prefix?.nameOffset ?? -1;
+
@override
T? accept<T>(ElementVisitor<T> visitor) => visitor.visitImportElement(this);
diff --git a/pkg/analyzer/lib/src/summary2/informative_data.dart b/pkg/analyzer/lib/src/summary2/informative_data.dart
index 132f6fd..3e691ca 100644
--- a/pkg/analyzer/lib/src/summary2/informative_data.dart
+++ b/pkg/analyzer/lib/src/summary2/informative_data.dart
@@ -340,7 +340,6 @@
(element, info) {
element as ImportElementImpl;
element.nameOffset = info.nameOffset;
- element.prefixOffset = info.prefixOffset;
var prefix = element.prefix;
if (prefix is PrefixElementImpl) {
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index e3e0548..bd68a35 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -442,11 +442,12 @@
writeIf(e.isDeferred, ' deferred');
- if (e.prefix != null) {
+ var prefix = e.prefix;
+ if (prefix != null) {
buffer.write(' as ');
- writeName(e.prefix!);
+ writeName(prefix);
if (withOffsets) {
- buffer.write('(${e.prefixOffset})');
+ buffer.write('(${prefix.nameOffset})');
}
}