From b551690c56b3722e15ac1fb4fc9a7f73f1a40cd8 Mon Sep 17 00:00:00 2001 From: Sam Rawlins Date: Fri, 23 Aug 2024 20:49:01 +0000 Subject: [PATCH] Reapply "analyzer: separate unused_element_parameter from unused_element" Fixes #49025. Fixes #48401 This allows users to blanket ignore unused_element_parameter without ignoring unused_element. They are reported in distinct situations so it is valid to separate them. This reverts commit b888da751ed8f2174d2ef5bd50eacabb24979745. Change-Id: I8ea52fcdcb491c140c1283602d6911c939e78d50 Tested: trybots Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381882 Reviewed-by: Ben Konyi Commit-Queue: Samuel Rawlins Reviewed-by: Brian Wilkerson --- .../assist/convert_class_to_enum_test.dart | 2 +- pkg/analyzer/lib/src/error/codes.g.dart | 4 +-- pkg/analyzer/messages.yaml | 30 ++++++++++++------- pkg/analyzer/tool/diagnostics/diagnostics.md | 21 ++++++++++--- .../lib/src/elements/debugger.dart | 2 +- 5 files changed, 40 insertions(+), 19 deletions(-) diff --git a/pkg/analysis_server/test/src/services/correction/assist/convert_class_to_enum_test.dart b/pkg/analysis_server/test/src/services/correction/assist/convert_class_to_enum_test.dart index f98306f4b4a0..22f745419e5c 100644 --- a/pkg/analysis_server/test/src/services/correction/assist/convert_class_to_enum_test.dart +++ b/pkg/analysis_server/test/src/services/correction/assist/convert_class_to_enum_test.dart @@ -348,7 +348,7 @@ base class E { class _E { static const _E c = _E(); - // ignore: unused_element, recursive_constant_constructor + // ignore: unused_element_parameter, recursive_constant_constructor const _E({_E e = const _E()}); } '''); diff --git a/pkg/analyzer/lib/src/error/codes.g.dart b/pkg/analyzer/lib/src/error/codes.g.dart index 9fe34ca2b2db..11879b2b6f31 100644 --- a/pkg/analyzer/lib/src/error/codes.g.dart +++ b/pkg/analyzer/lib/src/error/codes.g.dart @@ -7612,11 +7612,9 @@ class WarningCode extends AnalyzerErrorCode { /// Parameters: /// 0: the name of the parameter that is declared but not used static const WarningCode UNUSED_ELEMENT_PARAMETER = WarningCode( - 'UNUSED_ELEMENT', + 'UNUSED_ELEMENT_PARAMETER', "A value for optional parameter '{0}' isn't ever given.", correctionMessage: "Try removing the unused parameter.", - hasPublishedDocs: true, - uniqueName: 'UNUSED_ELEMENT_PARAMETER', ); /// Parameters: diff --git a/pkg/analyzer/messages.yaml b/pkg/analyzer/messages.yaml index 24460a80be0c..21fbe64be7cf 100644 --- a/pkg/analyzer/messages.yaml +++ b/pkg/analyzer/messages.yaml @@ -27316,8 +27316,6 @@ WarningCode: kinds of declarations are analyzed: - Private top-level declarations and all of their members - Private members of public declarations - - Optional parameters of private functions for which a value is never - passed Not all references to an element will mark it as "used": - Assigning a value to a top-level variable (with a standard `=` @@ -27337,6 +27335,26 @@ WarningCode: class [!_C!] {} ``` + #### Common fixes + + If the declaration isn't needed, then remove it. + + If the declaration is intended to be used, then add the code to use it. + UNUSED_ELEMENT_PARAMETER: + problemMessage: "A value for optional parameter '{0}' isn't ever given." + correctionMessage: Try removing the unused parameter. + hasPublishedDocs: false + comment: |- + Parameters: + 0: the name of the parameter that is declared but not used + documentation: |- + #### Description + + The analyzer produces this diagnostic when a value is never passed for an + optional parameter declared within a private declaration. + + #### Example + Assuming that no code in the library passes a value for `y` in any invocation of `_m`, the following code produces this diagnostic: @@ -27361,14 +27379,6 @@ WarningCode: ``` If the declaration is intended to be used, then add the code to use it. - UNUSED_ELEMENT_PARAMETER: - sharedName: UNUSED_ELEMENT - problemMessage: "A value for optional parameter '{0}' isn't ever given." - correctionMessage: Try removing the unused parameter. - hasPublishedDocs: true - comment: |- - Parameters: - 0: the name of the parameter that is declared but not used UNUSED_FIELD: problemMessage: "The value of the field '{0}' isn't used." correctionMessage: Try removing the field, or using it. diff --git a/pkg/analyzer/tool/diagnostics/diagnostics.md b/pkg/analyzer/tool/diagnostics/diagnostics.md index 3eb37202778c..f503e312aecf 100644 --- a/pkg/analyzer/tool/diagnostics/diagnostics.md +++ b/pkg/analyzer/tool/diagnostics/diagnostics.md @@ -23187,8 +23187,6 @@ void f() { ### unused_element -_A value for optional parameter '{0}' isn't ever given._ - _The declaration '{0}' isn't referenced._ #### Description @@ -23198,8 +23196,6 @@ referenced in the library that contains the declaration. The following kinds of declarations are analyzed: - Private top-level declarations and all of their members - Private members of public declarations -- Optional parameters of private functions for which a value is never - passed Not all references to an element will mark it as "used": - Assigning a value to a top-level variable (with a standard `=` @@ -23219,6 +23215,23 @@ produces this diagnostic: class [!_C!] {} ``` +#### Common fixes + +If the declaration isn't needed, then remove it. + +If the declaration is intended to be used, then add the code to use it. + +### unused_element_parameter + +_A value for optional parameter '{0}' isn't ever given._ + +#### Description + +The analyzer produces this diagnostic when a value is never passed for an +optional parameter declared within a private declaration. + +#### Example + Assuming that no code in the library passes a value for `y` in any invocation of `_m`, the following code produces this diagnostic: diff --git a/runtime/observatory/lib/src/elements/debugger.dart b/runtime/observatory/lib/src/elements/debugger.dart index 05e84d70e038..1a60dcc55dd9 100644 --- a/runtime/observatory/lib/src/elements/debugger.dart +++ b/runtime/observatory/lib/src/elements/debugger.dart @@ -2942,7 +2942,7 @@ class DebuggerConsoleElement extends CustomElement implements Renderable { DebuggerConsoleElement.created() : super.created('debugger-console'); /// Is [container] scrolled to the within [threshold] pixels of the bottom? - // ignore: unused_element + // ignore: unused_element_parameter static bool _isScrolledToBottom(DivElement? container, [int threshold = 2]) { if (container == null) { return false;