X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fcode%2Fparse-defmacro.lisp;h=378d0ec3546da260a7ce214d6cb458fd15488394;hb=722703e7cbd3a4b279a4c1baab5d95df2c23cce9;hp=ca00f448e52d3bcb258b87705450205c4f08d21a;hpb=8286d1fc02d1e769a766fbf1670bca474237161f;p=sbcl.git diff --git a/src/code/parse-defmacro.lisp b/src/code/parse-defmacro.lisp index ca00f44..378d0ec 100644 --- a/src/code/parse-defmacro.lisp +++ b/src/code/parse-defmacro.lisp @@ -239,6 +239,18 @@ *arg-tests*))) (values env-arg-used minimum explicit-maximum)))) +;;; We save space in macro definitions by calling this function. +(defun arg-count-error (error-kind name args lambda-list minimum maximum) + (let (#-sb-xc-host + (sb!debug:*stack-top-hint* (nth-value 1 (find-caller-name-and-frame)))) + (error 'arg-count-error + :kind error-kind + :name name + :args args + :lambda-list lambda-list + :minimum minimum + :maximum maximum))) + (defun push-sub-list-binding (variable path object name error-kind error-fun) (let ((var (gensym "TEMP-"))) (push `(,variable