diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2022-11-03 18:56:23 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2022-11-03 18:56:55 -0400 |
commit | b34bd149f2fe86a38e7f8117f8604aa5fab3dedc (patch) | |
tree | dd1e4ce89007d66a906c70c27d496dd183a22dd4 /coverage/parser.py | |
parent | ea242122f2bdd315009b3d0f49541542dfa0da06 (diff) | |
download | python-coveragepy-git-b34bd149f2fe86a38e7f8117f8604aa5fab3dedc.tar.gz |
fix: properly measure strange use of wildcard alternatives in match/case. #1421
Diffstat (limited to 'coverage/parser.py')
-rw-r--r-- | coverage/parser.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/coverage/parser.py b/coverage/parser.py index 8b2a9ac5..c4fef9ce 100644 --- a/coverage/parser.py +++ b/coverage/parser.py @@ -1041,7 +1041,10 @@ class AstArcAnalyzer: had_wildcard = False for case in node.cases: case_start = self.line_for_node(case.pattern) - if isinstance(case.pattern, ast.MatchAs): + pattern = case.pattern + while isinstance(pattern, ast.MatchOr): + pattern = pattern.patterns[-1] + if isinstance(pattern, ast.MatchAs): had_wildcard = True self.add_arc(last_start, case_start, "the pattern on line {lineno} always matched") from_start = ArcStart(case_start, cause="the pattern on line {lineno} never matched") |