Skip to content
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

mypy crash trying to analyze library code (when only asked to analyze my own code) #17745

Open
nkronenfeld opened this issue Sep 6, 2024 · 0 comments
Labels
bug mypy got something wrong

Comments

@nkronenfeld
Copy link

Bug Report

I'm getting an error running mypy, that asks me to report it, so I am:

> mypy --show-traceback --enable-incomplete-feature=NewGenericSyntax src
<my code>/venv/lib/python3.12/site-packages/<collaborator library>/foo.py:289: 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: 1.12.0+dev.0412590ba13395a04f122a5dd83764db9d001fe6
Traceback (most recent call last):
  File "<my code>/venv/bin/mypy", line 8, in <module>
    sys.exit(console_entry())
  File "<my code>/venv/lib/python3.12/site-packages/mypy/__main__.py", line 15, in console_entry
    main()
  File "<my code>/venv/lib/python3.12/site-packages/mypy/main.py", line 102, in main
    res, messages, blockers = run_build(sources, options, fscache, t0, stdout, stderr)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/main.py", line 186, in run_build
    res = build.build(sources, options, None, flush_errors, fscache, stdout, stderr)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/build.py", line 193, in build
    result = _build(
  File "<my code>/venv/lib/python3.12/site-packages/mypy/build.py", line 268, in _build
    graph = dispatch(sources, manager, stdout)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/build.py", line 2950, in dispatch
    process_graph(graph, manager)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/build.py", line 3348, in process_graph
    process_stale_scc(graph, scc, manager)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/build.py", line 3443, in process_stale_scc
    mypy.semanal_main.semantic_analysis_for_scc(graph, scc, manager.errors)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/semanal_main.py", line 94, in semantic_analysis_for_scc
    process_functions(graph, scc, patches)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/semanal_main.py", line 252, in process_functions
    process_top_level_function(
  File "<my code>/venv/lib/python3.12/site-packages/mypy/semanal_main.py", line 291, in process_top_level_function
    deferred, incomplete, progress = semantic_analyze_target(
  File "<my code>/venv/lib/python3.12/site-packages/mypy/semanal_main.py", line 351, in semantic_analyze_target
    analyzer.refresh_partial(
  File "<my code>/venv/lib/python3.12/site-packages/mypy/semanal.py", line 622, in refresh_partial
    self.accept(node)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/semanal.py", line 7087, in accept
    node.accept(self)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/nodes.py", line 819, in accept
    return visitor.visit_func_def(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<my code>/venv/lib/python3.12/site-packages/mypy/semanal.py", line 874, in visit_func_def
    self.analyze_func_def(defn)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/semanal.py", line 919, in analyze_func_def
    self.defer(defn)
  File "<my code>/venv/lib/python3.12/site-packages/mypy/semanal.py", line 6742, in defer
    assert not self.final_iteration, "Must not defer during final iteration"
           ^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Must not defer during final iteration
<my code>/venv/lib/python3.12/site-packages/<collaborator library>/foo.py:289: : note: use --pdb to drop into pdb```

To Reproduce
I'm sorry, I don't know how to reproduce this.

It's especially weird as when I run mypy in the collaborator's source code, it runs fine there. It's only when installed in my own venv that it crashes.

If it helps, the offending code is (sanitized for anonymity):

class Ref(Base, Generic[D]):
    id: str = IDField()

    @classmethod
    def id_lens(cls) -> Lens[Self, str]:
        return AttributeLens('id', False, False)

line 289 is the first line - class Ref...

Expected Behavior

Not crashing?

Actual Behavior

Crashes and fails every time

Your Environment

  • Mypy version used: 1.12.0+dev.0412590ba13395a04f122a5dd83764db9d001fe6) (latest dev version)

  • Mypy command-line flags: I've tried both with and without the flags above (--show-traceback and --enable-incomplete-feature=NewGenericSyntax) and it makes no difference - I get the crash every time

  • Mypy configuration options from mypy.ini (and other config files): check_untyped_defs = True, warn_return_any = True, warn_unused_configs = True, plugins = pydantic.mypy

  • Python version used: 3.12.4

@nkronenfeld nkronenfeld added the bug mypy got something wrong label Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug mypy got something wrong
Projects
None yet
Development

No branches or pull requests

1 participant