diff --git a/src/boot/boot.janet b/src/boot/boot.janet index 461e8928..0dced169 100644 --- a/src/boot/boot.janet +++ b/src/boot/boot.janet @@ -154,11 +154,6 @@ ,v (,error ,(if err err (string/format "assert failure in %j" x)))))) -(defmacro assertf - "Convenience macro that combines `assert` and `string/format`." - [x & args] - ~(as-macro ,assert ,x (,string/format ,;args))) - (defmacro defdyn ``Define an alias for a keyword that is used as a dynamic binding. The alias is a normal, lexically scoped binding that can be used instead of @@ -210,14 +205,14 @@ (error (string/format fmt ;args))) (defmacro assertf - "Throw an error if x is not truthy. Will not evaluate `err` if x is truthy." + "Convenience macro that combines `assert` and `string/format`." [x fmt & args] (def v (gensym)) ~(do (def ,v ,x) (if ,v ,v - (,error (,string/format ,fmt ,;args))))) + (,errorf ,fmt ,;args)))) (defmacro default ``Define a default value for an optional argument. diff --git a/test/suite-boot.janet b/test/suite-boot.janet index 2168c410..a598d827 100644 --- a/test/suite-boot.janet +++ b/test/suite-boot.janet @@ -998,11 +998,10 @@ (setdyn *debug* nil) # issue #1516 -(assert (assertf true) "assertf 1 argument") +(assert-error "assertf 1 argument" (macex '(assertf true))) (assert (assertf true "fun message") "assertf 2 arguments") (assert (assertf true "%s message" "mystery") "assertf 3 arguments") (assert (assertf (not nil) "%s message" "ordinary") "assertf not nil") -(assert-error "assertf error 1" (assertf false)) (assert-error "assertf error 2" (assertf false "fun message")) (assert-error "assertf error 3" (assertf false "%s message" "mystery")) (assert-error "assertf error 4" (assertf nil "%s %s" "alice" "bob"))