diff options
author | Anthony Sottile <asottile@umich.edu> | 2023-04-25 19:37:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-25 19:37:22 -0400 |
commit | f2671ffe1785754f0e73d148635cbb38e673e169 (patch) | |
tree | fb016eca14a15499437cf9e3785a8330066dca2f | |
parent | e19886e583637a7e2eec428cc036094b9630f2d0 (diff) | |
download | pyflakes-main.tar.gz |
-rw-r--r-- | pyflakes/checker.py | 4 | ||||
-rw-r--r-- | pyflakes/test/test_match.py | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/pyflakes/checker.py b/pyflakes/checker.py index e654afa..db4da49 100644 --- a/pyflakes/checker.py +++ b/pyflakes/checker.py @@ -29,8 +29,10 @@ parse_format_string = string.Formatter().parse def getAlternatives(n): if isinstance(n, ast.If): return [n.body] - if isinstance(n, ast.Try): + elif isinstance(n, ast.Try): return [n.body + n.orelse] + [[hdl] for hdl in n.handlers] + elif sys.version_info >= (3, 10) and isinstance(n, ast.Match): + return [mc.body for mc in n.cases] FOR_TYPES = (ast.For, ast.AsyncFor) diff --git a/pyflakes/test/test_match.py b/pyflakes/test/test_match.py index 89826e3..b237523 100644 --- a/pyflakes/test/test_match.py +++ b/pyflakes/test/test_match.py @@ -81,3 +81,14 @@ class TestMatch(TestCase): case {'foo': k1, **rest}: print(f'{k1=} {rest=}') ''') + + def test_defined_in_different_branches(self): + self.flakes(''' + def f(x): + match x: + case 1: + def y(): pass + case _: + def y(): print(1) + return y + ''') |