4
4
5
5
import 'package:analyzer/dart/ast/ast.dart' ;
6
6
import 'package:analyzer/dart/ast/visitor.dart' ;
7
- import 'package:analyzer/dart/element/element .dart' ;
7
+ import 'package:analyzer/dart/element/element2 .dart' ;
8
8
9
9
import '../analyzer.dart' ;
10
10
import '../extensions.dart' ;
@@ -38,12 +38,12 @@ abstract class _AbstractUnnecessaryOverrideVisitor
38
38
39
39
/// If [declaration] is an inherited member of interest, then this is set in
40
40
/// [visitMethodDeclaration] .
41
- late ExecutableElement _inheritedMethod;
41
+ late ExecutableElement2 _inheritedMethod;
42
42
late MethodDeclaration declaration;
43
43
44
44
_AbstractUnnecessaryOverrideVisitor (this .rule);
45
45
46
- ExecutableElement ? getInheritedElement (MethodDeclaration node);
46
+ ExecutableElement2 ? getInheritedElement (MethodDeclaration node);
47
47
48
48
@override
49
49
void visitBlock (Block node) {
@@ -112,11 +112,13 @@ abstract class _AbstractUnnecessaryOverrideVisitor
112
112
/// Returns whether [declaration] is annotated with any metadata (other than
113
113
/// `@override` or `@Override` ).
114
114
bool _addsMetadata () {
115
- var metadata = declaration.declaredElement ? .metadata ;
115
+ var metadata = declaration.declaredFragment ? .element.metadata2 ;
116
116
if (metadata != null ) {
117
- for (var annotation in metadata) {
117
+ for (var annotation in metadata.annotations ) {
118
118
if (annotation.isOverride) continue ;
119
- if (annotation.isProtected && _inheritedMethod.hasProtected) continue ;
119
+ if (annotation.isProtected && _inheritedMethod.metadata2.hasProtected) {
120
+ continue ;
121
+ }
120
122
121
123
// Any other annotation implies a meaningful override.
122
124
return true ;
@@ -126,22 +128,22 @@ abstract class _AbstractUnnecessaryOverrideVisitor
126
128
}
127
129
128
130
bool _haveSameDeclaration () {
129
- var declaredElement = declaration.declaredElement ;
131
+ var declaredElement = declaration.declaredFragment ? .element ;
130
132
if (declaredElement == null ) {
131
133
return false ;
132
134
}
133
135
if (declaredElement.returnType != _inheritedMethod.returnType) {
134
136
return false ;
135
137
}
136
- if (declaredElement.parameters .length !=
137
- _inheritedMethod.parameters .length) {
138
+ if (declaredElement.formalParameters .length !=
139
+ _inheritedMethod.formalParameters .length) {
138
140
return false ;
139
141
}
140
- for (var i = 0 ; i < _inheritedMethod.parameters .length; i++ ) {
141
- var superParam = _inheritedMethod.parameters [i];
142
- var param = declaredElement.parameters [i];
142
+ for (var i = 0 ; i < _inheritedMethod.formalParameters .length; i++ ) {
143
+ var superParam = _inheritedMethod.formalParameters [i];
144
+ var param = declaredElement.formalParameters [i];
143
145
if (param.type != superParam.type) return false ;
144
- if (param.name != superParam.name ) return false ;
146
+ if (param.name3 != superParam.name3 ) return false ;
145
147
if (param.isCovariant != superParam.isCovariant) return false ;
146
148
if (! _sameKind (param, superParam)) return false ;
147
149
if (param.defaultValueCode != superParam.defaultValueCode) return false ;
@@ -155,15 +157,15 @@ abstract class _AbstractUnnecessaryOverrideVisitor
155
157
/// This indicates that [_inheritedMethod] may have been overridden in order
156
158
/// to expand its visibility.
157
159
bool _makesPublicFromProtected () {
158
- var declaredElement = declaration.declaredElement ;
160
+ var declaredElement = declaration.declaredFragment ? .element ;
159
161
if (declaredElement == null ) return false ;
160
- if (declaredElement.hasProtected) {
162
+ if (declaredElement.metadata2. hasProtected) {
161
163
return false ;
162
164
}
163
- return _inheritedMethod.hasProtected;
165
+ return _inheritedMethod.metadata2. hasProtected;
164
166
}
165
167
166
- bool _sameKind (ParameterElement first, ParameterElement second) {
168
+ bool _sameKind (FormalParameterElement first, FormalParameterElement second) {
167
169
if (first.isRequired) {
168
170
return second.isRequired;
169
171
} else if (first.isOptionalPositional) {
@@ -180,22 +182,24 @@ class _UnnecessaryGetterOverrideVisitor
180
182
_UnnecessaryGetterOverrideVisitor (super .rule);
181
183
182
184
@override
183
- ExecutableElement ? getInheritedElement (MethodDeclaration node) {
184
- var element = node.declaredElement ;
185
+ ExecutableElement2 ? getInheritedElement (MethodDeclaration node) {
186
+ var element = node.declaredFragment ? .element ;
185
187
if (element == null ) return null ;
186
- var enclosingElement = element.enclosingElement3;
187
- if (enclosingElement is ! InterfaceElement ) return null ;
188
- return enclosingElement.thisType.lookUpGetter2 (
189
- element.name,
190
- element.library,
188
+ var enclosingElement = element.enclosingElement2;
189
+ if (enclosingElement is ! InterfaceElement2 ) return null ;
190
+ var getterName = element.name3;
191
+ if (getterName == null ) return null ;
192
+ return enclosingElement.thisType.lookUpGetter3 (
193
+ getterName,
194
+ element.library2,
191
195
concrete: true ,
192
196
inherited: true ,
193
197
);
194
198
}
195
199
196
200
@override
197
201
void visitPropertyAccess (PropertyAccess node) {
198
- if (node.propertyName.name == _inheritedMethod.name ) {
202
+ if (node.propertyName.name == _inheritedMethod.name3 ) {
199
203
node.target? .accept (this );
200
204
}
201
205
}
@@ -206,17 +210,16 @@ class _UnnecessaryMethodOverrideVisitor
206
210
_UnnecessaryMethodOverrideVisitor (super .rule);
207
211
208
212
@override
209
- ExecutableElement ? getInheritedElement (node) {
210
- var element = node.declaredElement ;
213
+ ExecutableElement2 ? getInheritedElement (node) {
214
+ var element = node.declaredFragment ? .element ;
211
215
if (element == null ) return null ;
212
216
213
- var enclosingElement = element.enclosingElement3 ;
214
- if (enclosingElement is ! InterfaceElement ) return null ;
217
+ var enclosingElement = element.enclosingElement2 ;
218
+ if (enclosingElement is ! InterfaceElement2 ) return null ;
215
219
216
- var augmented = enclosingElement.augmented ;
217
- return augmented .firstFragment.thisType.lookUpMethod2 (
220
+ return enclosingElement.firstFragment.element.thisType.lookUpMethod3 (
218
221
node.name.lexeme,
219
- element.library ,
222
+ element.library2 ,
220
223
concrete: true ,
221
224
inherited: true ,
222
225
);
@@ -226,7 +229,7 @@ class _UnnecessaryMethodOverrideVisitor
226
229
void visitMethodInvocation (MethodInvocation node) {
227
230
var declarationParameters = declaration.parameters;
228
231
if (declarationParameters != null &&
229
- node.methodName.name == _inheritedMethod.name &&
232
+ node.methodName.name == _inheritedMethod.name3 &&
230
233
argumentsMatchParameters (
231
234
node.argumentList.arguments, declarationParameters.parameters)) {
232
235
node.target? .accept (this );
@@ -239,14 +242,16 @@ class _UnnecessaryOperatorOverrideVisitor
239
242
_UnnecessaryOperatorOverrideVisitor (super .rule);
240
243
241
244
@override
242
- ExecutableElement ? getInheritedElement (node) {
243
- var element = node.declaredElement ;
245
+ ExecutableElement2 ? getInheritedElement (node) {
246
+ var element = node.declaredFragment ? .element ;
244
247
if (element == null ) return null ;
245
- var enclosingElement = element.enclosingElement3;
246
- if (enclosingElement is ! InterfaceElement ) return null ;
247
- return enclosingElement.thisType.lookUpMethod2 (
248
- element.name,
249
- element.library,
248
+ var enclosingElement = element.enclosingElement2;
249
+ if (enclosingElement is ! InterfaceElement2 ) return null ;
250
+ var methodName = element.name3;
251
+ if (methodName == null ) return null ;
252
+ return enclosingElement.thisType.lookUpMethod3 (
253
+ methodName,
254
+ element.library2,
250
255
concrete: true ,
251
256
inherited: true ,
252
257
);
@@ -258,8 +263,8 @@ class _UnnecessaryOperatorOverrideVisitor
258
263
if (node.operator .type == declaration.name.type &&
259
264
parameters != null &&
260
265
parameters.length == 1 &&
261
- parameters.first.declaredElement ==
262
- node.rightOperand.canonicalElement ) {
266
+ parameters.first.declaredFragment ? .element ==
267
+ node.rightOperand.canonicalElement2 ) {
263
268
var leftPart = node.leftOperand.unParenthesized;
264
269
if (leftPart is SuperExpression ) {
265
270
visitSuperExpression (leftPart);
@@ -286,14 +291,14 @@ class _UnnecessarySetterOverrideVisitor
286
291
_UnnecessarySetterOverrideVisitor (super .rule);
287
292
288
293
@override
289
- ExecutableElement ? getInheritedElement (node) {
290
- var element = node.declaredElement ;
294
+ ExecutableElement2 ? getInheritedElement (node) {
295
+ var element = node.declaredFragment ? .element ;
291
296
if (element == null ) return null ;
292
- var enclosingElement = element.enclosingElement3 ;
293
- if (enclosingElement is ! InterfaceElement ) return null ;
294
- return enclosingElement.thisType.lookUpSetter2 (
297
+ var enclosingElement = element.enclosingElement2 ;
298
+ if (enclosingElement is ! InterfaceElement2 ) return null ;
299
+ return enclosingElement.thisType.lookUpSetter3 (
295
300
node.name.lexeme,
296
- element.library ,
301
+ element.library2 ,
297
302
concrete: true ,
298
303
inherited: true ,
299
304
);
@@ -304,11 +309,11 @@ class _UnnecessarySetterOverrideVisitor
304
309
var parameters = declaration.parameters? .parameters;
305
310
if (parameters != null &&
306
311
parameters.length == 1 &&
307
- parameters.first.declaredElement ==
308
- node.rightHandSide.canonicalElement ) {
312
+ parameters.first.declaredFragment ? .element ==
313
+ node.rightHandSide.canonicalElement2 ) {
309
314
var leftPart = node.leftHandSide.unParenthesized;
310
315
if (leftPart is PropertyAccess ) {
311
- if (node.writeElement ? .name == _inheritedMethod.name ) {
316
+ if (node.writeElement2 ? .name3 == _inheritedMethod.name3 ) {
312
317
leftPart.target? .accept (this );
313
318
}
314
319
}
0 commit comments