Skip to content

Commit 52b9dd1

Browse files
committed
Elements. Deprecate ParameterElement.
Change-Id: Ie74ab5beee915e7b875067803ec1c0db422dd1c2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/418961 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 66ef66b commit 52b9dd1

File tree

5 files changed

+30
-32
lines changed

5 files changed

+30
-32
lines changed

pkg/analyzer/api.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3434,7 +3434,7 @@ package:analyzer/dart/element/element.dart:
34343434
NamespaceCombinator (class extends Object):
34353435
end (getter: int)
34363436
offset (getter: int)
3437-
ParameterElement (class extends Object implements PromotableElement, ConstantEvaluationTarget):
3437+
ParameterElement (class extends Object implements PromotableElement, ConstantEvaluationTarget, deprecated):
34383438
new (constructor: ParameterElement Function())
34393439
declaration (getter: ParameterElement)
34403440
defaultValueCode (getter: String?)

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1893,6 +1893,7 @@ sealed class NamespaceCombinator {
18931893
/// A parameter defined within an executable element.
18941894
///
18951895
/// Clients may not extend, implement or mix-in this class.
1896+
@Deprecated('Use FormalParameterElement instead')
18961897
abstract class ParameterElement
18971898
implements PromotableElement, ConstantEvaluationTarget {
18981899
@override

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

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ class ClassElementImpl extends ClassOrMixinElementImpl
475475
if (count > 0) {
476476
var implicitParameters = <ParameterElementImpl>[];
477477
for (int i = 0; i < count; i++) {
478-
ParameterElement superParameter = superParameters[i];
478+
var superParameter = superParameters[i];
479479
ParameterElementImpl implicitParameter;
480480
if (superParameter is ConstVariableElement) {
481481
var constVariable = superParameter as ConstVariableElement;
@@ -484,7 +484,6 @@ class ClassElementImpl extends ClassOrMixinElementImpl
484484
nameOffset: -1,
485485
name2: superParameter.name.nullIfEmpty,
486486
nameOffset2: null,
487-
// ignore: deprecated_member_use_from_same_package
488487
parameterKind: superParameter.parameterKind,
489488
)..constantInitializer = constVariable.constantInitializer;
490489
if (superParameter.isNamed) {
@@ -500,7 +499,6 @@ class ClassElementImpl extends ClassOrMixinElementImpl
500499
nameOffset: -1,
501500
name2: superParameter.name.nullIfEmpty,
502501
nameOffset2: null,
503-
// ignore: deprecated_member_use_from_same_package
504502
parameterKind: superParameter.parameterKind,
505503
);
506504
}
@@ -1725,7 +1723,7 @@ mixin ConstructorElementMixin
17251723
return false;
17261724
}
17271725
// no required parameters
1728-
for (ParameterElement parameter in parameters) {
1726+
for (var parameter in parameters) {
17291727
if (parameter.isRequired) {
17301728
return false;
17311729
}
@@ -1854,7 +1852,7 @@ class DefaultFieldFormalParameterElementImpl
18541852
}
18551853
}
18561854

1857-
/// A [ParameterElement] for parameters that have an initializer.
1855+
/// A [ParameterElementImpl] for parameters that have an initializer.
18581856
class DefaultParameterElementImpl extends ParameterElementImpl
18591857
with ConstVariableElement {
18601858
/// Initialize a newly created parameter element to have the given [name] and
@@ -9310,10 +9308,13 @@ abstract class NonParameterVariableElementImpl extends VariableElementImpl
93109308
}
93119309
}
93129310

9313-
/// A concrete implementation of a [ParameterElement].
93149311
class ParameterElementImpl extends VariableElementImpl
9315-
with ParameterElementMixin
9316-
implements ParameterElement, FormalParameterFragment {
9312+
with
9313+
ParameterElementMixin
9314+
implements
9315+
// ignore:deprecated_member_use_from_same_package
9316+
ParameterElement,
9317+
FormalParameterFragment {
93179318
@override
93189319
String? name2;
93199320

@@ -9568,9 +9569,12 @@ class ParameterElementImpl_ofImplicitSetter extends ParameterElementImpl {
95689569
}
95699570

95709571
/// A mixin that provides a common implementation for methods defined in
9571-
/// [ParameterElement].
9572+
/// `ParameterElement`.
95729573
mixin ParameterElementMixin
9573-
implements ParameterElement, VariableElementOrMember {
9574+
implements
9575+
// ignore:deprecated_member_use_from_same_package
9576+
ParameterElement,
9577+
VariableElementOrMember {
95749578
@override
95759579
ParameterElementImpl get declaration;
95769580

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,8 +1116,12 @@ class MethodMember extends ExecutableMember
11161116
/// A parameter element defined in a parameterized type where the values of the
11171117
/// type parameters are known.
11181118
class ParameterMember extends VariableMember
1119-
with ParameterElementMixin, FormalParameterElementMixin
1120-
implements ParameterElement {
1119+
with
1120+
ParameterElementMixin,
1121+
FormalParameterElementMixin
1122+
implements
1123+
// ignore:deprecated_member_use_from_same_package
1124+
ParameterElement {
11211125
@override
11221126
final List<TypeParameterElementImpl> typeParameters;
11231127

@@ -1561,7 +1565,7 @@ class SuperFormalParameterMember extends ParameterMember
15611565
bool get isCovariant => declaration.isCovariant;
15621566

15631567
@override
1564-
ParameterElement? get superConstructorParameter {
1568+
ParameterElementMixin? get superConstructorParameter {
15651569
var superConstructorParameter = declaration.superConstructorParameter;
15661570
if (superConstructorParameter == null) {
15671571
return null;

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

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -385,13 +385,6 @@ extension FieldElementOrMemberExtension on FieldElementOrMember {
385385
}
386386

387387
extension FormalParameterElementExtension on FormalParameterElement {
388-
ParameterElement get asElement {
389-
if (this case ParameterMember member) {
390-
return member;
391-
}
392-
return firstFragment as ParameterElement;
393-
}
394-
395388
void appendToWithoutDelimiters(
396389
StringBuffer buffer, {
397390
@Deprecated('Only non-nullable by default mode is supported')
@@ -574,24 +567,20 @@ extension MixinElementImplExtension on MixinElementImpl {
574567
}
575568
}
576569

577-
extension ParameterElementExtension on ParameterElement {
570+
extension ParameterElementImplExtension on ParameterElementImpl {
571+
FormalParameterElementImpl get asElement2 {
572+
return element;
573+
}
574+
}
575+
576+
extension ParameterElementMixinExtension on ParameterElementMixin {
578577
FormalParameterElementMixin get asElement2 {
579578
return switch (this) {
580579
ParameterElementImpl(:var element) => element,
581580
ParameterMember member => member,
582581
_ => throw UnsupportedError('Unsupported type: $runtimeType'),
583582
};
584583
}
585-
586-
ParameterElementImpl get declarationImpl {
587-
return declaration as ParameterElementImpl;
588-
}
589-
}
590-
591-
extension ParameterElementImplExtension on ParameterElementImpl {
592-
FormalParameterElementImpl get asElement2 {
593-
return element;
594-
}
595584
}
596585

597586
extension PatternVariableElementImpl2Extension on PatternVariableElementImpl2 {

0 commit comments

Comments
 (0)