ignore unnec. getter/setter if deprecated (#2027)
diff --git a/lib/src/ast.dart b/lib/src/ast.dart
index 76e065b..ef0fbfc 100644
--- a/lib/src/ast.dart
+++ b/lib/src/ast.dart
@@ -87,6 +87,10 @@
return false;
}
+/// Returns `true` if the given [declaration] is annotated `@deprecated`.
+bool isDeprecated(Declaration declaration) =>
+ declaration.declaredElement.hasDeprecated;
+
/// Returns `true` if this element is the `==` method declaration.
bool isEquals(ClassMember element) =>
element is MethodDeclaration && element.name?.name == '==';
@@ -329,6 +333,7 @@
/// A [GeneralizingElementVisitor] adapter for [ElementProcessor].
class _ElementVisitorAdapter extends GeneralizingElementVisitor {
final ElementProcessor processor;
+
_ElementVisitorAdapter(this.processor);
@override
diff --git a/lib/src/rules/unnecessary_getters_setters.dart b/lib/src/rules/unnecessary_getters_setters.dart
index 16bd3fe..fee09cc 100644
--- a/lib/src/rules/unnecessary_getters_setters.dart
+++ b/lib/src/rules/unnecessary_getters_setters.dart
@@ -97,7 +97,9 @@
if (isSimpleSetter(setter) &&
isSimpleGetter(getter) &&
!isProtected(getter) &&
- !isProtected(setter)) {
+ !isProtected(setter) &&
+ !isDeprecated(getter) &&
+ !isDeprecated(setter)) {
rule..reportLint(getter.name)..reportLint(setter.name);
}
}
diff --git a/test/rules/unnecessary_getters_setters.dart b/test/rules/unnecessary_getters_setters.dart
index ede8381..4f408f9 100644
--- a/test/rules/unnecessary_getters_setters.dart
+++ b/test/rules/unnecessary_getters_setters.dart
@@ -51,8 +51,16 @@
var _contents;
@protected
get contents => _contents; //OK (protected)
- set contents(value)
- {
+ set contents(value) {
+ _contents = value;
+ }
+}
+
+class Box6 {
+ var _contents;
+ @Deprecated('blah')
+ get contents => _contents; //OK (deprecated)
+ set contents(value) {
_contents = value;
}
}