X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir1tran.lisp;h=22654d10e31714d03fde3d7b4b9e2ae104347159;hb=ff92598854bf7cae8d57fe49cef4d9a98e1ab345;hp=37ddb427cbee20c6f50bf36cf89b5f898e1ce9c1;hpb=8b64d57b865fec6ba082dda965146b5e8aa877b3;p=sbcl.git diff --git a/src/compiler/ir1tran.lisp b/src/compiler/ir1tran.lisp index 37ddb42..22654d1 100644 --- a/src/compiler/ir1tran.lisp +++ b/src/compiler/ir1tran.lisp @@ -922,6 +922,9 @@ (collect ((restr nil cons) (new-vars nil cons)) (dolist (var-name (rest decl)) + (when (boundp var-name) + (with-single-package-locked-error + (:symbol var-name "declaring the type of ~A"))) (let* ((bound-var (find-in-bindings vars var-name)) (var (or bound-var (lexenv-find var-name vars) @@ -982,6 +985,9 @@ (let ((type (compiler-specifier-type spec))) (collect ((res nil cons)) (dolist (name names) + (when (fboundp name) + (with-single-package-locked-error + (:symbol name "declaring the ftype of ~A"))) (let ((found (find name fvars :key #'leaf-source-name :test #'equal))) @@ -1006,6 +1012,8 @@ (declare (list spec vars) (type lexenv res)) (collect ((new-venv nil cons)) (dolist (name (cdr spec)) + (with-single-package-locked-error + (:symbol name "declaring ~A special")) (let ((var (find-in-bindings vars name))) (etypecase var (cons @@ -1202,6 +1210,11 @@ (dynamic-extent (process-dx-decl (cdr spec) vars) res) + ((disable-package-locks enable-package-locks) + (make-lexenv + :default res + :disabled-package-locks (process-package-lock-decl + spec (lexenv-disabled-package-locks res)))) (t (unless (info :declaration :recognized (first spec)) (compiler-warn "unrecognized declaration ~S" raw-spec))