[movitz-cvs] CVS update: movitz/compiler-types.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Sat Feb 14 13:56:20 UTC 2004
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 at 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)
More information about the Movitz-cvs
mailing list