;;;; 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)
(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)
(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))
(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)
(fun-info identity))
(:function nil ((inline . inline)
(ftype function (t) (values t &optional)))))
-