X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fdestructuring-bind.lisp;h=c485b75e77d922bb0b246935e9d4168990e7323e;hb=54da325f13fb41669869aea688ae195426c0e231;hp=4ea6b48f7c2f12ebef816a28ff8d681642bef2f9;hpb=8bcffb407835ff680d5ee2ba1f7ce97839bbae3e;p=sbcl.git diff --git a/src/code/destructuring-bind.lisp b/src/code/destructuring-bind.lisp index 4ea6b48..c485b75 100644 --- a/src/code/destructuring-bind.lisp +++ b/src/code/destructuring-bind.lisp @@ -9,7 +9,7 @@ (in-package "SB!IMPL") -(defmacro-mundanely destructuring-bind (lambda-list expression &rest body) +(defmacro-mundanely destructuring-bind (lambda-list expression &body body) #!+sb-doc "Bind the variables in LAMBDA-LIST to the corresponding values in the tree structure resulting from the evaluation of EXPRESSION." @@ -20,5 +20,8 @@ tree structure resulting from the evaluation of EXPRESSION." :doc-string-allowed nil :wrap-block nil) `(let ((,whole-name ,expression)) + ;; This declaration-as-assertion should protect us from + ;; (DESTRUCTURING-BIND (X . Y) 'NOT-A-LIST ...). + (declare (type list ,whole-name)) ,@local-decls ,body))))