]> gitweb.factorcode.org Git - factor.git/commitdiff
make-mirror method on structs. fix typo on struct-slots stack effect. don't filter...
authorDoug Coleman <doug.coleman@gmail.com>
Mon, 31 Aug 2009 23:51:47 +0000 (18:51 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Mon, 31 Aug 2009 23:51:47 +0000 (18:51 -0500)
basis/classes/struct/prettyprint/prettyprint.factor
basis/classes/struct/struct.factor
basis/mirrors/mirrors.factor

index 1769fafe06ea716dda4f89848dd7d14c875400b8..0334b19ddd45bacd9957340098f8c006257df26f 100644 (file)
@@ -12,7 +12,7 @@ IN: classes.struct.prettyprint
     [ drop \ STRUCT: ] if ;
 
 : struct>assoc ( struct -- assoc )
-    [ class struct-slots ] [ struct-slot-values ] bi zip filter-tuple-assoc ;
+    [ class struct-slots ] [ struct-slot-values ] bi zip ;
 
 : pprint-struct-slot ( slot -- )
     <flow \ { pprint-word
index 87813f792f828003a1890a44d88575a2f132b689..731f3057485c8c0a40fcdcc2f9bb00bc0131bd51 100644 (file)
@@ -23,7 +23,7 @@ TUPLE: struct-slot-spec < slot-spec
 PREDICATE: struct-class < tuple-class
     { [ \ struct subclass-of? ] [ all-slots length 1 = ] } 1&& ;
 
-: struct-slots ( struct -- slots )
+: struct-slots ( struct-class -- slots )
     "struct-slots" word-prop ;
 
 ! struct allocation
index 25486d127deb83c5bfc1ebd8b6e6d53ee545a139..effcc51caa9d37017ded16cd578989d393cd3517 100644 (file)
@@ -1,9 +1,9 @@
 ! Copyright (C) 2007, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: assocs hashtables kernel sequences generic words
-arrays classes slots slots.private classes.tuple
-classes.tuple.private math vectors quotations accessors
-combinators ;
+USING: accessors arrays assocs classes classes.struct
+classes.struct.prettyprint.private classes.tuple
+classes.tuple.private combinators generic hashtables kernel
+math quotations sequences slots slots.private vectors words ;
 IN: mirrors
 
 TUPLE: mirror { object read-only } ;
@@ -55,3 +55,4 @@ M: array make-mirror <enum> ;
 M: vector make-mirror <enum> ;
 M: quotation make-mirror <enum> ;
 M: object make-mirror <mirror> ;
+M: struct make-mirror struct>assoc [ [ class>> ] dip ] assoc-map ;