Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mypy 1.7.0 crashes (segmentation fault) #16450

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jepler opened this issue Nov 10, 2023 · 9 comments · Fixed by #16453
Closed

mypy 1.7.0 crashes (segmentation fault) #16450

jepler opened this issue Nov 10, 2023 · 9 comments · Fixed by #16453
Labels

Comments

@jepler
Copy link

jepler commented Nov 10, 2023

Bug Report

mypy 1.7.0 exits with a segmentation fault analyzing code that passed under 1.6.1

To Reproduce

I do not have a minimized test case at this point.

git clone https://github.com/jepler/chap
cd chap
git checkout 03e0adfbb1731f77ad04f4ed8284db6a0b7799b6
make # Installs 1.7.0, and will segfault
venv/bin/pip install mypy==1.6.1 # downgrade mypy
make # when run with 1.6.1, succeeds

Expected Behavior

Success: no issues found in 19 source files

Actual Behavior

Segmentation fault. The cause seems to be unbounded recursion, as shown in this partial gdb backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5f72d21 in CPyDef_type_visitor___BoolTypeQuery___query_types ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
(gdb) where 100
#0  0x00007ffff5f72d21 in CPyDef_type_visitor___BoolTypeQuery___query_types ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#1  0x00007ffff6643083 in CPyDef_type_visitor___BoolTypeQuery___visit_instance__TypeVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#2  0x00007ffff608109f in CPyDef_types___Instance___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#3  0x00007ffff5f73110 in CPyDef_type_visitor___BoolTypeQuery___query_types ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#4  0x00007ffff6643083 in CPyDef_type_visitor___BoolTypeQuery___visit_instance__TypeVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#5  0x00007ffff608109f in CPyDef_types___Instance___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#6  0x00007ffff5f72ffe in CPyDef_type_visitor___BoolTypeQuery___query_types ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#7  0x00007ffff66420f4 in CPyDef_type_visitor___BoolTypeQuery___visit_param_spec ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#8  0x00007ffff6642246 in CPyDef_type_visitor___BoolTypeQuery___visit_param_spec__TypeVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#9  0x00007ffff6693ebf in CPyDef_types___ParamSpecType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#10 0x00007ffff5f72ffe in CPyDef_type_visitor___BoolTypeQuery___query_types ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#11 0x00007ffff5f72783 in CPyDef_type_visitor___BoolTypeQuery___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#12 0x00007ffff66432d6 in CPyDef_type_visitor___BoolTypeQuery___visit_callable_type__TypeVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#13 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#14 0x00007ffff5eee353 in CPyDef_types___has_recursive_types () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#15 0x00007ffff5ff0960 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#16 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#17 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#18 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#19 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#20 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#21 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#22 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#23 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#24 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#25 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#26 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#27 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#29 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#30 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#31 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#32 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#33 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#34 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#35 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#36 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#37 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#38 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#39 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#40 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#41 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#42 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#43 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#44 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#45 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#46 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#47 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#48 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#49 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#50 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#51 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#52 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#53 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#54 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#55 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#56 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#57 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#58 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#59 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#60 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#61 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#62 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#63 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#64 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#65 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#66 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#67 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#68 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#69 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#70 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#71 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#72 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#73 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#74 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#75 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#76 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#77 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#78 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#79 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#80 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#81 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#82 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#83 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#84 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#85 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#86 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#87 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#88 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#89 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#90 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#91 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#92 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#93 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#94 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#95 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#96 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#97 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#98 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#99 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
(More stack frames follow...)
(gdb) where -100
#28412 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28413 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28414 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28415 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28416 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28417 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28418 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28419 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28420 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28421 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28422 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28423 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28424 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28425 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28426 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28427 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28428 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28429 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28430 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28431 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28432 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28433 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28434 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28435 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28436 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28437 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28438 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28439 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28440 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28441 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28442 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28443 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28444 0x00007ffff600db09 in CPyDef_constraints___ConstraintBuilderVisitor___visit_callable_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28445 0x00007ffff5f78d4f in CPyDef_types___CallableType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28446 0x00007ffff5ff1d4b in CPyDef_constraints____infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28447 0x00007ffff5ff09b9 in CPyDef_constraints___infer_constraints ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28448 0x00007ffff5eee9ab in CPyDef_infer___infer_type_arguments () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28449 0x00007ffff5dc99bb in CPyDef_typeops___bind_self () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28450 0x00007ffff65b9d8c in CPyDef_subtypes___find_node_type () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28451 0x00007ffff5def5d9 in CPyDef_subtypes___find_member () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28452 0x00007ffff65a0f06 in CPyDef_subtypes___SubtypeVisitor___visit_instance ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28453 0x00007ffff65a6e46 in CPyDef_subtypes___SubtypeVisitor___visit_instance__TypeVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28454 0x00007ffff608109f in CPyDef_types___Instance___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28455 0x00007ffff659b49c in CPyDef_subtypes____is_subtype () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28456 0x00007ffff5cdc243 in CPyDef_subtypes___is_subtype () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28457 0x00007ffff659f49c in CPyDef_subtypes___SubtypeVisitor____is_subtype ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28458 0x00007ffff65b71e8 in CPyDef_subtypes___SubtypeVisitor___visit_type_type ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28459 0x00007ffff65b7bd6 in CPyDef_subtypes___SubtypeVisitor___visit_type_type__TypeVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28460 0x00007ffff66b89e2 in CPyDef_types___TypeType___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28461 0x00007ffff659b49c in CPyDef_subtypes____is_subtype () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28462 0x00007ffff5cdc243 in CPyDef_subtypes___is_subtype () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28463 0x00007ffff5dadea2 in CPyDef_checker___TypeChecker___check_subtype ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28464 0x00007ffff5e25f83 in CPyDef_checker___TypeChecker___check_return_stmt ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28465 0x00007ffff5e25801 in CPyDef_checker___TypeChecker___visit_return_stmt ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28466 0x00007ffff5e26fc6 in CPyDef_checker___TypeChecker___visit_return_stmt__StatementVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28467 0x00007ffff623dca2 in CPyDef_nodes___ReturnStmt___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28468 0x00007ffff5d9188f in CPyDef_checker___TypeChecker___accept ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28469 0x00007ffff5df2f58 in CPyDef_checker___TypeChecker___visit_block ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28470 0x00007ffff5df3486 in CPyDef_checker___TypeChecker___visit_block__StatementVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28471 0x00007ffff5ea794f in CPyDef_nodes___Block___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28472 0x00007ffff5d9188f in CPyDef_checker___TypeChecker___accept ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28473 0x00007ffff5db5217 in CPyDef_checker___TypeChecker___check_func_def ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28474 0x00007ffff5d9b935 in CPyDef_checker___TypeChecker___check_func_item ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28475 0x00007ffff5dac7b3 in CPyDef_checker___TypeChecker____visit_func_def ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28476 0x00007ffff5dac0b7 in CPyDef_checker___TypeChecker___visit_func_def ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28477 0x00007ffff5dad856 in CPyDef_checker___TypeChecker___visit_func_def__StatementVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28478 0x00007ffff5d9efdf in CPyDef_nodes___FuncDef___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28479 0x00007ffff5d9188f in CPyDef_checker___TypeChecker___accept ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28480 0x00007ffff5df2f58 in CPyDef_checker___TypeChecker___visit_block ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28481 0x00007ffff5df3486 in CPyDef_checker___TypeChecker___visit_block__StatementVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28482 0x00007ffff5ea794f in CPyDef_nodes___Block___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28483 0x00007ffff5d9188f in CPyDef_checker___TypeChecker___accept ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28484 0x00007ffff5ddcc56 in CPyDef_checker___TypeChecker___visit_class_def ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28485 0x00007ffff5de87b6 in CPyDef_checker___TypeChecker___visit_class_def__StatementVisitor_glue ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28486 0x00007ffff611eabf in CPyDef_nodes___ClassDef___accept () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28487 0x00007ffff5d9188f in CPyDef_checker___TypeChecker___accept ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28488 0x00007ffff5d54279 in CPyDef_checker___TypeChecker___check_first_pass ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28489 0x00007ffff5d52f35 in CPyDef_mypy___build___State___type_check_first_pass ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28490 0x00007ffff5d81d17 in CPyDef_mypy___build___process_stale_scc ()
   from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28491 0x00007ffff5d795d8 in CPyDef_mypy___build___process_graph () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28492 0x00007ffff5d10a90 in CPyDef_mypy___build___dispatch () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28493 0x00007ffff5d0b2e4 in CPyDef_mypy___build____build () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28494 0x00007ffff5d0a037 in CPyDef_mypy___build___build () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28495 0x00007ffff6186eda in CPyDef_mypy___main___run_build () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28496 0x00007ffff5cd74dc in CPyDef_mypy___main___main () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28497 0x00007ffff61897d4 in CPyPy_mypy___main___main () from /home/jepler/src/chap/venv/lib/python3.11/site-packages/6c7190bc8b55ffe67f57__mypyc.cpython-311-x86_64-linux-gnu.so
