summaryrefslogtreecommitdiff
path: root/pyflakes
diff options
context:
space:
mode:
Diffstat (limited to 'pyflakes')
-rw-r--r--pyflakes/checker.py2
-rw-r--r--pyflakes/test/test_other.py9
-rw-r--r--pyflakes/test/test_type_annotations.py15
3 files changed, 25 insertions, 1 deletions
diff --git a/pyflakes/checker.py b/pyflakes/checker.py
index 0c3f66e..c89bba9 100644
--- a/pyflakes/checker.py
+++ b/pyflakes/checker.py
@@ -2346,7 +2346,7 @@ class Checker(object):
# Process the other nodes: "except:", "else:", "finally:"
self.handleChildren(node, omit='body')
- TRYEXCEPT = TRY
+ TRYEXCEPT = TRYSTAR = TRY
def EXCEPTHANDLER(self, node):
if PY2 or node.name is None:
diff --git a/pyflakes/test/test_other.py b/pyflakes/test/test_other.py
index efbc75d..97685ef 100644
--- a/pyflakes/test/test_other.py
+++ b/pyflakes/test/test_other.py
@@ -1668,6 +1668,15 @@ class TestUnusedAssignment(TestCase):
except Exception as e: pass
''', m.UnusedVariable)
+ @skipIf(version_info < (3, 11), 'new in Python 3.11')
+ def test_exception_unused_in_except_star(self):
+ self.flakes('''
+ try:
+ pass
+ except* OSError as e:
+ pass
+ ''', m.UnusedVariable)
+
def test_exceptionUnusedInExceptInFunction(self):
self.flakes('''
def download_review():
diff --git a/pyflakes/test/test_type_annotations.py b/pyflakes/test/test_type_annotations.py
index 3b6d5e7..1caecb4 100644
--- a/pyflakes/test/test_type_annotations.py
+++ b/pyflakes/test/test_type_annotations.py
@@ -801,3 +801,18 @@ class TestTypeAnnotations(TestCase):
class Y(NamedTuple):
y: NamedTuple("v", [("vv", int)])
""")
+
+ @skipIf(version_info < (3, 11), 'new in Python 3.11')
+ def test_variadic_generics(self):
+ self.flakes("""
+ from typing import Generic
+ from typing import TypeVarTuple
+
+ Ts = TypeVarTuple('Ts')
+
+ class Shape(Generic[*Ts]): pass
+
+ def f(*args: *Ts) -> None: ...
+
+ def g(x: Shape[*Ts]) -> Shape[*Ts]: ...
+ """)