X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-cltl2%2Fenv.lisp;h=7b479c855616a489a47203f79e848ac9183e738d;hb=760de025ce5437902c8a289bc831c6f6dc92fd16;hp=06e494b1db28ce58b72fd5335cca2bcb151f231c;hpb=5d4cadcc92642f2a23743a5458a23aa9dc544db2;p=sbcl.git diff --git a/contrib/sb-cltl2/env.lisp b/contrib/sb-cltl2/env.lisp index 06e494b..7b479c8 100644 --- a/contrib/sb-cltl2/env.lisp +++ b/contrib/sb-cltl2/env.lisp @@ -155,7 +155,7 @@ nil)) -(declaim (ftype (sfunction (symbol &optional (or null lexenv)) +(declaim (ftype (sfunction ((or symbol cons) &optional (or null lexenv)) (values (member nil :function :macro :special-form) boolean list)) @@ -254,7 +254,7 @@ appear." (declaim (ftype (sfunction (symbol &optional (or null lexenv)) - (values (member nil :special :lexical :symbol-macro :constant :global) + (values (member nil :special :lexical :symbol-macro :constant :global :alien) boolean list)) variable-information)) @@ -284,6 +284,9 @@ binding: :GLOBAL NAME refers to a global variable. (SBCL specific extension.) + :ALIEN + NAME refers to an alien variable. (SBCL specific extension.) + The second value is true if NAME is bound locally. This is currently always NIL for special variables, although arguably it should be T when there is a lexically apparent binding for the special variable. @@ -386,7 +389,7 @@ the condition types that have been muffled." (let ((policy (sb-c::lexenv-policy env))) (collect ((res)) (dolist (name sb-c::*policy-qualities*) - (res (list name (cdr (assoc name policy))))) + (res (list name (sb-c::policy-quality policy name)))) (loop for (name . nil) in sb-c::*policy-dependent-qualities* do (res (list name (sb-c::policy-quality policy name)))) (res))))