#28498 0x000000000053acf7 in ?? ()
#28499 0x000000000053ac2c in PyObject_Vectorcall ()
#28500 0x000000000052b940 in _PyEval_EvalFrameDefault ()
#28501 0x000000000052360b in PyEval_EvalCode ()
#28502 0x0000000000647497 in ?? ()
#28503 0x0000000000644d4f in ?? ()
#28504 0x0000000000651010 in ?? ()
#28505 0x0000000000650d5b in _PyRun_SimpleFileObject ()
#28506 0x0000000000650b84 in _PyRun_AnyFileObject ()
#28507 0x000000000064f90f in Py_RunMain ()
#28508 0x00000000006275c7 in Py_BytesMain ()
#28509 0x00007ffff7cb01ca in __libc_start_call_main (main=main@entry=0x627530, argc=argc@entry=4, argv=argv@entry=0x7fffffffdea8) at ../sysdeps/nptl/libc_start_call_main.h:58
#28510 0x00007ffff7cb0285 in __libc_start_main_impl (main=0x627530, argc=4, argv=0x7fffffffdea8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=0x7fffffffde98) at ../csu/libc-start.c:360
#28511 0x0000000000627461 in _start ()

Your Environment

  • Debian stable on amd64
  • python 3.11
  • mypy 1.7.0
  • executing mypy -p chap
  • mypy.ini:
