-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Open
Labels
Description
Crash Report
Running mypyc on cwltool crashes with mypy 1.19; this didn't happen in previous versions.
Traceback
with compiled mypy (from PyPI) there is no traceback:
Traceback (most recent call last):
assertion_error.py:3: AssertionError:
But by installing with pip install mypy --no-binary :all: we get
$ mypyc assertion_error.py
Traceback (most recent call last):
File "/home/michael/cwltool_main/mypyc-test/build/setup.py", line 6, in <module>
ext_modules=mypycify(
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/build.py", line 635, in mypycify
groups, group_cfilenames = mypyc_build(
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/build.py", line 514, in mypyc_build
group_cfiles, ops_text = generate_c(
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/build.py", line 312, in generate_c
modules, ctext, mapper = emitmodule.compile_modules_to_c(
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/codegen/emitmodule.py", line 458, in compile_modules_to_c
modules = compile_modules_to_ir(result, mapper, compiler_options, errors)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/codegen/emitmodule.py", line 298, in compile_modules_to_ir
scc_ir = compile_scc_to_ir(trees, result, mapper, compiler_options, errors)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/codegen/emitmodule.py", line 236, in compile_scc_to_ir
modules = build_ir(scc, result.graph, result.types, mapper, compiler_options, errors)
File "/home/michael/.pyenv/versions/3.13.2/lib/python3.13/contextlib.py", line 85, in inner
return func(*args, **kwds)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/main.py", line 113, in build_ir
transform_mypy_file(builder, module)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/main.py", line 159, in transform_mypy_file
builder.accept(node)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/builder.py", line 293, in accept
node.accept(self.visitor)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypy/nodes.py", line 1660, in accept
return visitor.visit_assignment_stmt(self)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/visitor.py", line 203, in visit_assignment_stmt
transform_assignment_stmt(self.builder, stmt)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/statement.py", line 240, in transform_assignment_stmt
rvalue_reg = builder.accept(stmt.rvalue)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/builder.py", line 279, in accept
res = node.accept(self.visitor)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypy/nodes.py", line 2738, in accept
return visitor.visit_generator_expr(self)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/visitor.py", line 330, in visit_generator_expr
return transform_generator_expr(self.builder, expr)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/expression.py", line 1100, in transform_generator_expr
return builder.primitive_op(iter_op, [translate_list_comprehension(builder, o)], o.line)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/for_helpers.py", line 282, in translate_list_comprehension
val = sequence_from_generator_preallocate_helper(
builder,
...<2 lines>...
set_item_op=new_list_set_item_op,
)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/for_helpers.py", line 269, in sequence_from_generator_preallocate_helper
for_loop_helper_with_index(
~~~~~~~~~~~~~~~~~~~~~~~~~~^
builder, gen.indices[0], sequence_expr, sequence, set_item, line, length
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/for_helpers.py", line 176, in for_loop_helper_with_index
target_type = builder.get_sequence_type(expr)
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/builder.py", line 972, in get_sequence_type
return self.get_sequence_type_from_type(self.types[expr])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/irbuild/builder.py", line 998, in get_sequence_type_from_type
return RUnion.make_simplified_union(list(rtypes))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "/home/michael/cwltool_main/env3.13.2/lib/python3.13/site-packages/mypyc/ir/rtypes.py", line 976, in make_simplified_union
assert items
^^^^^
assertion_error.py:3: AssertionError:To Reproduce
Checkout common-workflow-language/cwltool#2185 and run tox -e py313-mypy.
The line where that crashes:
Here's a reduced reproducer:
from collections.abc import Generator
from typing import Optional, Union
jobs: Generator[Optional[str], None, None] = (_ for _ in ())
print(jobs)Your Environment
- Mypy version used: 1.19.0
- Mypy command-line flags:
- Mypy configuration options from
mypy.ini(and other config files): None - Python version used: 3.13.2
- Operating system and version: Debian Linux stable 13.2