asottile: (your example of what I _should_ use also is invalid, your first function has parameter 1 typed as both `str` and `None`)
jayvdb: Ah sorry about that `str`/`None`, I was melding the pep example with your test function names, and messed up.
asottile: @jayvdb what did you want me to change about the test? please clarify
jayvdb: The [PEP](https://www.python.org/dev/peps/pep-0484/#function-method-overloading) uses
```
from typing import overload

class bytes:
    ...
    @overload
    def __getitem__(self, i: int) -> int: ...
    @overload
    def __getitem__(self, s: slice) -> bytes: ...
```

It is because of the inputs and outputs that this is beneficial and can not be expressed using `typing.Union`.

I thought it would be useful to include that, but it isnt necessary.
asottile: > The [PEP](https://www.python.org/dev/peps/pep-0484/#function-method-overloading) uses
> 
> ```
> from typing import overload
> 
> class bytes:
>     ...
>     @overload
>     def __getitem__(self, i: int) -> int: ...
>     @overload
>     def __getitem__(self, s: slice) -> bytes: ...
> ```
> 
> It is because of the inputs and outputs that this is beneficial and can not be expressed using `typing.Union`.
> 
> I thought it would be useful to include that, but it isnt necessary.

The minimal example in the test also cannot be expressed via union:

```
None -> None
int -> int
```
diff --git a/pyflakes/checker.py b/pyflakes/checker.py
index f520325..ad25b5e 100644
--- a/pyflakes/checker.py
+++ b/pyflakes/checker.py
@@ -495,6 +495,28 @@ def getNodeName(node):
         return node.name
 
 
+def is_typing_overload(value, scope):
+    def is_typing_overload_decorator(node):
+        return (
+            (
+                isinstance(node, ast.Name) and
+                node.id in scope and
+                scope[node.id].fullName == 'typing.overload'
+            ) or (
+                isinstance(node, ast.Attribute) and
+                isinstance(node.value, ast.Name) and
+                node.value.id == 'typing' and
+                node.attr == 'overload'
+            )
+        )
+
+    return (
+        isinstance(value.source, ast.FunctionDef) and
+        len(value.source.decorator_list) == 1 and
+        is_typing_overload_decorator(value.source.decorator_list[0])
+    )
+
+
 class Checker(object):
     """
     I check the cleanliness and sanity of Python code.
@@ -747,8 +769,9 @@ class Checker(object):
                                 node, value.name, existing.source)
                 elif not existing.used and value.redefines(existing):
                     if value.name != '_' or isinstance(existing, Importation):
-                        self.report(messages.RedefinedWhileUnused,
-                                    node, value.name, existing.source)
+                        if not is_typing_overload(existing, self.scope):
+                            self.report(messages.RedefinedWhileUnused,
+                                        node, value.name, existing.source)
 
             elif isinstance(existing, Importation) and value.redefines(existing):
                 existing.redefined.append(node)

F811 (redefinition of unused variable) incorrectly triggered with @overload decorator
PEP 484 [introduced](https://www.python.org/dev/peps/pep-0484/#function-method-overloading) the `@overload` decorator for type annotations.

> [...] a series of `@overload`-decorated definitions must be followed by exactly one non-@overload-decorated definition (for the same function/method). The `@overload`-decorated definitions are for the benefit of the type checker only, since they will be overwritten by the non-`@overload`-decorated definition, while the latter is used at runtime but should be ignored by a type checker.

The following should pass PyFlakes without errors, but currently triggers F811 errors:

```python
from typing import overload


@overload
def utf8(value: None) -> None:
    pass


@overload
def utf8(value: bytes) -> bytes:
    pass


@overload
def utf8(value: str) -> bytes:
    pass


def utf8(value):
    pass  # actual implementation
```
```
test.py:9:1: F811 redefinition of unused 'utf8' from line 4
test.py:14:1: F811 redefinition of unused 'utf8' from line 9
test.py:19:1: F811 redefinition of unused 'utf8' from line 14
```
diff --git a/pyflakes/test/test_doctests.py b/pyflakes/test/test_doctests.py
index aed7957..b6d0f65 100644
--- a/pyflakes/test/test_doctests.py
+++ b/pyflakes/test/test_doctests.py
@@ -33,7 +33,8 @@ class _DoctestMixin(object):
                   line.startswith('except ') or
                   line.startswith('finally:') or
                   line.startswith('else:') or
-                  line.startswith('elif ')):
+                  line.startswith('elif ') or
+                  (lines and lines[-1].startswith(('>>> @', '... @')))):
                 line = "... %s" % line
             else:
                 line = ">>> %s" % line
diff --git a/pyflakes/test/test_other.py b/pyflakes/test/test_other.py
index e5da024..b8301ea 100644
--- a/pyflakes/test/test_other.py
+++ b/pyflakes/test/test_other.py
@@ -291,6 +291,35 @@ class Test(TestCase):
                 pass
         """)
 
+    def test_typingOverload(self):
+        """Allow intentional redefinitions via @typing.overload"""
+        self.flakes("""
+        import typing
+        from typing import overload
+
+        @overload
+        def f(s):  # type: (None) -> None
+            pass
+
+        @overload
+        def f(s):  # type: (int) -> int
+            pass
+
+        def f(s):
+            return s
+
+        @typing.overload
+        def g(s):  # type: (None) -> None
+            pass
+
+        @typing.overload
+        def g(s):  # type: (int) -> int
+            pass
+
+        def g(s):
+            return s
+        """)
+
     def test_unaryPlus(self):
         """Don't die on unary +."""
         self.flakes('+1')

pip install -e .
parse_log_pytest
pytest
flake8==2.1.0 pep8==1.5.6 pytest
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///opt/conda/conda-bld/attrs_1642510447205/work
certifi==2021.5.30
flake8==2.1.0
importlib-metadata @ file:///tmp/build/80754af9/importlib-metadata_1631916693255/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
mccabe==0.7.0
more-itertools @ file:///tmp/build/80754af9/more-itertools_1637733554872/work
packaging @ file:///tmp/build/80754af9/packaging_1637314298585/work
pep8==1.5.6
pluggy @ file:///tmp/build/80754af9/pluggy_1615976315926/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
-e git+https://github.com/PyCQA/pyflakes.git@60c3b35769984534e2ad03d76637357818fe0112#egg=pyflakes
pyparsing @ file:///tmp/build/80754af9/pyparsing_1635766073266/work
pytest==6.2.4
toml @ file:///tmp/build/80754af9/toml_1616166611790/work
typing_extensions @ file:///opt/conda/conda-bld/typing_extensions_1647553014482/work
zipp @ file:///tmp/build/80754af9/zipp_1633618647012/work

name: pyflakes
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=21.4.0=pyhd3eb1b0_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - importlib-metadata=4.8.1=py36h06a4308_0
  - importlib_metadata=4.8.1=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - more-itertools=8.12.0=pyhd3eb1b0_0
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=21.3=pyhd3eb1b0_0
  - pip=21.2.2=py36h06a4308_0
  - pluggy=0.13.1=py36h06a4308_0
  - py=1.11.0=pyhd3eb1b0_0
  - pyparsing=3.0.4=pyhd3eb1b0_0
  - pytest=6.2.4=py36h06a4308_2
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - toml=0.10.2=pyhd3eb1b0_0
  - typing_extensions=4.1.1=pyh06a4308_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.6.0=pyhd3eb1b0_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - flake8==2.1.0
      - mccabe==0.7.0
      - pep8==1.5.6
prefix: /opt/conda/envs/pyflakes

pyflakes/test/test_doctests.py::TestOther::test_typingOverload pyflakes/test/test_other.py::Test::test_typingOverload
pyflakes/test/test_doctests.py::Test::test_doctestCanReferToClass pyflakes/test/test_doctests.py::Test::test_doctestCanReferToFunction pyflakes/test/test_doctests.py::Test::test_global_module_scope_pollution pyflakes/test/test_doctests.py::Test::test_global_undefined pyflakes/test/test_doctests.py::Test::test_ignore_nested_function pyflakes/test/test_doctests.py::Test::test_importBeforeDoctest pyflakes/test/test_doctests.py::Test::test_importInDoctestAndAfter pyflakes/test/test_doctests.py::Test::test_inaccessible_scope_class pyflakes/test/test_doctests.py::Test::test_indentationErrorInDoctest pyflakes/test/test_doctests.py::Test::test_nested_class pyflakes/test/test_doctests.py::Test::test_nested_doctest_ignored pyflakes/test/test_doctests.py::Test::test_noOffsetSyntaxErrorInDoctest pyflakes/test/test_doctests.py::Test::test_offsetAfterDoctests pyflakes/test/test_doctests.py::Test::test_offsetInDoctests pyflakes/test/test_doctests.py::Test::test_offsetInLambdasInDoctests pyflakes/test/test_doctests.py::Test::test_offsetWithMultiLineArgs pyflakes/test/test_doctests.py::Test::test_scope_class pyflakes/test/test_doctests.py::Test::test_singleUnderscoreInDoctest pyflakes/test/test_doctests.py::Test::test_syntaxErrorInDoctest pyflakes/test/test_doctests.py::TestOther::test_attrAugmentedAssignment pyflakes/test/test_doctests.py::TestOther::test_breakInsideLoop pyflakes/test/test_doctests.py::TestOther::test_breakOutsideLoop pyflakes/test/test_doctests.py::TestOther::test_classFunctionDecorator pyflakes/test/test_doctests.py::TestOther::test_classNameDefinedPreviously pyflakes/test/test_doctests.py::TestOther::test_classNameUndefinedInClassBody pyflakes/test/test_doctests.py::TestOther::test_classRedefinedAsFunction pyflakes/test/test_doctests.py::TestOther::test_classRedefinition pyflakes/test/test_doctests.py::TestOther::test_classWithReturn pyflakes/test/test_doctests.py::TestOther::test_classWithYield pyflakes/test/test_doctests.py::TestOther::test_classWithYieldFrom pyflakes/test/test_doctests.py::TestOther::test_comparison pyflakes/test/test_doctests.py::TestOther::test_containment pyflakes/test/test_doctests.py::TestOther::test_continueInFinally pyflakes/test/test_doctests.py::TestOther::test_continueInsideLoop pyflakes/test/test_doctests.py::TestOther::test_continueOutsideLoop pyflakes/test/test_doctests.py::TestOther::test_defaultExceptLast pyflakes/test/test_doctests.py::TestOther::test_defaultExceptNotLast pyflakes/test/test_doctests.py::TestOther::test_doubleAssignmentConditionally pyflakes/test/test_doctests.py::TestOther::test_doubleAssignmentWithUse pyflakes/test/test_doctests.py::TestOther::test_duplicateArgs pyflakes/test/test_doctests.py::TestOther::test_ellipsis pyflakes/test/test_doctests.py::TestOther::test_extendedSlice pyflakes/test/test_doctests.py::TestOther::test_functionDecorator pyflakes/test/test_doctests.py::TestOther::test_functionRedefinedAsClass pyflakes/test/test_doctests.py::TestOther::test_function_arguments pyflakes/test/test_doctests.py::TestOther::test_function_arguments_python3 pyflakes/test/test_doctests.py::TestOther::test_globalDeclaredInDifferentScope pyflakes/test/test_doctests.py::TestOther::test_identity pyflakes/test/test_doctests.py::TestOther::test_localReferencedBeforeAssignment pyflakes/test/test_doctests.py::TestOther::test_loopControl pyflakes/test/test_doctests.py::TestOther::test_modernProperty pyflakes/test/test_doctests.py::TestOther::test_moduleWithReturn pyflakes/test/test_doctests.py::TestOther::test_moduleWithYield pyflakes/test/test_doctests.py::TestOther::test_moduleWithYieldFrom pyflakes/test/test_doctests.py::TestOther::test_redefinedClassFunction pyflakes/test/test_doctests.py::TestOther::test_redefinedFunction pyflakes/test/test_doctests.py::TestOther::test_redefinedIfElseFunction pyflakes/test/test_doctests.py::TestOther::test_redefinedIfElseInListComp pyflakes/test/test_doctests.py::TestOther::test_redefinedIfFunction pyflakes/test/test_doctests.py::TestOther::test_redefinedInDictComprehension pyflakes/test/test_doctests.py::TestOther::test_redefinedInGenerator pyflakes/test/test_doctests.py::TestOther::test_redefinedInSetComprehension pyflakes/test/test_doctests.py::TestOther::test_redefinedTryExceptFunction pyflakes/test/test_doctests.py::TestOther::test_redefinedTryFunction pyflakes/test/test_doctests.py::TestOther::test_redefinedUnderscoreFunction pyflakes/test/test_doctests.py::TestOther::test_redefinedUnderscoreImportation pyflakes/test/test_doctests.py::TestOther::test_starredAssignmentErrors pyflakes/test/test_doctests.py::TestOther::test_starredAssignmentNoError pyflakes/test/test_doctests.py::TestOther::test_unaryPlus pyflakes/test/test_doctests.py::TestOther::test_undefinedBaseClass pyflakes/test/test_doctests.py::TestOther::test_varAugmentedAssignment pyflakes/test/test_doctests.py::TestImports::test_aliasedImport pyflakes/test/test_doctests.py::TestImports::test_aliasedImportShadowModule pyflakes/test/test_doctests.py::TestImports::test_assignRHSFirst pyflakes/test/test_doctests.py::TestImports::test_assignedToGlobal pyflakes/test/test_doctests.py::TestImports::test_differentSubmoduleImport pyflakes/test/test_doctests.py::TestImports::test_duplicateSubmoduleImport pyflakes/test/test_doctests.py::TestImports::test_functionNamesAreBoundNow pyflakes/test/test_doctests.py::TestImports::test_functionsRunLater pyflakes/test/test_doctests.py::TestImports::test_futureImport pyflakes/test/test_doctests.py::TestImports::test_futureImportFirst pyflakes/test/test_doctests.py::TestImports::test_futureImportStar pyflakes/test/test_doctests.py::TestImports::test_futureImportUndefined pyflakes/test/test_doctests.py::TestImports::test_futureImportUsed pyflakes/test/test_doctests.py::TestImports::test_ignoreNonImportRedefinitions pyflakes/test/test_doctests.py::TestImports::test_importInClass pyflakes/test/test_doctests.py::TestImports::test_importStar pyflakes/test/test_doctests.py::TestImports::test_importStar_relative pyflakes/test/test_doctests.py::TestImports::test_importUsedInMethodDefinition pyflakes/test/test_doctests.py::TestImports::test_importedInClass pyflakes/test/test_doctests.py::TestImports::test_localImportStar pyflakes/test/test_doctests.py::TestImports::test_methodsDontUseClassScope pyflakes/test/test_doctests.py::TestImports::test_nestedClassAndFunctionScope pyflakes/test/test_doctests.py::TestImports::test_nestedFunctionsNestScope pyflakes/test/test_doctests.py::TestImports::test_newAssignment pyflakes/test/test_doctests.py::TestImports::test_nonGlobalDoesNotRedefine pyflakes/test/test_doctests.py::TestImports::test_notUsedInNestedScope pyflakes/test/test_doctests.py::TestImports::test_packageImport pyflakes/test/test_doctests.py::TestImports::test_redefinedButUsedLater pyflakes/test/test_doctests.py::TestImports::test_redefinedByClass pyflakes/test/test_doctests.py::TestImports::test_redefinedByExcept pyflakes/test/test_doctests.py::TestImports::test_redefinedByFor pyflakes/test/test_doctests.py::TestImports::test_redefinedByFunction pyflakes/test/test_doctests.py::TestImports::test_redefinedBySubclass pyflakes/test/test_doctests.py::TestImports::test_redefinedIf pyflakes/test/test_doctests.py::TestImports::test_redefinedIfElse pyflakes/test/test_doctests.py::TestImports::test_redefinedInClass pyflakes/test/test_doctests.py::TestImports::test_redefinedInNestedFunction pyflakes/test/test_doctests.py::TestImports::test_redefinedInNestedFunctionTwice pyflakes/test/test_doctests.py::TestImports::test_redefinedTry pyflakes/test/test_doctests.py::TestImports::test_redefinedTryElse pyflakes/test/test_doctests.py::TestImports::test_redefinedTryExcept pyflakes/test/test_doctests.py::TestImports::test_redefinedTryExceptElse pyflakes/test/test_doctests.py::TestImports::test_redefinedTryExceptElseFinally pyflakes/test/test_doctests.py::TestImports::test_redefinedTryExceptFinally pyflakes/test/test_doctests.py::TestImports::test_redefinedTryExceptMulti pyflakes/test/test_doctests.py::TestImports::test_redefinedTryNested pyflakes/test/test_doctests.py::TestImports::test_redefinedWhileUnused pyflakes/test/test_doctests.py::TestImports::test_shadowedByFor pyflakes/test/test_doctests.py::TestImports::test_shadowedByForDeep pyflakes/test/test_doctests.py::TestImports::test_shadowedByLambda pyflakes/test/test_doctests.py::TestImports::test_shadowedByParameter pyflakes/test/test_doctests.py::TestImports::test_tryingMultipleImports pyflakes/test/test_doctests.py::TestImports::test_unusedImport pyflakes/test/test_doctests.py::TestImports::test_unusedImport_relative pyflakes/test/test_doctests.py::TestImports::test_unusedInNestedScope pyflakes/test/test_doctests.py::TestImports::test_unusedPackageImport pyflakes/test/test_doctests.py::TestImports::test_unused_package_with_submodule_import pyflakes/test/test_doctests.py::TestImports::test_usedAndGlobal pyflakes/test/test_doctests.py::TestImports::test_usedImport pyflakes/test/test_doctests.py::TestImports::test_usedImport_relative pyflakes/test/test_doctests.py::TestImports::test_usedInAssert pyflakes/test/test_doctests.py::TestImports::test_usedInAssignment pyflakes/test/test_doctests.py::TestImports::test_usedInAttributeAssign pyflakes/test/test_doctests.py::TestImports::test_usedInCall pyflakes/test/test_doctests.py::TestImports::test_usedInClass pyflakes/test/test_doctests.py::TestImports::test_usedInClassBase pyflakes/test/test_doctests.py::TestImports::test_usedInDict pyflakes/test/test_doctests.py::TestImports::test_usedInElifConditional pyflakes/test/test_doctests.py::TestImports::test_usedInElse pyflakes/test/test_doctests.py::TestImports::test_usedInExcept pyflakes/test/test_doctests.py::TestImports::test_usedInExec pyflakes/test/test_doctests.py::TestImports::test_usedInFor pyflakes/test/test_doctests.py::TestImports::test_usedInForElse pyflakes/test/test_doctests.py::TestImports::test_usedInFunction pyflakes/test/test_doctests.py::TestImports::test_usedInGetattr pyflakes/test/test_doctests.py::TestImports::test_usedInGlobal pyflakes/test/test_doctests.py::TestImports::test_usedInIfBody pyflakes/test/test_doctests.py::TestImports::test_usedInIfConditional pyflakes/test/test_doctests.py::TestImports::test_usedInKeywordArg pyflakes/test/test_doctests.py::TestImports::test_usedInLambda pyflakes/test/test_doctests.py::TestImports::test_usedInList pyflakes/test/test_doctests.py::TestImports::test_usedInListComp pyflakes/test/test_doctests.py::TestImports::test_usedInLogic pyflakes/test/test_doctests.py::TestImports::test_usedInOperators pyflakes/test/test_doctests.py::TestImports::test_usedInParameterDefault pyflakes/test/test_doctests.py::TestImports::test_usedInRaise pyflakes/test/test_doctests.py::TestImports::test_usedInReturn pyflakes/test/test_doctests.py::TestImports::test_usedInSlice pyflakes/test/test_doctests.py::TestImports::test_usedInSliceObj pyflakes/test/test_doctests.py::TestImports::test_usedInSubscript pyflakes/test/test_doctests.py::TestImports::test_usedInTry pyflakes/test/test_doctests.py::TestImports::test_usedInTryFinally pyflakes/test/test_doctests.py::TestImports::test_usedInTuple pyflakes/test/test_doctests.py::TestImports::test_usedInWhile pyflakes/test/test_doctests.py::TestImports::test_usedInYield pyflakes/test/test_doctests.py::TestImports::test_used_package_with_submodule_import pyflakes/test/test_doctests.py::TestUndefinedNames::test_annotationUndefined pyflakes/test/test_doctests.py::TestUndefinedNames::test_badNestedClass pyflakes/test/test_doctests.py::TestUndefinedNames::test_builtinWindowsError pyflakes/test/test_doctests.py::TestUndefinedNames::test_builtins pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedAsStarArgs pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedAsStarUnpack pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedByGlobal pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedByGlobalMultipleNames pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedFromLambdaInDictionaryComprehension pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedFromLambdaInGenerator pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedInClass pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedInClassNested pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedInGenExp pyflakes/test/test_doctests.py::TestUndefinedNames::test_definedInListComp pyflakes/test/test_doctests.py::TestUndefinedNames::test_del pyflakes/test/test_doctests.py::TestUndefinedNames::test_delConditional pyflakes/test/test_doctests.py::TestUndefinedNames::test_delConditionalNested pyflakes/test/test_doctests.py::TestUndefinedNames::test_delExceptionInExcept pyflakes/test/test_doctests.py::TestUndefinedNames::test_delGlobal pyflakes/test/test_doctests.py::TestUndefinedNames::test_delUndefined pyflakes/test/test_doctests.py::TestUndefinedNames::test_delWhile pyflakes/test/test_doctests.py::TestUndefinedNames::test_delWhileNested pyflakes/test/test_doctests.py::TestUndefinedNames::test_delWhileTestUsage pyflakes/test/test_doctests.py::TestUndefinedNames::test_doubleNestingReportsClosestName pyflakes/test/test_doctests.py::TestUndefinedNames::test_dunderClass pyflakes/test/test_doctests.py::TestUndefinedNames::test_functionsNeedGlobalScope pyflakes/test/test_doctests.py::TestUndefinedNames::test_globalFromNestedScope pyflakes/test/test_doctests.py::TestUndefinedNames::test_globalImportStar pyflakes/test/test_doctests.py::TestUndefinedNames::test_globalInGlobalScope pyflakes/test/test_doctests.py::TestUndefinedNames::test_global_reset_name_only pyflakes/test/test_doctests.py::TestUndefinedNames::test_intermediateClassScopeIgnored pyflakes/test/test_doctests.py::TestUndefinedNames::test_keywordOnlyArgs pyflakes/test/test_doctests.py::TestUndefinedNames::test_keywordOnlyArgsUndefined pyflakes/test/test_doctests.py::TestUndefinedNames::test_laterRedefinedGlobalFromNestedScope pyflakes/test/test_doctests.py::TestUndefinedNames::test_laterRedefinedGlobalFromNestedScope2 pyflakes/test/test_doctests.py::TestUndefinedNames::test_laterRedefinedGlobalFromNestedScope3 pyflakes/test/test_doctests.py::TestUndefinedNames::test_magicGlobalsBuiltins pyflakes/test/test_doctests.py::TestUndefinedNames::test_magicGlobalsFile pyflakes/test/test_doctests.py::TestUndefinedNames::test_magicGlobalsName pyflakes/test/test_doctests.py::TestUndefinedNames::test_magicGlobalsPath pyflakes/test/test_doctests.py::TestUndefinedNames::test_magicModuleInClassScope pyflakes/test/test_doctests.py::TestUndefinedNames::test_metaClassUndefined pyflakes/test/test_doctests.py::TestUndefinedNames::test_namesDeclaredInExceptBlocks pyflakes/test/test_doctests.py::TestUndefinedNames::test_nestedClass pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefined pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedAugmentedAssignment pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedExceptionName pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedExceptionNameObscuringGlobalVariableFalsePositive1 pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedExceptionNameObscuringGlobalVariableFalsePositive2 pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedExceptionNameObscuringLocalVariable2 pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedExceptionNameObscuringLocalVariableFalsePositive1 pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedExceptionNameObscuringLocalVariableFalsePositive2 pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedFromLambdaInComprehension pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedFromLambdaInDictionaryComprehension pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedInGenExpNested pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedInListComp pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedInLoop pyflakes/test/test_doctests.py::TestUndefinedNames::test_undefinedWithErrorHandler pyflakes/test/test_doctests.py::TestUndefinedNames::test_unusedAsStarUnpack pyflakes/test/test_doctests.py::TestUndefinedNames::test_usedAsStarUnpack pyflakes/test/test_other.py::Test::test_attrAugmentedAssignment pyflakes/test/test_other.py::Test::test_breakInsideLoop pyflakes/test/test_other.py::Test::test_breakOutsideLoop pyflakes/test/test_other.py::Test::test_classFunctionDecorator pyflakes/test/test_other.py::Test::test_classNameDefinedPreviously pyflakes/test/test_other.py::Test::test_classNameUndefinedInClassBody pyflakes/test/test_other.py::Test::test_classRedefinedAsFunction pyflakes/test/test_other.py::Test::test_classRedefinition pyflakes/test/test_other.py::Test::test_classWithReturn pyflakes/test/test_other.py::Test::test_classWithYield pyflakes/test/test_other.py::Test::test_classWithYieldFrom pyflakes/test/test_other.py::Test::test_comparison pyflakes/test/test_other.py::Test::test_containment pyflakes/test/test_other.py::Test::test_continueInFinally pyflakes/test/test_other.py::Test::test_continueInsideLoop pyflakes/test/test_other.py::Test::test_continueOutsideLoop pyflakes/test/test_other.py::Test::test_defaultExceptLast pyflakes/test/test_other.py::Test::test_defaultExceptNotLast pyflakes/test/test_other.py::Test::test_doubleAssignmentConditionally pyflakes/test/test_other.py::Test::test_doubleAssignmentWithUse pyflakes/test/test_other.py::Test::test_duplicateArgs pyflakes/test/test_other.py::Test::test_ellipsis pyflakes/test/test_other.py::Test::test_extendedSlice pyflakes/test/test_other.py::Test::test_functionDecorator pyflakes/test/test_other.py::Test::test_functionRedefinedAsClass pyflakes/test/test_other.py::Test::test_function_arguments pyflakes/test/test_other.py::Test::test_function_arguments_python3 pyflakes/test/test_other.py::Test::test_globalDeclaredInDifferentScope pyflakes/test/test_other.py::Test::test_identity pyflakes/test/test_other.py::Test::test_localReferencedBeforeAssignment pyflakes/test/test_other.py::Test::test_loopControl pyflakes/test/test_other.py::Test::test_modernProperty pyflakes/test/test_other.py::Test::test_moduleWithReturn pyflakes/test/test_other.py::Test::test_moduleWithYield pyflakes/test/test_other.py::Test::test_moduleWithYieldFrom pyflakes/test/test_other.py::Test::test_redefinedClassFunction pyflakes/test/test_other.py::Test::test_redefinedFunction pyflakes/test/test_other.py::Test::test_redefinedIfElseFunction pyflakes/test/test_other.py::Test::test_redefinedIfElseInListComp pyflakes/test/test_other.py::Test::test_redefinedIfFunction pyflakes/test/test_other.py::Test::test_redefinedInDictComprehension pyflakes/test/test_other.py::Test::test_redefinedInGenerator pyflakes/test/test_other.py::Test::test_redefinedInSetComprehension pyflakes/test/test_other.py::Test::test_redefinedTryExceptFunction pyflakes/test/test_other.py::Test::test_redefinedTryFunction pyflakes/test/test_other.py::Test::test_redefinedUnderscoreFunction pyflakes/test/test_other.py::Test::test_redefinedUnderscoreImportation pyflakes/test/test_other.py::Test::test_starredAssignmentErrors pyflakes/test/test_other.py::Test::test_starredAssignmentNoError pyflakes/test/test_other.py::Test::test_unaryPlus pyflakes/test/test_other.py::Test::test_undefinedBaseClass pyflakes/test/test_other.py::Test::test_varAugmentedAssignment pyflakes/test/test_other.py::TestUnusedAssignment::test_assert_static pyflakes/test/test_other.py::TestUnusedAssignment::test_assert_tuple pyflakes/test/test_other.py::TestUnusedAssignment::test_assert_tuple_empty pyflakes/test/test_other.py::TestUnusedAssignment::test_assert_with_message pyflakes/test/test_other.py::TestUnusedAssignment::test_assert_without_message pyflakes/test/test_other.py::TestUnusedAssignment::test_assignInForLoop pyflakes/test/test_other.py::TestUnusedAssignment::test_assignInListComprehension pyflakes/test/test_other.py::TestUnusedAssignment::test_assignToGlobal pyflakes/test/test_other.py::TestUnusedAssignment::test_assignToMember pyflakes/test/test_other.py::TestUnusedAssignment::test_assignToNonlocal pyflakes/test/test_other.py::TestUnusedAssignment::test_assignmentInsideLoop pyflakes/test/test_other.py::TestUnusedAssignment::test_augmentedAssignmentImportedFunctionCall pyflakes/test/test_other.py::TestUnusedAssignment::test_closedOver pyflakes/test/test_other.py::TestUnusedAssignment::test_dictComprehension pyflakes/test/test_other.py::TestUnusedAssignment::test_doubleClosedOver pyflakes/test/test_other.py::TestUnusedAssignment::test_exceptWithoutNameInFunction pyflakes/test/test_other.py::TestUnusedAssignment::test_exceptWithoutNameInFunctionTuple pyflakes/test/test_other.py::TestUnusedAssignment::test_exceptionUnusedInExcept pyflakes/test/test_other.py::TestUnusedAssignment::test_exceptionUnusedInExceptInFunction pyflakes/test/test_other.py::TestUnusedAssignment::test_exceptionUsedInExcept pyflakes/test/test_other.py::TestUnusedAssignment::test_f_string pyflakes/test/test_other.py::TestUnusedAssignment::test_generatorExpression pyflakes/test/test_other.py::TestUnusedAssignment::test_ifexp pyflakes/test/test_other.py::TestUnusedAssignment::test_listUnpacking pyflakes/test/test_other.py::TestUnusedAssignment::test_setComprehensionAndLiteral pyflakes/test/test_other.py::TestUnusedAssignment::test_tracebackhideSpecialVariable pyflakes/test/test_other.py::TestUnusedAssignment::test_tupleUnpacking pyflakes/test/test_other.py::TestUnusedAssignment::test_unusedUnderscoreVariable pyflakes/test/test_other.py::TestUnusedAssignment::test_unusedVariable pyflakes/test/test_other.py::TestUnusedAssignment::test_unusedVariableAsLocals pyflakes/test/test_other.py::TestUnusedAssignment::test_unusedVariableNoLocals pyflakes/test/test_other.py::TestUnusedAssignment::test_variableUsedInLoop pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementAttributeName pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementComplicatedTarget pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementListNames pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementNameDefinedInBody pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementNoNames pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementSingleName pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementSingleNameRedefined pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementSingleNameUndefined pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementSubscript pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementSubscriptUndefined pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementTupleNames pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementTupleNamesRedefined pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementTupleNamesUndefined pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementUndefinedInExpression pyflakes/test/test_other.py::TestUnusedAssignment::test_withStatementUndefinedInside pyflakes/test/test_other.py::TestUnusedAssignment::test_yieldFromUndefined pyflakes/test/test_other.py::TestAsyncStatements::test_asyncDef pyflakes/test/test_other.py::TestAsyncStatements::test_asyncDefAwait pyflakes/test/test_other.py::TestAsyncStatements::test_asyncDefUndefined pyflakes/test/test_other.py::TestAsyncStatements::test_asyncFor pyflakes/test/test_other.py::TestAsyncStatements::test_asyncForUnderscoreLoopVar pyflakes/test/test_other.py::TestAsyncStatements::test_asyncWith pyflakes/test/test_other.py::TestAsyncStatements::test_asyncWithItem pyflakes/test/test_other.py::TestAsyncStatements::test_continueInAsyncForFinally pyflakes/test/test_other.py::TestAsyncStatements::test_formatstring pyflakes/test/test_other.py::TestAsyncStatements::test_loopControlInAsyncFor pyflakes/test/test_other.py::TestAsyncStatements::test_loopControlInAsyncForElse pyflakes/test/test_other.py::TestAsyncStatements::test_matmul pyflakes/test/test_other.py::TestAsyncStatements::test_raise_notimplemented pyflakes/test/test_other.py::TestAsyncStatements::test_variable_annotations pyflakes/test/test_other.py::TestIncompatiblePrintOperator::test_invalid_print_when_imported_from_future pyflakes/test/test_other.py::TestIncompatiblePrintOperator::test_print_as_condition_test pyflakes/test/test_other.py::TestIncompatiblePrintOperator::test_print_function_assignment pyflakes/test/test_other.py::TestIncompatiblePrintOperator::test_print_in_lambda pyflakes/test/test_other.py::TestIncompatiblePrintOperator::test_print_returned_in_function pyflakes/test/test_other.py::TestIncompatiblePrintOperator::test_valid_print
pyflakes/checker.py
pyflakes/checker.py