349e6266ff
Fixes: https://github.com/dart-lang/linter/issues/2368 Change-Id: I498e271dc32348115a34472b44688be8de2169a3 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/323901 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Phil Quitslund <pquitslund@google.com>
90 lines
1.7 KiB
Dart
90 lines
1.7 KiB
Dart
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
|
|
|
import '../rule_test_support.dart';
|
|
|
|
main() {
|
|
defineReflectiveSuite(() {
|
|
defineReflectiveTests(AvoidAnnotatingWithDynamicTest);
|
|
});
|
|
}
|
|
|
|
@reflectiveTest
|
|
class AvoidAnnotatingWithDynamicTest extends LintRuleTest {
|
|
@override
|
|
String get lintRule => 'avoid_annotating_with_dynamic';
|
|
|
|
// TODO(srawlins): Test parameter of function-typed typedef (both old and
|
|
// new style).
|
|
// Test parameter of function-typed parameter (`f(void g(dynamic x))`).
|
|
// Test parameter with a default value.
|
|
|
|
test_fieldFormals() async {
|
|
await assertDiagnostics(r'''
|
|
class A {
|
|
var a;
|
|
A(dynamic this.a);
|
|
}
|
|
''', [
|
|
lint(23, 14),
|
|
]);
|
|
}
|
|
|
|
test_implicitDynamic() async {
|
|
await assertNoDiagnostics(r'''
|
|
void f(p) {}
|
|
''');
|
|
}
|
|
|
|
test_optionalNamedParameter() async {
|
|
await assertDiagnostics(r'''
|
|
void f({dynamic p}) {}
|
|
''', [
|
|
lint(8, 9),
|
|
]);
|
|
}
|
|
|
|
test_optionalParameter() async {
|
|
await assertDiagnostics(r'''
|
|
void f([dynamic p]) {}
|
|
''', [
|
|
lint(8, 9),
|
|
]);
|
|
}
|
|
|
|
test_requiredParameter() async {
|
|
await assertDiagnostics(r'''
|
|
void f(dynamic p) {}
|
|
''', [
|
|
lint(7, 9),
|
|
]);
|
|
}
|
|
|
|
test_returnType() async {
|
|
await assertNoDiagnostics(r'''
|
|
dynamic f() {
|
|
return null;
|
|
}
|
|
''');
|
|
}
|
|
|
|
test_super() async {
|
|
await assertDiagnostics(r'''
|
|
class A {
|
|
var a;
|
|
var b;
|
|
A(this.a, this.b);
|
|
}
|
|
class B extends A {
|
|
B(dynamic super.a, dynamic super.b);
|
|
}
|
|
''', [
|
|
lint(75, 15),
|
|
lint(92, 15),
|
|
]);
|
|
}
|
|
}
|