Skip to content

Commit 1ef10dc

Browse files
committed
Remove use of private metadata extension
1 parent e38f392 commit 1ef10dc

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

lib/src/model/model_element.dart

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ import 'package:analyzer/source/line_info.dart';
1414
// ignore: implementation_imports
1515
import 'package:analyzer/src/dart/element/member.dart'
1616
show ExecutableMember, FieldMember, Member, ParameterMember;
17-
// ignore: implementation_imports
18-
import 'package:analyzer/src/utilities/extensions/element.dart';
1917
import 'package:dartdoc/src/dartdoc_options.dart';
2018
import 'package:dartdoc/src/model/annotation.dart';
2119
import 'package:dartdoc/src/model/attribute.dart';
@@ -387,7 +385,7 @@ abstract class ModelElement
387385
/// supposed to be invisible (like `@pragma`). While `null` elements indicate
388386
/// invalid code from analyzer's perspective, some are present in `sky_engine`
389387
/// (`@Native`) so we don't want to crash here.
390-
late final List<Annotation> annotations = element.metadata
388+
late final List<Annotation> annotations = element.annotations
391389
.where((m) => m.isVisibleAnnotation)
392390
.map((m) => Annotation(m, library, packageGraph))
393391
.toList(growable: false);
@@ -634,13 +632,13 @@ abstract class ModelElement
634632
bool get isDeprecated {
635633
// If element.metadata is empty, it might be because this is a property
636634
// where the metadata belongs to the individual getter/setter
637-
if (element.metadata.isEmpty && element is PropertyInducingElement2) {
635+
if (element.annotations.isEmpty && element is PropertyInducingElement2) {
638636
var pie = element as PropertyInducingElement2;
639637

640638
// The getter or the setter might be null – so the stored value may be
641639
// `true`, `false`, or `null`
642-
var getterDeprecated = pie.getter2?.metadata.any((a) => a.isDeprecated);
643-
var setterDeprecated = pie.setter2?.metadata.any((a) => a.isDeprecated);
640+
var getterDeprecated = pie.getter2?.metadata2.hasDeprecated;
641+
var setterDeprecated = pie.setter2?.metadata2.hasDeprecated;
644642

645643
var deprecatedValues = [getterDeprecated, setterDeprecated].nonNulls;
646644

@@ -651,7 +649,12 @@ abstract class ModelElement
651649
// deprecated if both are deprecated.
652650
return deprecatedValues.every((d) => d);
653651
}
654-
return element.metadata.any((a) => a.isDeprecated);
652+
653+
if (element case Annotatable element) {
654+
return element.metadata2.hasDeprecated;
655+
}
656+
657+
return false;
655658
}
656659

657660
@override
@@ -748,8 +751,7 @@ abstract class ModelElement
748751
late final List<Parameter> parameters = () {
749752
final e = element;
750753
if (!isCallable) {
751-
throw StateError(
752-
'$e (${e.runtimeType}) cannot have parameters');
754+
throw StateError('$e (${e.runtimeType}) cannot have parameters');
753755
}
754756

755757
final List<FormalParameterElement> params;
@@ -823,3 +825,13 @@ extension on ElementAnnotation {
823825
return true;
824826
}
825827
}
828+
829+
extension on Element2 {
830+
List<ElementAnnotation> get annotations {
831+
if (this case Annotatable self) {
832+
return self.metadata2.annotations;
833+
} else {
834+
return const [];
835+
}
836+
}
837+
}

0 commit comments

Comments
 (0)