Commit b413f159 authored by levente.meszaros's avatar levente.meszaros
Browse files

More liberal handling of literal AST nodes for qq in with-macros.

Ignore-this: 43e0583601bda91b130e2ad4c3793d5c

darcs-hash:6a32d33d3bef353f7864ce82adc6e1aef48bba34
parent f7a5b54b
Loading
Loading
Loading
Loading
+31 −27
Original line number Diff line number Diff line
@@ -242,7 +242,7 @@ like #'eq and 'eq."
      (bind ((call-funcion-name (format-symbol *package* "CALL-~A" name))
             (inner-arguments 'undefined))
        (labels ((process-body (form)
                   (if (consp form)
                   (cond ((consp form)
                          (cond
                            ((eq (first form) '-body-)
                             (unless (or (eq inner-arguments 'undefined)
@@ -269,8 +269,12 @@ like #'eq and 'eq."
                                     ((cdr entry)
                                      (setf (cdr (last result)) (cdr entry))
                                      (return result))
                                  (t (return result))))))
                       form)))
                                     (t (return result)))))))
                         ((typep form 'standard-object)
                          ;; NOTE: to avoid warning for quasi-quote literal STANDARD-OBJECT AST nodes wrapping -body-
                          (setf inner-arguments nil)
                          form)
                         (t form))))
          (setf body (process-body body))
          (when (eq inner-arguments 'undefined)
            (simple-style-warning "You probably want to have at least one (-body-) form in the body of a WITH-MACRO to invoke the user provided body...")