From 9bbfa6ffd9371a3054f0964aff07309c92f31b6d Mon Sep 17 00:00:00 2001 From: Keerti Parthasarathy Date: Mon, 8 Jun 2026 15:13:54 -0700 Subject: [PATCH] [primary contructors] Fix use_declaring_parameters to ignore fields with doc comments. Closes https://github.com/dart-lang/sdk/issues/63518 Change-Id: I51fb1a07a758e3d94a212537bc5560e66c483982 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509181 Reviewed-by: Brian Wilkerson --- .../src/rules/use_declaring_parameters.dart | 2 ++ .../rules/use_declaring_parameters_test.dart | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/pkg/linter/lib/src/rules/use_declaring_parameters.dart b/pkg/linter/lib/src/rules/use_declaring_parameters.dart index 8192004ed85..a642c32e867 100644 --- a/pkg/linter/lib/src/rules/use_declaring_parameters.dart +++ b/pkg/linter/lib/src/rules/use_declaring_parameters.dart @@ -64,6 +64,7 @@ class _Visitor extends SimpleAstVisitor { var field = parameterElement.field; if (field != null && (parameterHasNoType || field.type == parameterElement.type)) { + if (field.documentationComment != null) return; rule.reportAtToken(parameter.name); } } @@ -87,6 +88,7 @@ class _Visitor extends SimpleAstVisitor { var parameterElement = parameter.declaredFragment?.element; if (parameterElement != null && assignedField.type == parameterElement.type) { + if (assignedField.documentationComment != null) return; rule.reportAtToken(name); } } diff --git a/pkg/linter/test/rules/use_declaring_parameters_test.dart b/pkg/linter/test/rules/use_declaring_parameters_test.dart index aee8f915801..54666901279 100644 --- a/pkg/linter/test/rules/use_declaring_parameters_test.dart +++ b/pkg/linter/test/rules/use_declaring_parameters_test.dart @@ -49,6 +49,17 @@ class C(int? i) { '''); } + test_field_withComment() async { + await assertNoDiagnostics(r''' +class C(int i) { + /// A comment. + final int i; + + this : i = i; +} +'''); + } + test_fieldFormalParameter_differentType() async { await assertNoDiagnostics(r''' class C(int this.i) { @@ -73,6 +84,15 @@ class C(int this.[!i!]) { '''); } + test_fieldFormalParameter_withComment() async { + await assertNoDiagnostics(r''' +class C(int this.i) { + /// A comment. + int i; +} +'''); + } + test_finalPrivateField_requiredPositional() async { await assertDiagnosticsFromMarkdown(r''' class C(int [!i!]) {