[mypy]
mypy_path = src
@jepler jepler added the bug mypy got something wrong label Nov 10, 2023
@AlexWaygood AlexWaygood added crash and removed bug mypy got something wrong labels Nov 10, 2023
@jepler
Copy link
Author

jepler commented Nov 10, 2023

output of mypy with --verbose: https://gist.github.com/jepler/6087e5ba5e9b0298f7ceecc416a68bc5

@JukkaL
Copy link
Collaborator

JukkaL commented Nov 10, 2023

Thanks for the crash report! Can you check if using --old-type-inference avoids the crash?

@jepler
Copy link
Author

jepler commented Nov 10, 2023

That flag doesn't change the outcome:

$ ./venv/bin/mypy --old-type-inference -p chap
Segmentation fault

the gdb stack-trace and the --verbose output look substantially the same.

@jepler
Copy link
Author

jepler commented Nov 10, 2023

Minimized test case:

$ python -mvenv min
$ min/bin/pip install mypy==1.7.0 simple-parsing
Collecting mypy==1.7.0
  Using cached mypy-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.4 MB)
Collecting simple-parsing
  Using cached simple_parsing-0.1.4-py3-none-any.whl (113 kB)
Collecting typing-extensions>=4.1.0
  Using cached typing_extensions-4.8.0-py3-none-any.whl (31 kB)
Collecting mypy-extensions>=1.0.0
  Using cached mypy_extensions-1.0.0-py3-none-any.whl (4.7 kB)
Collecting docstring-parser~=0.15
  Using cached docstring_parser-0.15-py3-none-any.whl (36 kB)
Installing collected packages: typing-extensions, mypy-extensions, docstring-parser, simple-parsing, mypy
Successfully installed docstring-parser-0.15 mypy-1.7.0 mypy-extensions-1.0.0 simple-parsing-0.1.4 typing-extensions-4.8.0
$ min/bin/mypy -c 'import simple_parsing.helpers.serialization'
Segmentation fault

@jepler
Copy link
Author

jepler commented Nov 10, 2023

And the truly minimized test case:

""" A Partial helper that can be used to add arguments for an arbitrary class or callable. """

from typing import Callable

from typing_extensions import TypeVar

_T = TypeVar("_T", bound=Any)


class Partial:
    def __call__(self: Callable[..., None]) -> _T:
        ...

This is of course nonsense since _T doesn't appear on the left, but the segmentation fault should probably still not occur.

@jepler
Copy link
Author

jepler commented Nov 10, 2023

The slightly less nonsense def __call__(self: Callable[..., _T]) -> _T: also segfaults.

@ilevkivskyi
Copy link
Member

Interpreted version results in

RecursionError: maximum recursion depth exceeded

It is likely caused by one of my PRs (where I enabled Callable as supported self-type), so I will take a look at this.

@jepler
Copy link
Author

jepler commented Nov 10, 2023

Thank you!

@jepler
Copy link
Author

jepler commented Nov 10, 2023

@ilevkivskyi Using my truly minimized example and git bisect, I believe the problem may have been introduced at commit f41e24c:

