1.0.48.21: explicitly indefinite-extent leaves, safer dynamic-extent &REST
[sbcl.git] / src / compiler / node.lisp
index f9de316..1d5f635 100644 (file)
   ;; be true when REFS and SETS are null, since code can be deleted.
   (ever-used nil :type boolean)
   ;; is it declared dynamic-extent, or truly-dynamic-extent?
-  (dynamic-extent nil :type (member nil t :truly))
+  (extent nil :type (member nil :maybe-dynamic :always-dynamic :indefinite))
   ;; some kind of info used by the back end
   (info nil))
 
+(defun leaf-dynamic-extent (leaf)
+  (let ((extent (leaf-extent leaf)))
+    (unless (member extent '(nil :indefinite))
+      extent)))
+
 ;;; LEAF name operations
 ;;;
 ;;; KLUDGE: wants CLOS..