Skip to content

Commit 2cdc138

Browse files
committed
Fix disappearing errors when re-running dmypy check
This which fixes issue python#9655 wherein some types of error would be lost when a file was re-processed by dmypy. This also fixes another error where sometimes files would not be re-processed by dmypy if the only error in the file was either "unused type ignore" or "ignore without code".
1 parent 79937d0 commit 2cdc138

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

Diff for: mypy/errors.py

+4
Original file line numberDiff line numberDiff line change
@@ -725,6 +725,8 @@ def generate_unused_ignore_errors(self, file: str) -> None:
725725
blocker=False,
726726
only_once=False,
727727
allow_dups=False,
728+
origin=(self.file, [line]),
729+
target=self.target_module,
728730
)
729731
self._add_error_info(file, info)
730732

@@ -777,6 +779,8 @@ def generate_ignore_without_code_errors(
777779
blocker=False,
778780
only_once=False,
779781
allow_dups=False,
782+
origin=(self.file, [line]),
783+
target=self.target_module,
780784
)
781785
self._add_error_info(file, info)
782786

Diff for: mypy/server/update.py

+6
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,8 @@ def restore(ids: list[str]) -> None:
667667
state.type_check_first_pass()
668668
state.type_check_second_pass()
669669
state.detect_possibly_undefined_vars()
670+
state.generate_unused_ignore_notes()
671+
state.generate_ignore_without_code_notes()
670672
t2 = time.time()
671673
state.finish_passes()
672674
t3 = time.time()
@@ -1028,6 +1030,10 @@ def key(node: FineGrainedDeferredNode) -> int:
10281030
if graph[module_id].type_checker().check_second_pass():
10291031
more = True
10301032

1033+
graph[module_id].detect_possibly_undefined_vars()
1034+
graph[module_id].generate_unused_ignore_notes()
1035+
graph[module_id].generate_ignore_without_code_notes()
1036+
10311037
if manager.options.export_types:
10321038
manager.all_types.update(graph[module_id].type_map())
10331039

0 commit comments

Comments
 (0)