33// BSD-style license that can be found in the LICENSE file.
44
55import 'package:analyzer/dart/element/element.dart' ;
6- import 'package:analyzer/src/dart/element/member.dart' show Member ;
6+ import 'package:analyzer/src/dart/element/member.dart' show ExecutableMember ;
77import 'package:dartdoc/src/element_type.dart' ;
88import 'package:dartdoc/src/model/model.dart' ;
99import 'package:dartdoc/src/render/source_code_renderer.dart' ;
@@ -16,11 +16,18 @@ class Accessor extends ModelElement implements EnclosedElement {
1616
1717 Accessor (PropertyAccessorElement element, Library library,
1818 PackageGraph packageGraph,
19- [Member /*?*/ originalMember])
19+ [ExecutableMember /*?*/ originalMember])
2020 : super (element, library, packageGraph, originalMember);
2121
2222 @override
23- CallableElementTypeMixin get modelType => super .modelType;
23+ PropertyAccessorElement get element => super .element;
24+
25+ @override
26+ ExecutableMember get originalMember => super .originalMember;
27+
28+ CallableElementTypeMixin _modelType;
29+ CallableElementTypeMixin get modelType => _modelType ?? =
30+ ElementType .from ((originalMember ?? element).type, library, packageGraph);
2431
2532 bool get isSynthetic => element.isSynthetic;
2633
@@ -31,7 +38,7 @@ class Accessor extends ModelElement implements EnclosedElement {
3138 // The [enclosingCombo] where this element was defined.
3239 GetterSetterCombo get definingCombo {
3340 if (_definingCombo == null ) {
34- var variable = ( element as PropertyAccessorElement ) .variable;
41+ var variable = element.variable;
3542 _definingCombo = ModelElement .fromElement (variable, packageGraph);
3643 assert (_definingCombo != null , 'Unable to find defining combo' );
3744 }
@@ -85,12 +92,12 @@ class Accessor extends ModelElement implements EnclosedElement {
8592
8693 @override
8794 ModelElement get enclosingElement {
88- if (_accessor .enclosingElement is CompilationUnitElement ) {
95+ if (element .enclosingElement is CompilationUnitElement ) {
8996 return packageGraph.findButDoNotCreateLibraryFor (
90- _accessor .enclosingElement.enclosingElement);
97+ element .enclosingElement.enclosingElement);
9198 }
9299
93- return ModelElement .from (_accessor .enclosingElement, library, packageGraph);
100+ return ModelElement .from (element .enclosingElement, library, packageGraph);
94101 }
95102
96103 @override
@@ -104,9 +111,9 @@ class Accessor extends ModelElement implements EnclosedElement {
104111 return enclosingCombo.href;
105112 }
106113
107- bool get isGetter => _accessor .isGetter;
114+ bool get isGetter => element .isGetter;
108115
109- bool get isSetter => _accessor .isSetter;
116+ bool get isSetter => element .isSetter;
110117
111118 @override
112119 String get kind => 'accessor' ;
@@ -118,8 +125,6 @@ class Accessor extends ModelElement implements EnclosedElement {
118125 _namePart ?? = super .namePart.split ('=' ).first;
119126 return _namePart;
120127 }
121-
122- PropertyAccessorElement get _accessor => (element as PropertyAccessorElement );
123128}
124129
125130/// A getter or setter that is a member of a [Container] .
@@ -153,7 +158,7 @@ class ContainerAccessor extends Accessor with ContainerMember, Inheritable {
153158
154159 ContainerAccessor .inherited (PropertyAccessorElement element, Library library,
155160 PackageGraph packageGraph, this ._enclosingElement,
156- {Member originalMember})
161+ {ExecutableMember originalMember})
157162 : super (element, library, packageGraph, originalMember) {
158163 _isInherited = true ;
159164 }
0 commit comments