Update of /project/movitz/cvsroot/movitz In directory common-lisp.net:/tmp/cvs-serv4007
Modified Files: compiler-types.lisp Log Message: Improved member-type-encode to ensure that member objects are proper movitz-objects.
Date: Sat Feb 14 08:56:19 2004 Author: ffjeld
Index: movitz/compiler-types.lisp diff -u movitz/compiler-types.lisp:1.5 movitz/compiler-types.lisp:1.6 --- movitz/compiler-types.lisp:1.5 Thu Feb 12 12:51:41 2004 +++ movitz/compiler-types.lisp Sat Feb 14 08:56:19 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Wed Sep 10 00:40:07 2003 ;;;; -;;;; $Id: compiler-types.lisp,v 1.5 2004/02/12 17:51:41 ffjeld Exp $ +;;;; $Id: compiler-types.lisp,v 1.6 2004/02/14 13:56:19 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -536,15 +536,16 @@ (multiple-value-bind (code integer-range members include complement) (type-specifier-encode nil) (dolist (x member-objects) - (multiple-value-setq (code integer-range members include complement) - (multiple-value-call #'encoded-types-or - code integer-range members include complement - (etypecase x - (movitz-fixnum - (type-values () :integer-range (make-numscope (movitz-fixnum-value x) - (movitz-fixnum-value x)))) - (movitz-object - (type-values () :members (list x))))))) + (let ((member (movitz-read x))) + (multiple-value-setq (code integer-range members include complement) + (multiple-value-call #'encoded-types-or + code integer-range members include complement + (etypecase member + (movitz-fixnum + (type-values () :integer-range (make-numscope (movitz-fixnum-value member) + (movitz-fixnum-value member)))) + (movitz-object + (type-values () :members (list member)))))))) (values code integer-range members include complement)))
(defun encoded-emptyp (code integer-range members include complement)