(if body
(list 'if cond (cons 'progn body))
(macroexp-warn-and-return (format-message "`when' with empty body")
- cond '(empty-body when) t)))
+ (list 'progn cond nil) '(empty-body when) t)))
(defmacro unless (cond &rest body)
"If COND yields nil, do BODY, else return nil.
(if body
(cons 'if (cons cond (cons nil body)))
(macroexp-warn-and-return (format-message "`unless' with empty body")
- cond '(empty-body unless) t)))
+ (list 'progn cond nil) '(empty-body unless) t)))
(defsubst subr-primitive-p (object)
"Return t if OBJECT is a built-in primitive written in C.
x)))
(should (= x 2)))
(should (equal (macroexpand-all '(when a b c d))
- '(if a (progn b c d)))))
+ '(if a (progn b c d))))
+ (with-suppressed-warnings ((empty-body when unless))
+ (should (equal (when t) nil))
+ (should (equal (unless t) nil))
+ (should (equal (unless nil) nil))))
(ert-deftest subr-test-xor ()
"Test `xor'."