Assertions with custom message

This commit is contained in:
Laurenz 2023-01-27 19:53:04 +01:00
parent 33013af37a
commit 23238d4d44

View File

@ -80,8 +80,13 @@ pub fn repr(args: &mut Args) -> SourceResult<Value> {
#[func]
pub fn assert(args: &mut Args) -> SourceResult<Value> {
let Spanned { v, span } = args.expect::<Spanned<bool>>("condition")?;
let message = args.named::<EcoString>("message")?;
if !v {
bail!(span, "assertion failed");
if let Some(message) = message {
bail!(span, "assertion failed: {}", message);
} else {
bail!(span, "assertion failed");
}
}
Ok(Value::None)
}