X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcold%2Fwith-stuff.lisp;h=11965fbaeaa4452dd8fc8206255b750a180a6a9c;hb=f1407e424f1063203af07d2e61ceef58515a4797;hp=0e39e3a0c54635b64cb6c1297c28a8d0de22b5d7;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/cold/with-stuff.lisp b/src/cold/with-stuff.lisp index 0e39e3a..11965fb 100644 --- a/src/cold/with-stuff.lisp +++ b/src/cold/with-stuff.lisp @@ -12,8 +12,6 @@ (in-package "SB-COLD") -;;;; $Header$ - ;;; a helper macro for WITH-ADDITIONAL-NICKNAME and WITHOUT-SOME-NICKNAME (defmacro with-given-nicknames ((package-designator nicknames) &body body) (let ((p (gensym "P")) @@ -67,13 +65,17 @@ ;;; helper functions for WITH-ADDITIONAL-NICKNAMES and WITHOUT-GIVEN-NICKNAMES (defun %with-additional-nickname (package-designator nickname body-fn) + (declare (type function body-fn)) (with-additional-nickname (package-designator nickname) (funcall body-fn))) (defun %without-given-nickname (package-designator nickname body-fn) + (declare (type function body-fn)) (without-given-nickname (package-designator nickname) (funcall body-fn))) (defun %multi-nickname-magic (nd-list single-nn-fn body-fn) + (declare (type function single-nn-fn)) (labels ((multi-nd (nd-list body-fn) ; multiple nickname descriptors + (declare (type function body-fn)) (if (null nd-list) (funcall body-fn) (single-nd (first nd-list) @@ -83,6 +85,7 @@ (destructuring-bind (package-descriptor nickname-list) nd (multi-nn package-descriptor nickname-list body-fn))) (multi-nn (nn-list package-descriptor body-fn) ; multiple nicknames + (declare (type function body-fn)) (if (null nn-list) (funcall body-fn) (funcall single-nn-fn @@ -97,9 +100,9 @@ (compile '%without-given-nickname) (compile '%multi-nickname-magic) -;;; Like WITH-ADDITIONAL-NICKNAME and WITHOUT-GIVEN-NICKNAMES, except -;;; working on arbitrary lists of nickname descriptors instead of -;;; single nickname/package pairs. +;;; This is like WITH-ADDITIONAL-NICKNAME and WITHOUT-GIVEN-NICKNAMES, +;;; except working on arbitrary lists of nickname descriptors instead +;;; of single nickname/package pairs. ;;; ;;; A nickname descriptor is a list of the form ;;; PACKAGE-DESIGNATOR NICKNAME*