diff --git a/pkg/linter/lib/src/rules/avoid_unused_constructor_parameters.dart b/pkg/linter/lib/src/rules/avoid_unused_constructor_parameters.dart index 99bed078d10b..73909b32619a 100644 --- a/pkg/linter/lib/src/rules/avoid_unused_constructor_parameters.dart +++ b/pkg/linter/lib/src/rules/avoid_unused_constructor_parameters.dart @@ -7,6 +7,7 @@ import 'package:analyzer/dart/ast/visitor.dart'; import 'package:analyzer/dart/element/element.dart'; import '../analyzer.dart'; +import '../extensions.dart'; import '../util/ascii_utils.dart'; const _desc = r'Avoid defining unused parameters in constructors.'; @@ -82,6 +83,7 @@ class _Visitor extends SimpleAstVisitor { @override void visitConstructorDeclaration(ConstructorDeclaration node) { + if (node.isAugmentation) return; if (node.redirectedConstructor != null) return; if (node.externalKeyword != null) return; diff --git a/pkg/linter/test/rules/avoid_unused_constructor_parameters_test.dart b/pkg/linter/test/rules/avoid_unused_constructor_parameters_test.dart index 3c21da3d3ae9..1d9e3d05f143 100644 --- a/pkg/linter/test/rules/avoid_unused_constructor_parameters_test.dart +++ b/pkg/linter/test/rules/avoid_unused_constructor_parameters_test.dart @@ -17,6 +17,42 @@ class AvoidUnusedConstructorParametersTest extends LintRuleTest { @override String get lintRule => 'avoid_unused_constructor_parameters'; + test_augmentationClass() async { + newFile('$testPackageLibPath/a.dart', r''' +import augment 'test.dart'; + +class A { } +'''); + + await assertDiagnostics(r''' +augment library 'a.dart'; + +augment class A { + A(int a); +} +''', [ + lint(49, 5), + ]); + } + + test_augmentedConstructor() async { + newFile('$testPackageLibPath/a.dart', r''' +import augment 'test.dart'; + +class A { + A(int a); +} +'''); + + await assertNoDiagnostics(r''' +augment library 'a.dart'; + +augment class A { + augment A.new(int a); +} +'''); + } + test_super() async { await assertNoDiagnostics(r''' class A {