meta: Use TargetKind.overridableMember on MustBeOverridden
Change-Id: I6f19eeac5efac2c56eabecd32bc6e2032d1ba764
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/369526
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/analyzer/lib/src/error/annotation_verifier.dart b/pkg/analyzer/lib/src/error/annotation_verifier.dart
index a981e52..a541203 100644
--- a/pkg/analyzer/lib/src/error/annotation_verifier.dart
+++ b/pkg/analyzer/lib/src/error/annotation_verifier.dart
@@ -44,8 +44,6 @@
_checkInternal(node);
} else if (element.isLiteral) {
_checkLiteral(node);
- } else if (element.isMustBeOverridden) {
- _checkMustBeOverridden(node);
} else if (element.isNonVirtual) {
_checkNonVirtual(node);
} else if (element.isReopen) {
@@ -204,23 +202,6 @@
}
}
- /// Reports a warning [node] if its parent is not a valid target for a
- /// `@mustBeOverridden` annotation.
- void _checkMustBeOverridden(Annotation node) {
- var parent = node.parent;
- if ((parent is MethodDeclaration && parent.isStatic) ||
- (parent is FieldDeclaration && parent.isStatic) ||
- parent.parent is ExtensionDeclaration ||
- parent.parent is ExtensionTypeDeclaration ||
- parent.parent is EnumDeclaration) {
- _errorReporter.atNode(
- node.name,
- WarningCode.INVALID_ANNOTATION_TARGET,
- arguments: [node.name.name, 'instance members of classes and mixins'],
- );
- }
- }
-
/// Reports a warning at [node] if its parent is not a valid target for a
/// `@nonVirtual` annotation.
void _checkNonVirtual(Annotation node) {
diff --git a/pkg/analyzer/lib/src/test_utilities/mock_packages.dart b/pkg/analyzer/lib/src/test_utilities/mock_packages.dart
index 559bcdb..955290b 100644
--- a/pkg/analyzer/lib/src/test_utilities/mock_packages.dart
+++ b/pkg/analyzer/lib/src/test_utilities/mock_packages.dart
@@ -256,10 +256,7 @@
}
@Target({
- TargetKind.field,
- TargetKind.getter,
- TargetKind.method,
- TargetKind.setter,
+ TargetKind.overridableMember,
})
class _MustBeOverridden {
const _MustBeOverridden();
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_annotation_target_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_annotation_target_test.dart
index 707ce22..86d418c 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_annotation_target_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_annotation_target_test.dart
@@ -157,19 +157,6 @@
]);
}
- test_extensionType_instance_method() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-
-extension type E(int i) {
- @mustBeOverridden
- void m() { }
-}
-''', [
- error(WarningCode.INVALID_ANNOTATION_TARGET, 63, 16),
- ]);
- }
-
test_mixin_instance_method() async {
await assertNoErrorsInCode(r'''
import 'package:meta/meta.dart';
diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/meta/lib/meta.dart b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/meta/lib/meta.dart
index 62609e9..08f66ba 100644
--- a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/meta/lib/meta.dart
+++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/meta/lib/meta.dart
@@ -677,10 +677,7 @@
}
@Target({
- TargetKind.field,
- TargetKind.getter,
- TargetKind.method,
- TargetKind.setter,
+ TargetKind.overridableMember,
})
class _MustBeOverridden {
const _MustBeOverridden();
diff --git a/pkg/meta/CHANGELOG.md b/pkg/meta/CHANGELOG.md
index b6c0881..d498f3c 100644
--- a/pkg/meta/CHANGELOG.md
+++ b/pkg/meta/CHANGELOG.md
@@ -3,9 +3,9 @@
- Require that `@Immutable` is only used on classes, extensions, and mixins.
Previously, this behavior was custom-wired into the Dart analyzer, but now it
is specified with TargetKinds.
-- Require that `@mustCallSuper` is only used on overridable members. Previously,
- this behavior was custom-wired into the Dart analyzer, but now it is
- specified with TargetKinds.
+- Require that `@mustBeOverridden` and `@mustCallSuper` are only used on
+ overridable members. Previously, this behavior was custom-wired into the Dart
+ analyzer, but now it is specified with TargetKinds.
## 1.15.0
diff --git a/pkg/meta/lib/meta.dart b/pkg/meta/lib/meta.dart
index 6884c98..32daea2 100644
--- a/pkg/meta/lib/meta.dart
+++ b/pkg/meta/lib/meta.dart
@@ -708,10 +708,7 @@
}
@Target({
- TargetKind.field,
- TargetKind.getter,
- TargetKind.method,
- TargetKind.setter,
+ TargetKind.overridableMember,
})
class _MustBeOverridden {
const _MustBeOverridden();