Skip to content

Commit 223ada0

Browse files
author
Guido van Rossum
committed
Call report_internal_error() in wrap_context(), as a catch-all (no line number available).
Fixes #1341 good.
1 parent 288f319 commit 223ada0

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

mypy/build.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
SymbolTableNode, MODULE_REF)
2929
from mypy.semanal import FirstPass, SemanticAnalyzer, ThirdPass
3030
from mypy.checker import TypeChecker
31-
from mypy.errors import Errors, CompileError
31+
from mypy.errors import Errors, CompileError, report_internal_error
3232
from mypy import fixup
3333
from mypy.report import Reports
3434
from mypy import defaults
@@ -1036,7 +1036,12 @@ def check_blockers(self) -> None:
10361036
def wrap_context(self) -> Iterator[None]:
10371037
save_import_context = self.manager.errors.import_context()
10381038
self.manager.errors.set_import_context(self.import_context)
1039-
yield
1039+
try:
1040+
yield
1041+
except CompileError:
1042+
raise
1043+
except Exception as err:
1044+
report_internal_error(err, self.path, 0)
10401045
self.manager.errors.set_import_context(save_import_context)
10411046
self.check_blockers()
10421047

mypy/errors.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -377,8 +377,12 @@ def report_internal_error(err: Exception, file: str, line: int) -> None:
377377
print(s.rstrip('\n'))
378378
print('{}: {}'.format(type(err).__name__, err))
379379
print('\n*** INTERNAL ERROR ***', file=sys.stderr)
380-
print('\n{}:{}: error: Internal error --'.format(file, line),
381-
'please report a bug at https://github.com/JukkaL/mypy/issues',
380+
if line:
381+
prefix = '{}:{}'.format(file, line)
382+
else:
383+
prefix = file
384+
print('\n{}: error: Internal error --'.format(prefix),
385+
'please report a bug at https://github.com/python/mypy/issues',
382386
file=sys.stderr)
383387
print('\nNOTE: you can use "mypy --pdb ..." to drop into the debugger when this happens.',
384388
file=sys.stderr)

0 commit comments

Comments
 (0)