Skip to content

Commit 06f97b2

Browse files
authored
Do not display import-related errors after module-level always false assert (#19347)
Fixes #19346
1 parent 4847ec8 commit 06f97b2

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

mypy/semanal_pass1.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ def visit_file(self, file: MypyFile, fnam: str, mod_id: str, options: Options) -
7474
if last.end_line is not None:
7575
# We are on a Python version recent enough to support end lines.
7676
self.skipped_lines |= set(range(next_def.line, last.end_line + 1))
77+
file.imports = [
78+
i for i in file.imports if (i.line, i.column) <= (defn.line, defn.column)
79+
]
7780
del file.defs[i + 1 :]
7881
break
7982
file.skipped_lines = self.skipped_lines

test-data/unit/check-incremental.test

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6888,3 +6888,12 @@ class A:
68886888
[out]
68896889
[out2]
68906890
main:3: error: Too few arguments
6891+
6892+
[case testUnreachableAfterToplevelAssertImportThirdParty]
6893+
# flags: --platform unknown
6894+
import sys
6895+
assert sys.platform == 'linux'
6896+
import does_not_exist
6897+
[builtins fixtures/ops.pyi]
6898+
[out]
6899+
[out2]

test-data/unit/check-unreachable-code.test

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,22 @@ assert sys.platform == 'lol'
778778
def bar() -> None: pass
779779
[builtins fixtures/ops.pyi]
780780

781+
[case testUnreachableAfterToplevelAssertImportThirdParty]
782+
# flags: --platform unknown
783+
import sys
784+
assert sys.platform == 'linux'
785+
import does_not_exist
786+
[builtins fixtures/ops.pyi]
787+
788+
[case testUnreachableAfterToplevelAssertImportThirdParty2]
789+
# flags: --platform unknown
790+
import sys
791+
import bad; assert sys.platform == 'linux'; import does_not_exist
792+
[builtins fixtures/ops.pyi]
793+
[out]
794+
main:3: error: Cannot find implementation or library stub for module named "bad"
795+
main:3: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
796+
781797
[case testUnreachableAfterToplevelAssertNotInsideIf]
782798
import sys
783799
if sys.version_info[0] >= 2:

0 commit comments

Comments
 (0)