X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fgeneric%2Fearly-type-vops.lisp;h=b84493d75ae508c9a951d032894a820ae681ecfb;hb=7f579b076a1fc54587538ead07e506e7f06f3fe8;hp=77096808733ca49fe788818979c3eec48e86905d;hpb=f1ffbf976aaa50b7b22f126b97e34afe06a91210;p=sbcl.git diff --git a/src/compiler/generic/early-type-vops.lisp b/src/compiler/generic/early-type-vops.lisp index 7709680..b84493d 100644 --- a/src/compiler/generic/early-type-vops.lisp +++ b/src/compiler/generic/early-type-vops.lisp @@ -48,8 +48,9 @@ &key &allow-other-keys) ;; Determine what interesting combinations we need to test for. (let* ((type-codes (mapcar #'eval type-codes)) - (fixnump (and (member even-fixnum-lowtag type-codes) - (member odd-fixnum-lowtag type-codes) + (fixnump (and (every (lambda (lowtag) + (member lowtag type-codes)) + '#.(mapcar #'symbol-value fixnum-lowtags)) t)) (lowtags (remove lowtag-limit type-codes :test #'<)) (extended (remove lowtag-limit type-codes :test #'>)) @@ -66,8 +67,7 @@ (cond (fixnump (when (remove-if (lambda (x) - (or (= x even-fixnum-lowtag) - (= x odd-fixnum-lowtag))) + (member x '#.(mapcar #'symbol-value fixnum-lowtags))) lowtags) (error "can't mix fixnum testing with other lowtags")) (when function-p