impl Display for ComileErrors

This commit is contained in:
Shunsuke Shibayama 2022-11-17 20:48:42 +09:00
parent 666ec1c7fe
commit d8e2ece224
3 changed files with 15 additions and 7 deletions

View file

@ -810,11 +810,4 @@ pub trait MultiErrorDisplay<Item: ErrorDisplay>: Stream<Item> {
}
write!(f, "")
}
fn write_all<W: std::io::Write>(&self, w: &mut W) {
let mut writer = BufWriter::new(w);
for err in self.iter() {
err.write_to(&mut writer);
}
}
}

View file

@ -1,3 +1,4 @@
use std::fmt;
use std::fmt::Display;
use erg_common::astr::AtomicStr;
@ -1814,6 +1815,12 @@ impl From<CompileError> for CompileErrors {
impl MultiErrorDisplay<CompileError> for CompileErrors {}
impl fmt::Display for CompileErrors {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
self.fmt_all(f)
}
}
impl CompileErrors {
pub fn flush(&mut self) -> Self {
Self(self.0.drain(..).collect())

View file

@ -1,6 +1,8 @@
//! defines `ParseError` and others.
//!
//! パーサーが出すエラーを定義
use std::fmt;
use erg_common::astr::AtomicStr;
use erg_common::config::Input;
use erg_common::error::{ErrorCore, ErrorDisplay, ErrorKind::*, Location, MultiErrorDisplay};
@ -200,6 +202,12 @@ impl_stream_for_wrapper!(ParserRunnerErrors, ParserRunnerError);
impl MultiErrorDisplay<ParserRunnerError> for ParserRunnerErrors {}
impl fmt::Display for ParserRunnerErrors {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
self.fmt_all(f)
}
}
impl ParserRunnerErrors {
pub fn convert(input: &Input, errs: ParseErrors, theme: Theme) -> Self {
Self(