From 3716f843f25cb87109b51a9330f16fced7e89e2a Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Mon, 13 Oct 2025 08:19:04 +0200 Subject: [PATCH 1/2] Fix false-positive for bare-name-capture-pattern --- doc/whatsnew/fragments/10647.false_positive | 3 +++ pylint/checkers/match_statements_checker.py | 9 +++++++-- tests/functional/b/bare_name_capture_pattern.py | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 doc/whatsnew/fragments/10647.false_positive diff --git a/doc/whatsnew/fragments/10647.false_positive b/doc/whatsnew/fragments/10647.false_positive new file mode 100644 index 0000000000..7a6b8c81a1 --- /dev/null +++ b/doc/whatsnew/fragments/10647.false_positive @@ -0,0 +1,3 @@ +Fix false-positive for :ref:`bare-name-capture-pattern` if a case guard is used. + +Closes #10647 diff --git a/pylint/checkers/match_statements_checker.py b/pylint/checkers/match_statements_checker.py index 011fb3235a..c7f75708c6 100644 --- a/pylint/checkers/match_statements_checker.py +++ b/pylint/checkers/match_statements_checker.py @@ -105,8 +105,13 @@ def visit_match(self, node: nodes.Match) -> None: reached. """ for idx, case in enumerate(node.cases): - match case.pattern: - case nodes.MatchAs(pattern=None, name=nodes.AssignName(name=name)) if ( + match case: + case nodes.MatchCase( + pattern=nodes.MatchAs( + pattern=None, name=nodes.AssignName(name=name) + ), + guard=None, + ) if ( idx < len(node.cases) - 1 ): self.add_message( diff --git a/tests/functional/b/bare_name_capture_pattern.py b/tests/functional/b/bare_name_capture_pattern.py index 504e1ff5b2..989cbd1eed 100644 --- a/tests/functional/b/bare_name_capture_pattern.py +++ b/tests/functional/b/bare_name_capture_pattern.py @@ -11,6 +11,8 @@ pass case b: # [bare-name-capture-pattern] pass + case c if c == "Hello": + pass case "a" as some_name: pass case s: From 12414c33782b5a3a6a7954d2a6a50a318cd707e2 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Mon, 13 Oct 2025 08:43:18 +0200 Subject: [PATCH 2/2] Update news fragment Co-authored-by: Pierre Sassoulas --- doc/whatsnew/fragments/10647.false_positive | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/whatsnew/fragments/10647.false_positive b/doc/whatsnew/fragments/10647.false_positive index 7a6b8c81a1..97fb536a7c 100644 --- a/doc/whatsnew/fragments/10647.false_positive +++ b/doc/whatsnew/fragments/10647.false_positive @@ -1,3 +1,3 @@ -Fix false-positive for :ref:`bare-name-capture-pattern` if a case guard is used. +Fix false-positive for ``bare-name-capture-pattern`` if a case guard is used. Closes #10647