X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=contrib%2Fsb-cltl2%2Ftests.lisp;h=ec5e8c96df99cc2e9c946c1ae27f68d5863869c0;hb=c0578d9893429c9c0da80ea5920360e4621fddab;hp=ac775c9c08afa6c6a8ce8ac54f9a328bc0e89091;hpb=6256e8428635bbbca648ed3ff59e810bd1d792ad;p=sbcl.git diff --git a/contrib/sb-cltl2/tests.lisp b/contrib/sb-cltl2/tests.lisp index ac775c9..ec5e8c9 100644 --- a/contrib/sb-cltl2/tests.lisp +++ b/contrib/sb-cltl2/tests.lisp @@ -6,7 +6,7 @@ ;;;; more information. (defpackage :sb-cltl2-tests - (:use :sb-cltl2 :cl :sb-rt)) + (:use :sb-cltl2 :cl :sb-rt :sb-ext)) (in-package :sb-cltl2-tests) @@ -98,12 +98,14 @@ (dinfo sb-ext:muffle-conditions)) warning) (deftest declaration-information.muffle-conditions.2 - (locally (declare (sb-ext:muffle-conditions warning)) + (let ((junk (dinfo sb-ext:muffle-conditions))) + (declare (sb-ext:muffle-conditions warning)) (locally (declare (sb-ext:unmuffle-conditions style-warning)) (let ((dinfo (dinfo sb-ext:muffle-conditions))) (not (not - (and (subtypep dinfo '(and warning (not style-warning))) + (and (subtypep dinfo `(or (and warning (not style-warning)) + (and ,junk (not style-warning)))) (subtypep '(and warning (not style-warning)) dinfo))))))) t) @@ -166,6 +168,26 @@ (var-info x)) (:lexical t nil)) +(deftest variable-info.lexical.type + (let ((x 42)) + (declare (fixnum x)) + (var-info x)) + (:lexical t ((type . fixnum)))) + +(deftest variable-info.lexical.type.2 + (let ((x 42)) + (prog1 + (var-info x) + (locally (declare (fixnum x)) + (assert (plusp x))))) + (:lexical t nil)) + +(deftest variable-info.lexical.type.2 + (let ((x 42)) + (locally (declare (fixnum x)) + (var-info x))) + (:lexical t ((type . fixnum)))) + (deftest variable-info.ignore (let ((x 8)) (declare (ignore x)) @@ -187,6 +209,16 @@ (var-info #:undefined) (nil nil nil)) +(declaim (global this-is-global)) +(deftest global-variable + (var-info this-is-global) + (:global nil nil)) + +(defglobal this-is-global-too 42) +(deftest global-variable.2 + (var-info this-is-global-too) + (:global nil ((always-bound . t)))) + ;;;; FUNCTION-INFORMATION (defmacro fun-info (var &environment env) @@ -247,4 +279,3 @@ (fun-info identity)) (:function nil ((inline . inline) (ftype function (t) (values t &optional))))) -