python / mypy

Optional static typing for Python
https://www.mypy-lang.org/
Other
18.57k stars 2.84k forks source link

Fix couple crashes in dmypy #18098

Closed ilevkivskyi closed 3 weeks ago

ilevkivskyi commented 3 weeks ago

Fixes https://github.com/python/mypy/issues/18019 Fixes https://github.com/python/mypy/issues/17775

These two are essentially variations of the same thing. Instead of adding e.g. types to SENSITIVE_INTERNAL_MODULES (which would be fragile and re-introduce same crashes whenever we add a new "core" module) I add all stdlib modules. The only scenario when stdlib changes is when a version of mypy changes, and in this case the daemon will be (or should be) restarted anyway.

While adding tests for these I noticed a discrepancy in --follow-imports=normal in the daemon: the files explicitly added on the command line should be always treated as changed, since otherwise we will not detect errors if a file was removed from command line in an intermediate run.

Finally the tests also discovered a spurious error when cache is disabled (via /dev/null).

github-actions[bot] commented 3 weeks ago

According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅

hauntsaninja commented 3 weeks ago

Nice, thanks for fixing!

hauntsaninja commented 3 weeks ago

By the way, there's another similar follow imports related discrepancy in daemon https://github.com/python/mypy/issues/15677