Don't emit more diagnostics after hitting -ferror-limit

This commit is contained in:
Fangrui Song 2017-12-23 15:20:13 -08:00
parent c04c9fa750
commit af5ae31c34

View File

@ -335,13 +335,11 @@ void TryEnsureDocumentParsed(ClangCompleteManager* manager,
for (unsigned i = 0; i < num_diagnostics; ++i) {
optional<lsDiagnostic> diagnostic = BuildAndDisposeDiagnostic(
clang_getDiagnostic((*tu)->cx_tu, i), session->file.filename);
if (diagnostic) {
// "too many errors emitted, stopping now [-ferror-limit=]" has line = 0
// and got subtracted by 1 after conversion to lsDiagnostic
if (diagnostic->range.start.line == -1)
break;
// Filter messages like "too many errors emitted, stopping now
// [-ferror-limit=]" which has line = 0 and got subtracted by 1 after
// conversion to lsDiagnostic
if (diagnostic && diagnostic->range.start.line >= 0)
ls_diagnostics.push_back(*diagnostic);
}
}
manager->on_diagnostic_(session->file.filename, ls_diagnostics);
}
@ -509,13 +507,11 @@ void CompletionQueryMain(ClangCompleteManager* completion_manager) {
CXDiagnostic cx_diag = clang_getDiagnostic(session->tu->cx_tu, i);
optional<lsDiagnostic> diagnostic =
BuildAndDisposeDiagnostic(cx_diag, path);
if (diagnostic) {
// "too many errors emitted, stopping now [-ferror-limit=]" has line = 0
// and got subtracted by 1 after conversion to lsDiagnostic
if (diagnostic->range.start.line == -1)
break;
// Filter messages like "too many errors emitted, stopping now
// [-ferror-limit=]" which has line = 0 and got subtracted by 1 after
// conversion to lsDiagnostic
if (diagnostic && diagnostic->range.start.line >= 0)
ls_diagnostics.push_back(*diagnostic);
}
}
completion_manager->on_diagnostic_(session->file.filename,
ls_diagnostics);