Skip to content

Commit 881690f

Browse files
committed
Elements. Deprecate PrefixElement.
Change-Id: Ib529b4e24cce53a7a6a6693c94dbc51ee8ba83f2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/418922 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 481b07f commit 881690f

File tree

5 files changed

+32
-31
lines changed

5 files changed

+32
-31
lines changed

pkg/analyzer/api.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3074,7 +3074,7 @@ package:analyzer/dart/element/element.dart:
30743074
redirectedConstructor (getter: ConstructorElement?)
30753075
returnType (getter: InterfaceType)
30763076
superConstructor (getter: ConstructorElement?)
3077-
DeferredImportElementPrefix (class extends Object implements ImportElementPrefix):
3077+
DeferredImportElementPrefix (class extends Object implements ImportElementPrefix, deprecated):
30783078
new (constructor: DeferredImportElementPrefix Function())
30793079
DirectiveUri (class extends Object):
30803080
new (constructor: DirectiveUri Function())
@@ -3326,7 +3326,7 @@ package:analyzer/dart/element/element.dart:
33263326
HideElementCombinator (class extends Object implements NamespaceCombinator):
33273327
new (constructor: HideElementCombinator Function())
33283328
hiddenNames (getter: List<String>)
3329-
ImportElementPrefix (class extends Object):
3329+
ImportElementPrefix (class extends Object, deprecated):
33303330
new (constructor: ImportElementPrefix Function())
33313331
element (getter: PrefixElement)
33323332
InstanceElement (class extends Object implements TypeDefiningElement, TypeParameterizedElement, deprecated):
@@ -3407,7 +3407,7 @@ package:analyzer/dart/element/element.dart:
34073407
importKeywordOffset (getter: int)
34083408
importedLibrary (getter: LibraryElement?)
34093409
namespace (getter: Namespace)
3410-
prefix (getter: ImportElementPrefix?)
3410+
prefix (getter: ImportElementPrefix?, deprecated)
34113411
uri (getter: DirectiveUri)
34123412
LibraryLanguageVersion (class extends Object):
34133413
new (constructor: LibraryLanguageVersion Function({required Version? override, required Version package}))
@@ -3462,7 +3462,7 @@ package:analyzer/dart/element/element.dart:
34623462
PatternVariableElement (class extends Object implements LocalVariableElement, deprecated):
34633463
new (constructor: PatternVariableElement Function())
34643464
join (getter: JoinPatternVariableElement?)
3465-
PrefixElement (class extends Object implements _ExistingElement):
3465+
PrefixElement (class extends Object implements _ExistingElement, deprecated):
34663466
new (constructor: PrefixElement Function())
34673467
enclosingElement3 (getter: CompilationUnitElement, deprecated)
34683468
imports (getter: List<LibraryImportElement>)

pkg/analyzer/lib/dart/element/element.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ abstract class ConstructorElement
330330
/// [ImportElementPrefix] that is used together with `deferred`.
331331
///
332332
/// Clients may not extend, implement or mix-in this class.
333+
@Deprecated('Use PrefixElement2 instead')
333334
abstract class DeferredImportElementPrefix implements ImportElementPrefix {}
334335

335336
/// Meaning of a URI referenced in a directive.
@@ -1315,6 +1316,7 @@ abstract class HideElementCombinator implements NamespaceCombinator {
13151316
/// Usage of a [PrefixElement] in an `import` directive.
13161317
///
13171318
/// Clients may not extend, implement or mix-in this class.
1319+
@Deprecated('Use PrefixElement2 instead')
13181320
abstract class ImportElementPrefix {
13191321
/// The prefix that was specified as part of the import directive, or `null`
13201322
/// if there was no prefix specified.
@@ -1786,6 +1788,7 @@ abstract class LibraryImportElement implements _ExistingElement {
17861788

17871789
/// The prefix that was specified as part of the import directive, or `null`
17881790
/// if there was no prefix specified.
1791+
@Deprecated(elementModelDeprecationMsg)
17891792
ImportElementPrefix? get prefix;
17901793

17911794
/// The interpretation of the URI specified in the directive.
@@ -2018,6 +2021,7 @@ abstract class PatternVariableElement implements LocalVariableElement {
20182021
/// A prefix used to import one or more libraries into another library.
20192022
///
20202023
/// Clients may not extend, implement or mix-in this class.
2024+
@Deprecated('Use PrefixElement2 instead')
20212025
abstract class PrefixElement implements _ExistingElement {
20222026
@Deprecated(elementModelDeprecationMsg)
20232027
@override

pkg/analyzer/lib/src/dart/element/element.dart

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1949,7 +1949,9 @@ class DefaultSuperFormalParameterElementImpl
19491949
}
19501950

19511951
class DeferredImportElementPrefixImpl extends ImportElementPrefixImpl
1952-
implements DeferredImportElementPrefix {
1952+
implements
1953+
// ignore:deprecated_member_use_from_same_package
1954+
DeferredImportElementPrefix {
19531955
DeferredImportElementPrefixImpl({
19541956
required super.element,
19551957
});
@@ -5547,7 +5549,10 @@ class HideElementCombinatorImpl implements HideElementCombinator {
55475549
}
55485550
}
55495551

5550-
class ImportElementPrefixImpl implements ImportElementPrefix {
5552+
class ImportElementPrefixImpl
5553+
implements
5554+
// ignore:deprecated_member_use_from_same_package
5555+
ImportElementPrefix {
55515556
@override
55525557
final PrefixElementImpl element;
55535558

@@ -9766,8 +9771,10 @@ class PatternVariableElementImpl2 extends LocalVariableElementImpl2
97669771
}
97679772
}
97689773

9769-
/// A concrete implementation of a [PrefixElement].
9770-
class PrefixElementImpl extends _ExistingElementImpl implements PrefixElement {
9774+
class PrefixElementImpl extends _ExistingElementImpl
9775+
implements
9776+
// ignore:deprecated_member_use_from_same_package
9777+
PrefixElement {
97719778
/// The scope of this prefix, `null` if not set yet.
97729779
PrefixScope? _scope;
97739780

pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -196,17 +196,19 @@ class DuplicateDefinitionVerifier {
196196
}
197197

198198
var libraryDeclarations = _currentLibrary.libraryDeclarations;
199-
for (var importPrefix in fragment.libraryImportPrefixes) {
200-
var name = importPrefix.name;
201-
if (libraryDeclarations.withName(name) case var existing?) {
202-
_errorReporter.reportError(
203-
_diagnosticFactory.duplicateDefinition(
204-
CompileTimeErrorCode.PREFIX_COLLIDES_WITH_TOP_LEVEL_MEMBER,
205-
importPrefix.asElement2,
206-
existing,
207-
[name],
208-
),
209-
);
199+
for (var importPrefix in fragment.prefixes) {
200+
var name = importPrefix.name3;
201+
if (name != null) {
202+
if (libraryDeclarations.withName(name) case var existing?) {
203+
_errorReporter.reportError(
204+
_diagnosticFactory.duplicateDefinition(
205+
CompileTimeErrorCode.PREFIX_COLLIDES_WITH_TOP_LEVEL_MEMBER,
206+
importPrefix,
207+
existing,
208+
[name],
209+
),
210+
);
211+
}
210212
}
211213
}
212214

pkg/analyzer/lib/src/utilities/extensions/element.dart

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -595,18 +595,6 @@ extension PatternVariableElementImplExtension on PatternVariableElementImpl {
595595
}
596596
}
597597

598-
extension PrefixElement2Extension on PrefixElement2 {
599-
PrefixElement get asElement {
600-
return (this as PrefixElementImpl2).asElement;
601-
}
602-
}
603-
604-
extension PrefixElementExtension on PrefixElement {
605-
PrefixElement2 get asElement2 {
606-
return (this as PrefixElementImpl).element2;
607-
}
608-
}
609-
610598
extension PropertyAccessorElement2OrMemberExtension
611599
on PropertyAccessorElement2OrMember {
612600
PropertyAccessorElementOrMember get asElement {

0 commit comments

Comments
 (0)