Author: Ivan Levkivskyi <[email protected]>
Date:   Thu Sep 14 10:42:34 2023 +0100

    Lenient handling of trivial Callable suffixes (#15913)
    
    Fixes https://github.com/python/mypy/issues/15734
    Fixes https://github.com/python/mypy/issues/15188
    Fixes https://github.com/python/mypy/issues/14321
    Fixes https://github.com/python/mypy/issues/13107 (plain Callable was
    already working, this fixes the protocol example)
    Fixes https://github.com/python/mypy/issues/16058
    
    It looks like treating trivial suffixes (especially for erased
    callables) as "whatever works" is a right thing, because it reflects the
    whole idea of why we normally check subtyping with respect to an e.g.
    erased type. As you can see this fixes a bunch of issues. Note it was
    necessary to make couple more tweaks to make everything work smoothly:
    * Adjust self-type erasure level in `checker.py` to match other places.
    * Explicitly allow `Callable` as a `self`/`cls` annotation (actually I
    am not sure we need to keep this check at all, since we now have good
    inference for self-types, and we check they are safe either at
    definition site or at call site).

 mypy/checker.py                                   |   4 +-
 mypy/checkmember.py                               |   2 +
 mypy/messages.py                                  |   3 +
 mypy/subtypes.py                                  |  19 ++-
 mypy/typeops.py                                   |   4 +
 test-data/unit/check-callable.test                |  31 +++++
 test-data/unit/check-modules.test                 |  12 +-
 test-data/unit/check-parameter-specification.test | 139 +++++++++++++++++++++-
 test-data/unit/fixtures/paramspec.pyi             |   1 +
 9 files changed, 204 insertions(+), 11 deletions(-)

edited to add git bisect log:

git bisect start
# status: waiting for both good and bad commits
# good: [9b891fe5a101ecbb818f3f16641ab909f289ba04] Remove +dev from version
git bisect good 9b891fe5a101ecbb818f3f16641ab909f289ba04
# status: waiting for bad commit, 1 good commit known
# bad: [f6b9972329d5d68f6defc92a10cc4c3bc339c27b] Remove +dev from version
git bisect bad f6b9972329d5d68f6defc92a10cc4c3bc339c27b
# good: [d7b24514d7301f86031b7d1e2215cf8c2476bec0] Fixes to stubtest's new check for missing stdlib modules (#15960)
git bisect good d7b24514d7301f86031b7d1e2215cf8c2476bec0
# bad: [0291ec90d46655d47fcf220be7eab8b5f7c035e7] Better support for variadic calls and indexing (#16131)
git bisect bad 0291ec90d46655d47fcf220be7eab8b5f7c035e7
# good: [8b73cc22c6a251682f777b104677fa0e1ed5fd67] Complete type analysis of variadic types (#15991)
git bisect good 8b73cc22c6a251682f777b104677fa0e1ed5fd67
# bad: [7d987a1056e4c6ee6f75aa4841f7e0c73ca9b496] Revert use of `ParamSpec` for `functools.wraps`
git bisect bad 7d987a1056e4c6ee6f75aa4841f7e0c73ca9b496
# bad: [2c2d126cc742f2467045d36780c33bb8fb77a614] Fix tuple[Any, ...] subtyping (#16108)
git bisect bad 2c2d126cc742f2467045d36780c33bb8fb77a614
# good: [9a35360739ced871feb6331a14a7bbacce00c7dc] Add `add_overloaded_method_to_class` helper to `plugins/common.py` (#16038)
git bisect good 9a35360739ced871feb6331a14a7bbacce00c7dc
# good: [66fbf5b526ad8cfa127dd5cca68dcb2f770b1dd7] [mypyc] Make tuple packing and unpacking more efficient (#16022)
git bisect good 66fbf5b526ad8cfa127dd5cca68dcb2f770b1dd7
# bad: [f41e24c8b31a110c2f01a753acba458977e41bfc] Lenient handling of trivial Callable suffixes (#15913)
git bisect bad f41e24c8b31a110c2f01a753acba458977e41bfc
# good: [b3275572ec9b65d0a1b5157c5f73ad4004a356b4] Subtyping and inference of user defined variadic types (#16076)
git bisect good b3275572ec9b65d0a1b5157c5f73ad4004a356b4
# first bad commit: [f41e24c8b31a110c2f01a753acba458977e41bfc] Lenient handling of trivial Callable suffixes (#15913)

ilevkivskyi added a commit that referenced this issue Nov 11, 2023
Fixes #16450

The fix is a bit ad-hoc, but OTOH there is nothing meaningful we can
infer in such situation, so it is probably OK.
JukkaL pushed a commit that referenced this issue Nov 22, 2023
Fixes #16450

The fix is a bit ad-hoc, but OTOH there is nothing meaningful we can
infer in such situation, so it is probably OK.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants