diff --git a/compiler/old-rt/vm.lisp b/compiler/old-rt/vm.lisp index 6b5ce5d033f2952f17aa07253916080907f3f06f..3103d2e6e0b5dd949f134417f92eb354b85c09fa 100644 --- a/compiler/old-rt/vm.lisp +++ b/compiler/old-rt/vm.lisp @@ -192,13 +192,12 @@ (let ((types (union-type-types type))) (multiple-value-bind (res exact) (primitive-type (first types)) - (dolist (type (rest types)) + (dolist (type (rest types) (values res exact)) (multiple-value-bind (ptype ptype-exact) (primitive-type type) (unless ptype-exact (setq exact nil)) (unless (eq ptype res) - (return (values *any-primitive-type* nil))))) - (values res exact))))) + (return (values *any-primitive-type* nil))))))))) (member-type (let* ((members (member-type-members type)) (res (primitive-type-of (first members))))