aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/control/exception.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/control/exception.lux')
-rw-r--r--stdlib/source/lux/control/exception.lux6
1 files changed, 6 insertions, 0 deletions
diff --git a/stdlib/source/lux/control/exception.lux b/stdlib/source/lux/control/exception.lux
index 2ca06defa..80ddeed35 100644
--- a/stdlib/source/lux/control/exception.lux
+++ b/stdlib/source/lux/control/exception.lux
@@ -71,6 +71,12 @@
(All [e] (-> (Exception e) e Error))
(#/.Error (construct exception message)))
+(def: #export (assert exception message test)
+ (All [e] (-> (Exception e) e Bool (Error Any)))
+ (if test
+ (#/.Success [])
+ (..throw exception message)))
+
(syntax: #export (exception: {export csr.export}
{t-vars (p.default (list) csr.type-variables)}
{[name inputs] (p.either (p.seq s.local-symbol (wrap (list)))