Skip to content

Commit 2b11b2f

Browse files
authored
Remove deprecated members (#211)
* fix: remove deprecated members * style: remove extra spacing
1 parent 330eb89 commit 2b11b2f

File tree

13 files changed

+84
-72
lines changed

13 files changed

+84
-72
lines changed

lib/src/common/parameters/excluded_identifiers_list_parameter.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class ExcludedIdentifiersListParameter {
5555

5656
/// Returns whether the target node should be ignored during analysis.
5757
bool shouldIgnore(Declaration node) {
58-
final declarationName = node.declaredElement?.name;
58+
final declarationName = node.declaredFragment?.name2;
5959

6060
final excludedItem = exclude.firstWhereOrNull(
6161
(e) {

lib/src/lints/avoid_debug_print_in_release/avoid_debug_print_in_release_rule.dart

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,10 @@ your `debugPrint` call in a `!kReleaseMode` check.""",
159159
case PrefixedIdentifier():
160160
final prefix = node.prefix.name;
161161
name = node.name.replaceAll('$prefix.', '');
162-
sourcePath = node.staticElement?.librarySource?.uri.toString() ?? '';
163-
162+
sourcePath = node.element?.library2?.uri.toString() ?? '';
164163
case SimpleIdentifier():
165164
name = node.name;
166-
sourcePath = node.staticElement?.librarySource?.uri.toString() ?? '';
165+
sourcePath = node.element?.library2?.uri.toString() ?? '';
167166

168167
default:
169168
return false;
@@ -194,10 +193,10 @@ your `debugPrint` call in a `!kReleaseMode` check.""",
194193
final prefix = node.prefix.name;
195194

196195
name = node.name.replaceAll('$prefix.', '');
197-
sourcePath = node.staticElement?.librarySource?.uri.toString() ?? '';
196+
sourcePath = node.element?.library2?.uri.toString() ?? '';
198197
case SimpleIdentifier():
199198
name = node.name;
200-
sourcePath = node.staticElement?.librarySource?.uri.toString() ?? '';
199+
sourcePath = node.element?.library2?.uri.toString() ?? '';
201200
default:
202201
return false;
203202
}

lib/src/lints/avoid_final_with_getter/visitors/avoid_final_with_getter_visitor.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:analyzer/dart/ast/ast.dart';
22
import 'package:analyzer/dart/ast/visitor.dart';
3-
import 'package:analyzer/dart/element/element.dart';
3+
import 'package:analyzer/dart/element/element2.dart';
44
import 'package:solid_lints/src/lints/avoid_final_with_getter/visitors/getter_variable_visitor.dart';
55

66
/// A visitor that checks for final private fields with getters.
@@ -16,9 +16,11 @@ class AvoidFinalWithGetterVisitor extends RecursiveAstVisitor<void> {
1616
if (node
1717
case MethodDeclaration(
1818
isGetter: true,
19-
declaredElement: ExecutableElement(
20-
isAbstract: false,
21-
isPublic: true,
19+
declaredFragment: ExecutableFragment(
20+
element: ExecutableElement2(
21+
isAbstract: false,
22+
isPublic: true,
23+
)
2224
)
2325
)) {
2426
final visitor = GetterVariableVisitor(node);
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:analyzer/dart/ast/ast.dart';
22
import 'package:analyzer/dart/ast/visitor.dart';
3-
import 'package:analyzer/dart/element/element.dart';
3+
import 'package:analyzer/dart/element/element2.dart';
44

55
/// A visitor that checks the association of the getter with
66
/// the final private variable
@@ -17,11 +17,11 @@ class GetterVariableVisitor extends RecursiveAstVisitor<void> {
1717

1818
@override
1919
void visitVariableDeclaration(VariableDeclaration node) {
20-
if (node
21-
case VariableDeclaration(
22-
isFinal: true,
23-
declaredElement: VariableElement(id: final id, isPrivate: true)
24-
) when id == _getterId) {
20+
final element = node.declaredFragment?.element;
21+
if (element != null &&
22+
element.isPrivate &&
23+
element.isFinal &&
24+
element.id == _getterId) {
2525
_variable = node;
2626
}
2727

@@ -30,17 +30,17 @@ class GetterVariableVisitor extends RecursiveAstVisitor<void> {
3030
}
3131

3232
extension on MethodDeclaration {
33-
int? get getterReferenceId => switch (body) {
34-
ExpressionFunctionBody(
35-
expression: SimpleIdentifier(
36-
staticElement: Element(
37-
declaration: PropertyAccessorElement(
38-
variable2: PropertyInducingElement(:final id)
39-
)
40-
)
41-
)
42-
) =>
43-
id,
44-
_ => null,
45-
};
33+
int? get getterReferenceId {
34+
if (body is! ExpressionFunctionBody) return null;
35+
36+
final expression = (body as ExpressionFunctionBody).expression;
37+
if (expression is SimpleIdentifier) {
38+
final element = expression.element;
39+
if (element is PropertyAccessorElement2) {
40+
return element.variable3?.id;
41+
}
42+
}
43+
44+
return null;
45+
}
4646
}

lib/src/lints/avoid_global_state/avoid_global_state_rule.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class AvoidGlobalStateRule extends SolidLintRule {
7777
extension on VariableDeclaration {
7878
bool get isMutable => !isFinal && !isConst;
7979

80-
bool get isPrivate => declaredElement?.isPrivate ?? false;
80+
bool get isPrivate => declaredElement2?.isPrivate ?? false;
8181

8282
bool get isPublicMutable => isMutable && !isPrivate;
8383
}

lib/src/lints/avoid_late_keyword/avoid_late_keyword_rule.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class AvoidLateKeywordRule extends SolidLintRule<AvoidLateKeywordParameters> {
8282
}
8383

8484
bool _shouldLint(VariableDeclaration node) {
85-
final isLateDeclaration = node.declaredElement?.isLate ?? false;
85+
final isLateDeclaration = node.isLate;
8686
if (!isLateDeclaration) return false;
8787

8888
final hasIgnoredType = _hasIgnoredType(node);
@@ -99,7 +99,7 @@ class AvoidLateKeywordRule extends SolidLintRule<AvoidLateKeywordParameters> {
9999
final ignoredTypes = config.parameters.ignoredTypes.toSet();
100100
if (ignoredTypes.isEmpty) return false;
101101

102-
final variableType = node.declaredElement?.type;
102+
final variableType = node.declaredFragment?.element.type;
103103
if (variableType == null) return false;
104104

105105
return variableType.hasIgnoredType(

lib/src/lints/avoid_returning_widgets/avoid_returning_widgets_rule.dart

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class AvoidReturningWidgetsRule
5454
/// This lint rule represents
5555
/// the error whether we return a widget.
5656
static const lintName = 'avoid_returning_widgets';
57+
static const _override = 'override';
5758

5859
AvoidReturningWidgetsRule._(super.config);
5960

@@ -97,7 +98,16 @@ class AvoidReturningWidgetsRule
9798

9899
final isIgnored = config.parameters.exclude.shouldIgnore(node);
99100

100-
final isOverriden = node.declaredElement?.hasOverride ?? false;
101+
final isOverriden = switch (node) {
102+
FunctionDeclaration(:final functionExpression) =>
103+
functionExpression.parent is MethodDeclaration &&
104+
(functionExpression.parent! as MethodDeclaration)
105+
.metadata
106+
.any((m) => m.name.name == _override),
107+
MethodDeclaration(:final metadata) =>
108+
metadata.any((m) => m.name.name == _override),
109+
_ => false,
110+
};
101111

102112
if (isWidgetReturned && !isOverriden && !isIgnored) {
103113
reporter.atNode(node, code);

lib/src/lints/avoid_unrelated_type_assertions/visitors/avoid_unrelated_type_assertions_visitor.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class AvoidUnrelatedTypeAssertionsVisitor extends RecursiveAstVisitor<void> {
9797
? objectType.typeArguments.first
9898
: objectType;
9999

100-
if ((correctObjectType.element == castedType.element) ||
100+
if ((correctObjectType.element3 == castedType.element3) ||
101101
castedType is DynamicType ||
102102
correctObjectType is DynamicType ||
103103
_isObjectAndEnum(correctObjectType, castedType)) {
@@ -106,7 +106,7 @@ class AvoidUnrelatedTypeAssertionsVisitor extends RecursiveAstVisitor<void> {
106106

107107
if (correctObjectType is InterfaceType) {
108108
return correctObjectType.allSupertypes
109-
.firstWhereOrNull((value) => value.element == castedType.element);
109+
.firstWhereOrNull((value) => value.element3 == castedType.element3);
110110
}
111111

112112
return null;
@@ -144,5 +144,5 @@ class AvoidUnrelatedTypeAssertionsVisitor extends RecursiveAstVisitor<void> {
144144

145145
bool _isObjectAndEnum(DartType objectType, DartType castedType) =>
146146
objectType.isDartCoreObject &&
147-
castedType.element?.kind == ElementKind.ENUM;
147+
castedType.element3?.kind == ElementKind.ENUM;
148148
}

lib/src/lints/avoid_unused_parameters/visitors/avoid_unused_parameters_visitor.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
import 'package:analyzer/dart/ast/ast.dart';
2525
import 'package:analyzer/dart/ast/visitor.dart';
26-
import 'package:analyzer/dart/element/element.dart';
26+
import 'package:analyzer/dart/element/element2.dart';
2727
import 'package:collection/collection.dart';
2828
import 'package:solid_lints/src/utils/node_utils.dart';
2929
import 'package:solid_lints/src/utils/parameter_utils.dart';
@@ -129,7 +129,7 @@ class AvoidUnusedParametersVisitor extends RecursiveAstVisitor<void> {
129129
for (final parameter in parameters) {
130130
final name = parameter.name;
131131
final isPresentInAll = allIdentifierElements.contains(
132-
parameter.declaredElement,
132+
parameter.declaredFragment?.element.baseElement.nonSynthetic2,
133133
);
134134

135135
/// Variables declared and initialized as 'Foo(this.param)'
@@ -172,13 +172,13 @@ class AvoidUnusedParametersVisitor extends RecursiveAstVisitor<void> {
172172
}
173173

174174
class _IdentifiersVisitor extends RecursiveAstVisitor<void> {
175-
final elements = <Element>{};
175+
final elements = <Element2>{};
176176

177177
@override
178178
void visitSimpleIdentifier(SimpleIdentifier node) {
179179
super.visitSimpleIdentifier(node);
180180

181-
final element = node.staticElement;
181+
final element = node.element;
182182
if (element != null) {
183183
elements.add(element);
184184
}
@@ -195,7 +195,7 @@ class _InvocationsVisitor extends RecursiveAstVisitor<void> {
195195
@override
196196
void visitSimpleIdentifier(SimpleIdentifier node) {
197197
if (node.name == methodName &&
198-
node.staticElement is MethodElement &&
198+
node.element is MethodElement2 &&
199199
node.parent is ArgumentList) {
200200
hasTearOffInvocations = true;
201201
}

lib/src/lints/avoid_using_api/avoid_using_api_linter.dart

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'package:analyzer/dart/ast/ast.dart';
2-
import 'package:analyzer/dart/element/element.dart';
2+
import 'package:analyzer/dart/element/element2.dart';
33
import 'package:analyzer/error/listener.dart';
44
import 'package:collection/collection.dart';
55
import 'package:custom_lint_builder/custom_lint_builder.dart';
@@ -94,8 +94,10 @@ class AvoidUsingApiLinter {
9494
return;
9595
}
9696

97-
switch (node.staticElement) {
98-
case FunctionElement() || PropertyAccessorElement():
97+
switch (node.element) {
98+
case LocalFunctionElement() ||
99+
TopLevelFunctionElement() ||
100+
PropertyAccessorElement2():
99101
reporter.atNode(node, entryCode);
100102
}
101103
});
@@ -108,13 +110,13 @@ class AvoidUsingApiLinter {
108110
String source,
109111
) {
110112
context.registry.addVariableDeclaration((node) {
111-
final typeName = node.declaredElement?.type.element?.name;
113+
final typeName = node.declaredElement2?.type.element3?.name3;
112114
if (typeName != className) {
113115
return;
114116
}
115117

116118
final sourcePath =
117-
node.declaredElement?.type.element?.librarySource?.uri.toString();
119+
node.declaredElement2?.type.element3?.library2?.uri.toString();
118120
if (sourcePath == null || !_matchesSource(sourcePath, source)) {
119121
return;
120122
}
@@ -136,25 +138,24 @@ class AvoidUsingApiLinter {
136138
case InstanceCreationExpression(:final staticType?):
137139
case SimpleIdentifier(:final staticType?):
138140
final parentSourcePath =
139-
staticType.element?.librarySource?.uri.toString() ??
140-
node.sourceUrl;
141+
staticType.element3?.library2?.uri.toString() ?? node.sourceUrl;
141142
if (parentSourcePath == null ||
142143
!_matchesSource(parentSourcePath, source)) {
143144
return;
144145
}
145146

146-
final parentTypeName = staticType.element?.name;
147+
final parentTypeName = staticType.element3?.name3;
147148
if (parentTypeName != className) {
148149
return;
149150
}
150-
case SimpleIdentifier(:final staticElement?):
151+
case SimpleIdentifier(:final element?):
151152
final parentSourcePath =
152-
staticElement.librarySource?.uri.toString() ?? node.sourceUrl;
153+
element.library2?.uri.toString() ?? node.sourceUrl;
153154
if (parentSourcePath == null ||
154155
!_matchesSource(parentSourcePath, source)) {
155156
return;
156157
}
157-
final parentElementName = staticElement.name;
158+
final parentElementName = element.name3;
158159
if (parentElementName != className) {
159160
return;
160161
}
@@ -214,7 +215,7 @@ class AvoidUsingApiLinter {
214215
switch (entityBeforeNode) {
215216
case InstanceCreationExpression(:final staticType?):
216217
case SimpleIdentifier(:final staticType?):
217-
final parentTypeName = staticType.element?.name;
218+
final parentTypeName = staticType.element3?.name3;
218219
if (parentTypeName != className) {
219220
return;
220221
}
@@ -223,8 +224,8 @@ class AvoidUsingApiLinter {
223224
node.parent ?? node,
224225
entryCode,
225226
);
226-
case SimpleIdentifier(:final staticElement?):
227-
final parentElementName = staticElement.name;
227+
case SimpleIdentifier(:final element?):
228+
final parentElementName = element.name3;
228229
if (parentElementName != className) {
229230
return;
230231
}
@@ -233,8 +234,8 @@ class AvoidUsingApiLinter {
233234
node.parent ?? node,
234235
entryCode,
235236
);
236-
case NamedType(:final element?):
237-
final parentTypeName = element.name;
237+
case NamedType(:final element2?):
238+
final parentTypeName = element2.name3;
238239
if (parentTypeName != className) {
239240
return;
240241
}
@@ -250,13 +251,13 @@ class AvoidUsingApiLinter {
250251
final methodName = node.methodName.name;
251252
if (methodName != identifier) return;
252253

253-
final enclosingElement = node.methodName.staticElement?.enclosingElement3;
254-
if (enclosingElement is! ExtensionElement ||
255-
enclosingElement.name != className) {
254+
final enclosingElement = node.methodName.element?.enclosingElement2;
255+
if (enclosingElement is! ExtensionElement2 ||
256+
enclosingElement.name3 != className) {
256257
return;
257258
}
258259

259-
final sourcePath = enclosingElement.librarySource.uri.toString();
260+
final sourcePath = enclosingElement.library2.uri.toString();
260261
if (!_matchesSource(sourcePath, source)) {
261262
return;
262263
}
@@ -268,13 +269,13 @@ class AvoidUsingApiLinter {
268269
final propertyName = node.identifier.name;
269270
if (propertyName != identifier) return;
270271

271-
final enclosingElement = node.identifier.staticElement?.enclosingElement3;
272-
if (enclosingElement is! ExtensionElement ||
273-
enclosingElement.name != className) {
272+
final enclosingElement = node.identifier.element?.enclosingElement2;
273+
if (enclosingElement is! ExtensionElement2 ||
274+
enclosingElement.name3 != className) {
274275
return;
275276
}
276277

277-
final sourcePath = enclosingElement.librarySource.uri.toString();
278+
final sourcePath = enclosingElement.library2.uri.toString();
278279
if (!_matchesSource(sourcePath, source)) return;
279280

280281
reporter.atNode(node.identifier, entryCode);

0 commit comments

Comments
 (0)