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

dmypy does not recheck files when they are removed and then re-added. #5343

Closed
ramLlama opened this issue Jul 10, 2018 · 3 comments · Fixed by #15440
Closed

dmypy does not recheck files when they are removed and then re-added. #5343

ramLlama opened this issue Jul 10, 2018 · 3 comments · Fixed by #15440

Comments

@ramLlama
Copy link

  • Are you reporting a bug, or opening a feature request?
    Bug
  • Please insert below the code you are checking with mypy,
    or a mock-up repro if the source is private. We would appreciate
    if you try to simplify your case to a minimal repro.

In a folder, have two files test1.py and test2.py. Contents are:

test1.py:

x: str = 1

test2.py:

y: int = 'hello'
  • What is the actual behavior/output?
$ python -m mypy --follow-imports=skip --ignore-missing-imports --cache-fine-grained test1.py
test1.py:1: error: Incompatible types in assignment (expression has type "int", variable has type "str")
$ python -m mypy --follow-imports=skip --ignore-missing-imports --cache-fine-grained test2.py
test2.py:1: error: Incompatible types in assignment (expression has type "str", variable has type "int")
$ dmypy start -- --follow-imports=skip --ignore-missing-imports --use-fine-grained-cache
Daemon started
$ dmypy check test1.py
test1.py:1: error: Incompatible types in assignment (expression has type "int", variable has type "str")
$ dmypy check test1.py
test1.py:1: error: Incompatible types in assignment (expression has type "int", variable has type "str")
$ dmypy check test2.py
test2.py:1: error: Incompatible types in assignment (expression has type "str", variable has type "int")
$ dmypy check test2.py
test2.py:1: error: Incompatible types in assignment (expression has type "str", variable has type "int")
$ dmypy check test1.py
$ dmypy check test2.py
$
  • What is the behavior/output you expect?
    I expect that files are rechecked and errors re-outputted after being removed and then re-added to dmypy.
  • What are the versions of mypy and Python you are using?
    mypy 0.610, python 3.6.3
@msullivan
Copy link
Collaborator

Self-assigning this because I'm about to rampage through the relevant code and think a fix for this might come out the other end.

@msullivan msullivan removed their assignment Jun 18, 2020
@msullivan
Copy link
Collaborator

This might have gotten fixed though?

@JukkaL
Copy link
Collaborator

JukkaL commented Jun 19, 2020

This still seems to be an issue. I was able to reproduce the problem with using dmypy run -- <files>. Increasing priority since this is pretty bad. Also I somehow got errors from typeshed by doing this.

ilevkivskyi added a commit that referenced this issue Jun 15, 2023
Fixes #5343
Fixes #12249

This can potentially slow down runs in situations where multiple
unchanged files are re-added to source list. Potentially, we can track
whether modules had errors permanently (not just from previous run), and
then only re-check those unchanged re-added files that had errors
before. I am not sure if this is important.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants