2
2
// for details. All rights reserved. Use of this source code is governed by a
3
3
// BSD-style license that can be found in the LICENSE file.
4
4
5
- // ignore_for_file: analyzer_use_new_elements
6
-
7
5
import 'dart:convert' ;
8
6
9
7
import 'package:analyzer/dart/element/element.dart' ;
@@ -24,10 +22,11 @@ import 'package:dartdoc/src/warnings.dart';
24
22
/// Getters and setters.
25
23
class Accessor extends ModelElement {
26
24
@override
27
- final PropertyAccessorElement element;
25
+ // ignore: analyzer_use_new_elements
26
+ PropertyAccessorElement get element => element2.asElement;
28
27
29
28
@override
30
- PropertyAccessorElement2 get element2 => element.asElement2 ;
29
+ final PropertyAccessorElement2 element2;
31
30
32
31
/// The combo ([Field] or [TopLevelVariable] ) containing this accessor.
33
32
///
@@ -37,11 +36,11 @@ class Accessor extends ModelElement {
37
36
// initialized by code inside this library.
38
37
late final GetterSetterCombo enclosingCombo;
39
38
40
- Accessor (this .element , super .library, super .packageGraph,
39
+ Accessor (this .element2 , super .library, super .packageGraph,
41
40
{ExecutableMember ? super .originalMember});
42
41
43
42
@override
44
- CharacterLocation ? get characterLocation => element .isSynthetic
43
+ CharacterLocation ? get characterLocation => element2 .isSynthetic
45
44
? enclosingCombo.characterLocation
46
45
: super .characterLocation;
47
46
@@ -50,19 +49,19 @@ class Accessor extends ModelElement {
50
49
super .originalMember as ExecutableMember ? ;
51
50
52
51
late final Callable modelType =
53
- getTypeFor ((originalMember ?? element ).type, library) as Callable ;
52
+ getTypeFor ((originalMember ?? element2 ).type, library) as Callable ;
54
53
55
- bool get isSynthetic => element .isSynthetic;
54
+ bool get isSynthetic => element2 .isSynthetic;
56
55
57
56
/// The [enclosingCombo] where this element was defined.
58
57
late final GetterSetterCombo definingCombo =
59
- getModelForElement (element.variable2 ! ) as GetterSetterCombo ;
58
+ getModelForElement2 (element2.variable3 ! ) as GetterSetterCombo ;
60
59
61
60
String get _sourceCode {
62
61
if (! isSynthetic) {
63
62
return super .sourceCode;
64
63
}
65
- var modelNode = packageGraph.getModelNodeFor (definingCombo.element );
64
+ var modelNode = packageGraph.getModelNodeFor2 (definingCombo.element2 );
66
65
return modelNode == null
67
66
? ''
68
67
: const HtmlEscape ().convert (modelNode.sourceCode);
@@ -108,7 +107,7 @@ class Accessor extends ModelElement {
108
107
@override
109
108
bool get hasDocumentationComment => isSynthetic
110
109
? _hasSyntheticDocumentationComment
111
- : element .documentationComment != null ;
110
+ : element2 .documentationComment != null ;
112
111
113
112
@override
114
113
void warn (
@@ -124,10 +123,10 @@ class Accessor extends ModelElement {
124
123
}
125
124
126
125
@override
127
- ModelElement get enclosingElement => switch (element.enclosingElement3 ) {
128
- CompilationUnitElement enclosingCompilationUnit =>
129
- getModelForElement (enclosingCompilationUnit.library ),
130
- _ => getModelFor (element.enclosingElement3 , library)
126
+ ModelElement get enclosingElement => switch (element2.enclosingElement2 ) {
127
+ LibraryFragment enclosingCompilationUnit =>
128
+ getModelForElement2 (enclosingCompilationUnit.element ),
129
+ _ => getModelFor2 (element2.enclosingElement2 ! , library)
131
130
};
132
131
133
132
@override
@@ -154,9 +153,9 @@ class Accessor extends ModelElement {
154
153
@override
155
154
String ? get href => enclosingCombo.href;
156
155
157
- bool get isGetter => element.isGetter ;
156
+ bool get isGetter => element2 is GetterElement ;
158
157
159
- bool get isSetter => element.isSetter ;
158
+ bool get isSetter => element2 is SetterElement ;
160
159
161
160
@override
162
161
Kind get kind => Kind .accessor;
@@ -214,24 +213,28 @@ class ContainerAccessor extends Accessor with ContainerMember, Inheritable {
214
213
@override
215
214
ContainerAccessor ? get overriddenElement {
216
215
assert (packageGraph.allLibrariesAdded);
217
- final parent = element.enclosingElement3 ;
218
- if (parent is ! InterfaceElement ) {
216
+ final parent = element2.enclosingElement2 ;
217
+ if (parent is ! InterfaceElement2 ) {
219
218
return null ;
220
219
}
221
220
for (final supertype in parent.allSupertypes) {
222
221
var accessor = isGetter
223
- ? supertype.getGetter (element.name)? .declaration
224
- : supertype.getSetter (element.name)? .declaration;
222
+ ? supertype.getters
223
+ .firstWhereOrNull ((e) => e.lookupName == element2.lookupName)
224
+ ? .baseElement
225
+ : supertype.setters
226
+ .firstWhereOrNull ((e) => e.lookupName == element2.lookupName)
227
+ ? .baseElement;
225
228
if (accessor == null ) {
226
229
continue ;
227
230
}
228
231
final parentContainer =
229
- getModelForElement (supertype.element ) as InheritingContainer ;
232
+ getModelForElement2 (supertype.element3 ) as InheritingContainer ;
230
233
final possibleFields =
231
234
parentContainer.declaredFields.where ((f) => ! f.isStatic);
232
- final fieldName = accessor.name .replaceFirst ('=' , '' );
235
+ final fieldName = accessor.lookupName ? .replaceFirst ('=' , '' );
233
236
final foundField =
234
- possibleFields.firstWhereOrNull ((f) => f.element.name == fieldName);
237
+ possibleFields.firstWhereOrNull ((f) => f.element2.name3 == fieldName);
235
238
if (foundField == null ) {
236
239
continue ;
237
240
}
0 commit comments