X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fconstraint.lisp;h=4e4e98a0596cf7ede349bf7c505b90daa29b93e8;hb=ce02ab2ecd9c6ae2e570abd8c93ebf3be55bbdad;hp=47a96c1a87ad3a4b446a06549708e8117f628a4f;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/compiler/constraint.lisp b/src/compiler/constraint.lisp index 47a96c1..4e4e98a 100644 --- a/src/compiler/constraint.lisp +++ b/src/compiler/constraint.lisp @@ -13,19 +13,17 @@ (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. ;; @@ -353,7 +351,7 @@ (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