diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-11-03 11:44:53 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-11-03 13:35:39 +0100 |
| commit | 37a7afddfaffd44cb9bc013c9506599267e08983 (patch) | |
| tree | 20e7d62d3c5418baff01a21d0406b91bf3096214 /src/diag.rs | |
| parent | 56342bd972a13ffe21beaf2b87ab7eb1597704b4 (diff) | |
Split crates
Diffstat (limited to 'src/diag.rs')
| -rw-r--r-- | src/diag.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/diag.rs b/src/diag.rs index f4725f00..0a532713 100644 --- a/src/diag.rs +++ b/src/diag.rs @@ -10,33 +10,41 @@ use std::string::FromUtf8Error; use comemo::Tracked; use crate::syntax::{ErrorPos, Span, Spanned}; -use crate::util::EcoString; +use crate::util::{format_eco, EcoString}; use crate::World; /// Early-return with a [`SourceError`]. #[macro_export] -macro_rules! bail { +#[doc(hidden)] +macro_rules! __bail { ($error:expr) => { return Err(Box::new(vec![$error])) }; ($($tts:tt)*) => { - $crate::bail!($crate::error!($($tts)*)) + $crate::diag::bail!($crate::diag::error!($($tts)*)) }; } +#[doc(inline)] +pub use crate::__bail as bail; + /// Construct a [`SourceError`]. #[macro_export] -macro_rules! error { +#[doc(hidden)] +macro_rules! __error { ($span:expr, $message:expr $(,)?) => { $crate::diag::SourceError::new($span, $message) }; ($span:expr, $fmt:expr, $($arg:expr),+ $(,)?) => { - $crate::error!($span, format!($fmt, $($arg),+)) + $crate::diag::error!($span, format!($fmt, $($arg),+)) }; } +#[doc(inline)] +pub use crate::__error as error; + /// A result that can carry multiple source errors. pub type SourceResult<T> = Result<T, Box<Vec<SourceError>>>; |
