From 44a962d65263fe02aa835b390a47c33280caf44c Mon Sep 17 00:00:00 2001 From: pq Date: Thu, 29 Feb 2024 21:38:48 +0000 Subject: [PATCH] Don't report `avoid_positional_boolean_parameters` on augmentations Fixes: https://github.com/dart-lang/linter/issues/4899 Change-Id: Iad0fe208df7e355a3ce5015f55e0f39f63caf14e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/355262 Reviewed-by: Brian Wilkerson Commit-Queue: Phil Quitslund --- .../avoid_positional_boolean_parameters.dart | 9 ++++ ...id_positional_boolean_parameters_test.dart | 52 ++++++++++++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/pkg/linter/lib/src/rules/avoid_positional_boolean_parameters.dart b/pkg/linter/lib/src/rules/avoid_positional_boolean_parameters.dart index f26f19275b0..1e483444ff4 100644 --- a/pkg/linter/lib/src/rules/avoid_positional_boolean_parameters.dart +++ b/pkg/linter/lib/src/rules/avoid_positional_boolean_parameters.dart @@ -79,6 +79,9 @@ class _Visitor extends SimpleAstVisitor { @override void visitConstructorDeclaration(ConstructorDeclaration node) { + // Don't lint augmentations. + if (node.isAugmentation) return; + var declaredElement = node.declaredElement; if (declaredElement != null && !declaredElement.isPrivate) { checkParams(node.parameters.parameters); @@ -87,6 +90,9 @@ class _Visitor extends SimpleAstVisitor { @override void visitFunctionDeclaration(FunctionDeclaration node) { + // Don't lint augmentations. + if (node.isAugmentation) return; + var declaredElement = node.declaredElement; if (declaredElement != null && !declaredElement.isPrivate) { checkParams(node.functionExpression.parameters?.parameters); @@ -100,6 +106,9 @@ class _Visitor extends SimpleAstVisitor { @override void visitMethodDeclaration(MethodDeclaration node) { + // Don't lint augmentations. + if (node.isAugmentation) return; + var declaredElement = node.declaredElement; if (declaredElement != null && !node.isSetter && diff --git a/pkg/linter/test/rules/avoid_positional_boolean_parameters_test.dart b/pkg/linter/test/rules/avoid_positional_boolean_parameters_test.dart index c79db1fd72e..52d40636d2c 100644 --- a/pkg/linter/test/rules/avoid_positional_boolean_parameters_test.dart +++ b/pkg/linter/test/rules/avoid_positional_boolean_parameters_test.dart @@ -25,6 +25,56 @@ void f(List list) { '''); } + test_augmentationConstructor() async { + newFile('$testPackageLibPath/a.dart', r''' +import augment 'test.dart'; + +class A { + A(bool b); +} +'''); + + await assertNoDiagnostics(r''' +library augment 'a.dart'; + +augment class A { + augment A(bool b); +} +'''); + } + + test_augmentationFunction() async { + newFile('$testPackageLibPath/a.dart', r''' +import augment 'test.dart'; + +void f(bool b) { } +'''); + + await assertNoDiagnostics(r''' +library augment 'a.dart'; + +augment void f(bool b) { } +'''); + } + + test_augmentationMethod() async { + newFile('$testPackageLibPath/a.dart', r''' +import augment 'test.dart'; + +class A { + void f(bool b) { } +} +'''); + + await assertNoDiagnostics(r''' +library augment 'a.dart'; + +augment class A { + augment void f(bool b) { } +} +'''); + } + test_constructor_fieldFormalParameter_named() async { await assertNoDiagnostics(r''' class C { @@ -34,7 +84,7 @@ class C { '''); } - test_constructor_fieldFormalParameter_postional() async { + test_constructor_fieldFormalParameter_positional() async { await assertDiagnostics(r''' class C { bool p;