You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The crash occurs regardless of the order in which you stack the @final and @overload decorator on the first overload. (PEP 591 specifies that for overloaded definitions in stubs, the @final decorator should be placed on the first overload, but doesn't specify which order they should be stacked in.)
Traceback
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\alexw\AppData\Local\Temp\tmp_p_nrkoa\Lib\site-packages\mypy\stubtest.py", line 1823, in <module>
sys.exit(main())
^^^^^^
File "C:\Users\alexw\AppData\Local\Temp\tmp_p_nrkoa\Lib\site-packages\mypy\stubtest.py", line 1819, in mainreturn test_stubs(parse_options(sys.argv[1:]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexw\AppData\Local\Temp\tmp_p_nrkoa\Lib\site-packages\mypy\stubtest.py", line 1692, in test_stubsfor error in test_module(module):
File "C:\Users\alexw\AppData\Local\Temp\tmp_p_nrkoa\Lib\site-packages\mypy\stubtest.py", line 218, in test_moduleyield from verify(stub, runtime, [module_name])
File "C:\Users\alexw\AppData\Local\Temp\tmp_p_nrkoa\Lib\site-packages\mypy\stubtest.py", line 396, in verify_mypyfileyield from verify(stub_entry, runtime_entry, object_path + [entry])
File "C:\Users\alexw\AppData\Local\Temp\tmp_p_nrkoa\Lib\site-packages\mypy\stubtest.py", line 517, in verify_typeinfoyield from verify(stub_to_verify, runtime_attr, object_path + [entry])
File "C:\Users\alexw\AppData\Local\Temp\tmp_p_nrkoa\Lib\site-packages\mypy\stubtest.py", line 1050, in verify_overloadedfuncdef
stub_sig = Signature.from_overloadedfuncdef(stub)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexw\AppData\Local\Temp\tmp_p_nrkoa\Lib\site-packages\mypy\stubtest.py", line 756, in from_overloadedfuncdefassert func isnotNone^^^^^^^^^^^^^^^^
AssertionError
To Reproduce
Two ways to reproduce:
(1) Apply this diff, and then run pytest mypy/test/teststubtest.py:
diff --git a/mypy/test/teststubtest.py b/mypy/test/teststubtest.py
index d39812b5f..b7f114b5e 100644
--- a/mypy/test/teststubtest.py+++ b/mypy/test/teststubtest.py@@ -1177,6 +1177,24 @@ class StubtestUnit(unittest.TestCase):
""",
error="C",
)
+ yield Case(+ stub="""+ from typing import overload+ from typing_extensions import final+ class D:+ @overload+ @final+ def foo(self, obj: int) -> str: ...+ @overload+ def foo(self, obj: str) -> int: ...+ """,+ runtime="""+ class D:+ def foo(self, obj):+ return 42 if isinstance(obj, str) else "foo"+ """,+ error=None+ )
(2) With a typeshed clone checked out, apply this diff, then run python tests/stubtest_stdlib.py:
…l` if they are decorated with `@final` at runtime (#14951)
This implements most of #14924. The only thing it _doesn't_ implement is
verification for overloaded methods decorated with `@final` -- I tried
working on that, but hit #14950.
Crash Report
If you run stubtest on a stub with a method like this, stubtest will crash:
The crash occurs regardless of the order in which you stack the
@final
and@overload
decorator on the first overload. (PEP 591 specifies that for overloaded definitions in stubs, the@final
decorator should be placed on the first overload, but doesn't specify which order they should be stacked in.)Traceback
To Reproduce
Two ways to reproduce:
(1) Apply this diff, and then run
pytest mypy/test/teststubtest.py
:(2) With a typeshed clone checked out, apply this diff, then run
python tests/stubtest_stdlib.py
:Your Environment
Reproduced with mypy 1.1.1 and mypy @ bfa9eac
The text was updated successfully, but these errors were encountered: