verify `prefer_asserts_in_initializer_lists` for extension types
As it happens, `prefer_asserts_in_initializer_lists` works out of the box for constructors in extension types. (Yay!) This just adds a few tests for coverage.
Fixes: https://github.com/dart-lang/linter/issues/4779
Change-Id: I1f5ffbbc968b37723b5e6894227c154563b2803c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/330031
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Kallen Tu <kallentu@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/linter/test/rules/prefer_asserts_in_initializer_lists_test.dart b/pkg/linter/test/rules/prefer_asserts_in_initializer_lists_test.dart
index 3ec25a4..935b2be 100644
--- a/pkg/linter/test/rules/prefer_asserts_in_initializer_lists_test.dart
+++ b/pkg/linter/test/rules/prefer_asserts_in_initializer_lists_test.dart
@@ -9,34 +9,10 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(PreferAssertsInInitializerListsTest);
- defineReflectiveTests(PreferAssertsInInitializerListsSuperTest);
});
}
@reflectiveTest
-class PreferAssertsInInitializerListsSuperTest extends LintRuleTest {
- @override
- String get lintRule => 'prefer_asserts_in_initializer_lists';
-
- test_super() async {
- await assertDiagnostics(r'''
-class A {
- final int a;
- A(this.a);
-}
-
-class B extends A {
- B(super.a) {
- assert(a != 0);
- }
-}
-''', [
- lint(80, 6),
- ]);
- }
-}
-
-@reflectiveTest
class PreferAssertsInInitializerListsTest extends LintRuleTest {
@override
String get lintRule => 'prefer_asserts_in_initializer_lists';
@@ -53,6 +29,26 @@
''');
}
+ test_extensionType() async {
+ await assertDiagnostics(r'''
+extension type E(int? i) {
+ E.e(this.i) {
+ assert(i != null);
+ }
+}
+''', [
+ lint(47, 6),
+ ]);
+ }
+
+ test_extensionType_initializer() async {
+ await assertNoDiagnostics(r'''
+extension type E(int? i) {
+ E.e(this.i) : assert(i != null);
+}
+''');
+ }
+
test_firstStatement() async {
await assertDiagnostics(r'''
class A {
@@ -92,4 +88,21 @@
error(CompileTimeErrorCode.NON_BOOL_EXPRESSION, 40, 50),
]);
}
+
+ test_super() async {
+ await assertDiagnostics(r'''
+class A {
+ final int a;
+ A(this.a);
+}
+
+class B extends A {
+ B(super.a) {
+ assert(a != 0);
+ }
+}
+''', [
+ lint(80, 6),
+ ]);
+ }
}