0.6.11.13:
[sbcl.git] / src / compiler / constraint.lisp
index 47a96c1..4e4e98a 100644 (file)
 
 (in-package "SB!C")
 
-(file-comment
-  "$Header$")
-
 (defstruct (constraint
            (:include sset-element)
-           (:constructor make-constraint (number kind x y not-p)))
-  ;; The kind of constraint we have:
+           (:constructor make-constraint (number kind x y not-p))
+           (:copier nil))
+  ;; the kind of constraint we have:
   ;;
   ;; TYPEP
   ;;     X is a LAMBDA-VAR and Y is a CTYPE. The value of X is 
   ;;     constrained to be of type Y.
   ;;
-  ;; >, <
+  ;; > or <
   ;;     X is a lambda-var and Y is a CTYPE. The relation holds 
   ;;     between X and some object of type Y.
   ;;
            (typep
             (if not-p
                 (setq not-res (type-union not-res other))
-                (setq res (type-intersection res other))))
+                (setq res (type-approx-intersection2 res other))))
            (eql
             (let ((other-type (leaf-type other)))
               (if not-p