// [R] void CompileSession::RecordErrorInfo(const ErrorInfo& templ) { DEBUG_FORMAT("%s", templ); static bool fContinue = false; if (!fContinue && ::IsDebuggerPresent()) { __debugbreak(); fContinue = true; } if (error_set_.Contains(&templ)) { return; } auto& error_info = templ.Clone(); error_set_.Add(&error_info); auto ref = errors_.GetLast(); while (ref) { if (error_info.source_info() > ref->source_info()) { break; } ref = ref->GetPrev(); } if (ref) { errors_.InsertAfter(&error_info, ref); } else { errors_.Prepend(&error_info); } }
void CompileSession::RecordWarningInfo(const ErrorInfo& error_info) { warnings_.Append(&error_info.Clone()); }
void CompileSession::AddErrorInfo(const ErrorInfo& error_info) { RecordErrorInfo(error_info.Clone()); }