Skip to content

Commit 60a4ec2

Browse files
srawlinsCommit Queue
authored andcommitted
analyzer: Simplify DeprecatedMemberUseVerifier re: annotations
Change-Id: I8cd87e16eea83d5f24d3289e12e53aa2a64cb821 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443920 Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]>
1 parent 6052f3e commit 60a4ec2

File tree

4 files changed

+24
-25
lines changed

4 files changed

+24
-25
lines changed

pkg/analyzer/lib/src/error/best_practices_verifier.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,9 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
406406

407407
@override
408408
void visitFieldDeclaration(FieldDeclaration node) {
409-
_deprecatedMemberUseVerifier.pushInDeprecatedMetadata(node.metadata);
409+
_deprecatedMemberUseVerifier.pushInDeprecatedValue(
410+
node.firstVariableElement.isUseDeprecated,
411+
);
410412

411413
try {
412414
super.visitFieldDeclaration(node);
@@ -781,7 +783,9 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
781783

782784
@override
783785
void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
784-
_deprecatedMemberUseVerifier.pushInDeprecatedMetadata(node.metadata);
786+
_deprecatedMemberUseVerifier.pushInDeprecatedValue(
787+
node.firstVariableElement.isUseDeprecated,
788+
);
785789

786790
if (!_invalidAccessVerifier._inTestDirectory) {
787791
for (var decl in node.variables.variables) {

pkg/analyzer/lib/src/error/deprecated_member_use_verifier.dart

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,6 @@ abstract class BaseDeprecatedMemberUseVerifier {
9595
_checkForDeprecated(node.element, node);
9696
}
9797

98-
void pushInDeprecatedMetadata(List<Annotation> metadata) {
99-
var hasDeprecated = _hasDeprecatedUseAnnotation(metadata);
100-
pushInDeprecatedValue(hasDeprecated);
101-
}
102-
10398
void pushInDeprecatedValue(bool value) {
10499
var newValue = _inDeprecatedMemberStack.last || value;
105100
_inDeprecatedMemberStack.add(newValue);
@@ -263,21 +258,6 @@ abstract class BaseDeprecatedMemberUseVerifier {
263258
constantValue?.getField('expires')?.toStringValue();
264259
}
265260

266-
/// Whether [annotations] includes an annotation indicating "deprecated use."
267-
///
268-
/// This amounts to any annotation using `deprecated` or `Deprecated()` (the
269-
/// default constructor) from `dart:core`.
270-
static bool _hasDeprecatedUseAnnotation(List<Annotation> annotations) {
271-
var deprecatedAnnotations = annotations
272-
.map((a) => a.elementAnnotation)
273-
.nonNulls
274-
.where((a) => a.isDeprecated);
275-
return deprecatedAnnotations.any((deprecated) {
276-
var value = deprecated.computeConstantValue();
277-
return value?.getField('_isUse')?.toBoolValue() ?? true;
278-
});
279-
}
280-
281261
/// Returns whether [element] is a [FormalParameterElement] declared in
282262
/// [node].
283263
static bool _isLocalParameter(Element? element, AstNode? node) {

pkg/analyzer/lib/src/utilities/extensions/ast.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,16 @@ extension ExtensionElementExtension on ExtensionElement {
164164
extendedType.ifTypeOrNull<InterfaceType>()?.element;
165165
}
166166

167+
extension FieldDeclarationExtension on FieldDeclaration {
168+
Element get firstVariableElement =>
169+
fields.variables.first.declaredFragment!.element;
170+
}
171+
172+
extension TopLevelVariableDeclarationExtension on TopLevelVariableDeclaration {
173+
Element get firstVariableElement =>
174+
variables.variables.first.declaredFragment!.element;
175+
}
176+
167177
extension VariableDeclarationExtension on VariableDeclaration {
168178
FieldElementImpl get declaredFieldElement {
169179
return declaredFragment!.element as FieldElementImpl;

pkg/linter/lib/src/rules/deprecated_member_use_from_same_package.dart

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import 'package:analyzer/error/error.dart';
1414
import 'package:analyzer/src/dart/element/extensions.dart'; // ignore: implementation_imports
1515
import 'package:analyzer/src/error/deprecated_member_use_verifier.dart' // ignore: implementation_imports
1616
show BaseDeprecatedMemberUseVerifier;
17+
import 'package:analyzer/src/utilities/extensions/ast.dart'; // ignore: implementation_imports
1718
import 'package:analyzer/workspace/workspace.dart';
1819

1920
import '../analyzer.dart';
@@ -132,7 +133,7 @@ class _RecursiveVisitor extends RecursiveAstVisitor<void> {
132133
if (library == null) {
133134
return;
134135
}
135-
_deprecatedVerifier.pushInDeprecatedValue(library.metadata.hasDeprecated);
136+
_deprecatedVerifier.pushInDeprecatedValue(library.isUseDeprecated);
136137

137138
super.visitCompilationUnit(node);
138139
}
@@ -192,7 +193,9 @@ class _RecursiveVisitor extends RecursiveAstVisitor<void> {
192193

193194
@override
194195
void visitFieldDeclaration(FieldDeclaration node) {
195-
_deprecatedVerifier.pushInDeprecatedMetadata(node.metadata);
196+
_deprecatedVerifier.pushInDeprecatedValue(
197+
node.firstVariableElement.isUseDeprecated,
198+
);
196199

197200
try {
198201
super.visitFieldDeclaration(node);
@@ -320,7 +323,9 @@ class _RecursiveVisitor extends RecursiveAstVisitor<void> {
320323

321324
@override
322325
void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
323-
_deprecatedVerifier.pushInDeprecatedMetadata(node.metadata);
326+
_deprecatedVerifier.pushInDeprecatedValue(
327+
node.firstVariableElement.isUseDeprecated,
328+
);
324329

325330
try {
326331
super.visitTopLevelVariableDeclaration(node);

0 commit comments

Comments
 (0)