@@ -14,8 +14,6 @@ import 'package:analyzer/source/line_info.dart';
1414// ignore: implementation_imports
1515import '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' ;
1917import 'package:dartdoc/src/dartdoc_options.dart' ;
2018import 'package:dartdoc/src/model/annotation.dart' ;
2119import '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