Skip to content

New crashes related to partial types #3986

Closed
@gvanrossum

Description

@gvanrossum

We recently upgraded to a newer mypy version (c000062) and are seeing new crashes. One has a traceback ending in

[...]
File "/Users/damien/src/client/.mypy/venv/lib/python3.6/site-packages/mypy/checkexpr.py", line 753, in infer_function_type_arguments_using_context
    args = infer_type_arguments(callable.type_var_ids(), ret_type, erased_ctx)
File "/Users/damien/src/client/.mypy/venv/lib/python3.6/site-packages/mypy/infer.py", line 43, in infer_type_arguments
    return solve_constraints(type_var_ids, constraints)
File "/Users/damien/src/client/.mypy/venv/lib/python3.6/site-packages/mypy/solve.py", line 52, in solve_constraints
    top = meet_types(top, c.target)
File "/Users/damien/src/client/.mypy/venv/lib/python3.6/site-packages/mypy/meet.py", line 25, in meet_types
    return t.accept(TypeMeetVisitor(s))
File "/Users/damien/src/client/.mypy/venv/lib/python3.6/site-packages/mypy/types.py", line 1287, in accept
    return visitor.visit_partial_type(self)
File "/Users/damien/src/client/.mypy/venv/lib/python3.6/site-packages/mypy/meet.py", line 288, in visit_partial_type
    assert False, 'Internal error'
AssertionError: Internal error

And the other:

  File "/Users/guido/src/server/.mypy/venv/lib/python3.6/site-packages/mypy/nodes.py", line 817, in accept
    return visitor.visit_assignment_stmt(self)
  File "/Users/guido/src/server/.mypy/venv/lib/python3.6/site-packages/mypy/checker.py", line 1307, in visit_assignment_stmt
    self.check_assignment(s.lvalues[-1], s.rvalue, s.type is None, s.new_syntax)
  File "/Users/guido/src/server/.mypy/venv/lib/python3.6/site-packages/mypy/checker.py", line 1367, in check_assignment
    self.infer_partial_type(lvalue_type.var, lvalue, rvalue_type)
  File "/Users/guido/src/server/.mypy/venv/lib/python3.6/site-packages/mypy/checker.py", line 1833, in infer_partial_type
    self.set_inferred_type(name, lvalue, partial_type)
  File "/Users/guido/src/server/.mypy/venv/lib/python3.6/site-packages/mypy/checker.py", line 1848, in set_inferred_type
    assert lvalue.def_var is not None
AssertionError: 

I haven't investigated these nor tried to reduce them. I do have a repeatable demo of the latter.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions