diff --git a/mypy/build.py b/mypy/build.py index 0201cd2c2186..bfd557c65174 100644 --- a/mypy/build.py +++ b/mypy/build.py @@ -825,8 +825,21 @@ def _load_json_file(file: str, manager: BuildManager, manager.log(log_error + file) return None manager.trace(log_sucess + data.rstrip()) - result = json.loads(data) # TODO: Errors - return result + try: + result = json.loads(data) + except ValueError: # TODO: JSONDecodeError in 3.5 + manager.errors.set_file(file, None) + manager.errors.report(-1, -1, + "Error reading JSON file;" + " you likely have a bad cache.\n" + "Try removing the {cache_dir} directory" + " and run mypy again.".format( + cache_dir=manager.options.cache_dir + ), + blocker=True) + return None + else: + return result def _cache_dir_prefix(manager: BuildManager) -> str: