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

Skip to content

INTERNAL ERROR -- Please try using mypy master on GitHub #13949

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
ClasherKasten opened this issue Oct 26, 2022 · 3 comments
Closed

INTERNAL ERROR -- Please try using mypy master on GitHub #13949

ClasherKasten opened this issue Oct 26, 2022 · 3 comments
Labels
crash topic-match-statement Python 3.10's match statement

Comments

@ClasherKasten
Copy link

Crash Report

When running mypy in one of the projects I work on, it gives this error

Traceback

src/AthenaCSS/models/css/at_rules.py:141: 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.982
Traceback (most recent call last):
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/bin/mypy", line 8, in <module>
    sys.exit(console_entry())
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/__main__.py", line 15, in console_entry
    main()
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/main.py", line 95, in main
    res, messages, blockers = run_build(sources, options, fscache, t0, stdout, stderr)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/main.py", line 174, in run_build
    res = build.build(sources, options, None, flush_errors, fscache, stdout, stderr)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/build.py", line 187, in build
    result = _build(
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/build.py", line 270, in _build
    graph = dispatch(sources, manager, stdout)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/build.py", line 2867, in dispatch
    process_graph(graph, manager)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/build.py", line 3251, in process_graph
    process_stale_scc(graph, scc, manager)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/build.py", line 3352, in process_stale_scc
    graph[id].type_check_first_pass()
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/build.py", line 2295, in type_check_first_pass
    self.type_checker().check_first_pass()
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 467, in check_first_pass
    self.accept(d)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 575, in accept
    stmt.accept(self)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/nodes.py", line 1127, in accept
    return visitor.visit_class_def(self)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 2026, in visit_class_def
    self.accept(defn.defs)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 575, in accept
    stmt.accept(self)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/nodes.py", line 1202, in accept
    return visitor.visit_block(self)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 2406, in visit_block
    self.accept(s)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 575, in accept
    stmt.accept(self)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/nodes.py", line 618, in accept
    return visitor.visit_overloaded_func_def(self)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 612, in visit_overloaded_func_def
    self._visit_overloaded_func_def(defn)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 628, in _visit_overloaded_func_def
    self.check_func_item(fdef.func, name=fdef.func.name)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 1010, in check_func_item
    self.check_func_def(defn, typ, name)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 1194, in check_func_def
    self.accept(item.body)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 575, in accept
    stmt.accept(self)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/nodes.py", line 1202, in accept
    return visitor.visit_block(self)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 2406, in visit_block
    self.accept(s)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 575, in accept
    stmt.accept(self)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/nodes.py", line 1555, in accept
    return visitor.visit_match_stmt(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 4462, in visit_match_stmt
    pattern_types = [self.pattern_checker.accept(p, subject_type) for p in s.patterns]
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checker.py", line 4462, in <listcomp>
    pattern_types = [self.pattern_checker.accept(p, subject_type) for p in s.patterns]
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checkpattern.py", line 119, in accept
    result = o.accept(self)
             ^^^^^^^^^^^^^^
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/patterns.py", line 93, in accept
    return visitor.visit_sequence_pattern(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checkpattern.py", line 307, in visit_sequence_pattern
    new_type = self.construct_sequence_child(current_type, new_inner_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checkpattern.py", line 651, in construct_sequence_child
    types = [
            ^
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checkpattern.py", line 652, in <listcomp>
    self.construct_sequence_child(item, inner_type)
  File "/home/clasherkasten/Dokumente/Python/athena-workspace/workspace/ClasherKasten/AthenaCSS/venv/lib/python3.11/site-packages/mypy/checkpattern.py", line 660, in construct_sequence_child
    assert isinstance(proper_type, Instance)
AssertionError: 
src/AthenaCSS/models/css/at_rules.py:141: : note: use --pdb to drop into pdb

To Reproduce

copy into a file:

from __future__ import annotations

from typing import TypeAlias


TNegative: TypeAlias = str | tuple[str, str] | None


class CounterStyle:
    def __init__(self, negative: TNegative) -> None:
        self.negative = negative

    @property
    def negative(self) -> str:
        return self._negative

    @negative.setter
    def negative(self, new_negative: TNegative) -> None:
        match new_negative:
            case str(s):
                self._negative = f'negative: "{s}";'
            case (str(s1), str(s2)):
                self._negative = f'negative: "{s1}" "{s2}";'
            case None:
                self._negative = ''
            case _:
                raise Exception('Error msg...')

and run mypy <that-file>

Your Environment

  • Mypy version used: mypy 0.982 (compiled: no)
  • Mypy command-line flags:
  • Mypy configuration options from .mypy.ini:
[mypy]
check_untyped_defs = true
disallow_any_generics = true
disallow_incomplete_defs = true
disallow_untyped_defs = true
enable_recursive_aliases = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
  • Python version used: 3.11.0
  • Operating system and version: Kubuntu 22.04
@AlexWaygood
Copy link
Member

AlexWaygood commented Oct 26, 2022

Simpler repro:

new_negative: str | tuple[str, str]

match new_negative:
    case (str(s1), str(s2)):
        y = f'negative: "{s1}" "{s2}";'

https://mypy-play.net/?mypy=latest&python=3.10&flags=show-traceback&gist=8fc7f5f95cf976a9f391613147119500

@AlexWaygood AlexWaygood added the topic-match-statement Python 3.10's match statement label Oct 26, 2022
@AlexWaygood
Copy link
Member

Duplicate of #12533; this should already be fixed on mypy master.

@AlexWaygood
Copy link
Member

AlexWaygood commented Oct 26, 2022

I confirmed locally that the crash can be reproduced on mypy 0.982, but not on mypy master (it was fixed in #13514). The fix will be released as part of mypy 0.990 (follow #13871 for progress updates).

@AlexWaygood AlexWaygood closed this as not planned Won't fix, can't repro, duplicate, stale Oct 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crash topic-match-statement Python 3.10's match statement
Projects
None yet
Development

No branches or pull requests

2 participants