summaryrefslogtreecommitdiff
path: root/src/diag.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-11-03 11:44:53 +0100
committerLaurenz <laurmaedje@gmail.com>2022-11-03 13:35:39 +0100
commit37a7afddfaffd44cb9bc013c9506599267e08983 (patch)
tree20e7d62d3c5418baff01a21d0406b91bf3096214 /src/diag.rs
parent56342bd972a13ffe21beaf2b87ab7eb1597704b4 (diff)
Split crates
Diffstat (limited to 'src/diag.rs')
-rw-r--r--src/diag.rs18
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>>>;