Skip to content

Internal Error When Standard Library Module Shadowed #11074

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
ben-e-whitney opened this issue Sep 8, 2021 · 1 comment
Closed

Internal Error When Standard Library Module Shadowed #11074

ben-e-whitney opened this issue Sep 8, 2021 · 1 comment
Labels

Comments

@ben-e-whitney
Copy link

ben-e-whitney commented Sep 8, 2021

Crash Report

I'm aware that this is a somewhat pathological example. Please let me know if you need any more information.

Your Environment

$ lsb_release --all
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.5 LTS
Release:	18.04
Codename:	bionic
$ python3 --version
Python 3.9.1
$ mypy --version
mypy 0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85
$ echo ${MYPYPATH}

$ echo ${MYPY_CACHE_DIR}
  • Mypy version used: 0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85
  • Mypy command-line flags: --show-traceback
  • Mypy configuration options from mypy.ini (and other config files): none (empty mypy.ini)
  • Python version used: 3.9.1
  • Operating system and version: Ubuntu 18.04.5 LTS

To Reproduce

$ ls --all
.  ..  a.py  io.py  mypy.ini
$ cat mypy.ini 
[mypy]
$ cat io.py # empty
$ cat a.py
import io
import typing

def write(self, stream: typing.Union[io.TextIOBase, str]) -> int:
    if hasattr(stream, 'write'):
        return _write(stream)
    else:
        with open(stream, 'w') as f:
            return _write(f)

def _write(stream: io.TextIOBase) -> int:
    return stream.write('abc')

Traceback

$ mypy --show-traceback a.py | sed --expression "s#${HOME}#\${HOME}#g"
a.py:8: error: INTERNAL ERROR -- Please try using mypy master on Github:
https://mypy.readthedocs.io/en/stable/common_issues.html#using-a-development-mypy-build
Please report a bug at https://github.com/python/mypy/issues
version: 0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85
a.py:8: : note: use --pdb to drop into pdb
a.py:4: error: Name "io.TextIOBase" is not defined
a.py:11: error: Name "io.TextIOBase" is not defined
Traceback (most recent call last):
  File "${HOME}/.local/bin/mypy", line 33, in <module>
    sys.exit(load_entry_point('mypy==0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85', 'console_scripts', 'mypy')())
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/__main__.py", line 11, in console_entry
    main(None, sys.stdout, sys.stderr)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/main.py", line 87, in main
    res, messages, blockers = run_build(sources, options, fscache, t0, stdout, stderr)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/main.py", line 165, in run_build
    res = build.build(sources, options, None, flush_errors, fscache, stdout, stderr)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/build.py", line 179, in build
    result = _build(
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/build.py", line 254, in _build
    graph = dispatch(sources, manager, stdout)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/build.py", line 2707, in dispatch
    process_graph(graph, manager)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/build.py", line 3031, in process_graph
    process_stale_scc(graph, scc, manager)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/build.py", line 3129, in process_stale_scc
    graph[id].type_check_first_pass()
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/build.py", line 2175, in type_check_first_pass
    self.type_checker().check_first_pass()
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 303, in check_first_pass
    self.accept(d)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 407, in accept
    stmt.accept(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/nodes.py", line 696, in accept
    return visitor.visit_func_def(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 739, in visit_func_def
    self._visit_func_def(defn)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 743, in _visit_func_def
    self.check_func_item(defn, name=defn.name)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 805, in check_func_item
    self.check_func_def(defn, typ, name)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 988, in check_func_def
    self.accept(item.body)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 407, in accept
    stmt.accept(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/nodes.py", line 1024, in accept
    return visitor.visit_block(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 2001, in visit_block
    self.accept(s)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 407, in accept
    stmt.accept(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/nodes.py", line 1216, in accept
    return visitor.visit_if_stmt(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 3351, in visit_if_stmt
    self.accept(s.else_body)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 407, in accept
    stmt.accept(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/nodes.py", line 1024, in accept
    return visitor.visit_block(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 2001, in visit_block
    self.accept(s)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 407, in accept
    stmt.accept(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/nodes.py", line 1278, in accept
    return visitor.visit_with_stmt(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 3723, in visit_with_stmt
    exit_ret_type = self.check_with_item(expr, target, s.unanalyzed_type is None)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checker.py", line 3778, in check_with_item
    ctx = echk.accept(expr)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 3912, in accept
    typ = node.accept(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/nodes.py", line 1600, in accept
    return visitor.visit_call_expr(self)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 277, in visit_call_expr
    return self.visit_call_expr_inner(e, allow_none_return=allow_none_return)
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 366, in visit_call_expr_inner
    ret_type = self.check_call_expr_with_callee_type(callee_type, e, fullname,
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 873, in check_call_expr_with_callee_type
    return self.check_call(callee_type, e.args, e.arg_kinds, e,
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 937, in check_call
    return self.check_overload_call(callee, args, arg_kinds, arg_names, callable_name,
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 1565, in check_overload_call
    unioned_return = self.union_overload_result(plausible_targets, args,
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 1837, in union_overload_result
    direct = self.infer_overload_return_type(plausible_targets, args, arg_types,
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 1731, in infer_overload_return_type
    ret_type, infer_type = self.check_call(
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 933, in check_call
    return self.check_callable_call(callee, args, arg_kinds, context, arg_names,
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 1045, in check_callable_call
    new_ret_type = self.apply_function_plugin(
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/checkexpr.py", line 744, in apply_function_plugin
    return callback(
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/plugins/default.py", line 136, in open_callback
    return _analyze_open_signature(
  File "${HOME}/.local/lib/python3.9/site-packages/mypy-0.920+dev.bbea3b56297d3d966b9a98900c218df6616fec85-py3.9.egg/mypy/plugins/default.py", line 178, in _analyze_open_signature
    assert isinstance(default_return_type, Instance)  # type: ignore
AssertionError:
@hauntsaninja
Copy link
Collaborator

Duplicate of #10990

@hauntsaninja hauntsaninja marked this as a duplicate of #10990 Jul 8, 2022
@AlexWaygood AlexWaygood closed this as not planned Won't fix, can't repro, duplicate, stale Jul 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants