From 7744559a46393b467d595e812eaf92e7340d2453 Mon Sep 17 00:00:00 2001
From: Slava Pestov <slava@slava-pestovs-macbook-pro.local>
Date: Wed, 10 Mar 2010 15:15:49 +1300
Subject: [PATCH] compiler.tree.propagation: clean up

---
 .../tree/propagation/info/info.factor         | 21 ++++++++-----------
 .../tree/propagation/slots/slots.factor       |  2 +-
 2 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/basis/compiler/tree/propagation/info/info.factor b/basis/compiler/tree/propagation/info/info.factor
index b154845c07..22ea1306d6 100644
--- a/basis/compiler/tree/propagation/info/info.factor
+++ b/basis/compiler/tree/propagation/info/info.factor
@@ -47,9 +47,7 @@ CONSTANT: object-info T{ value-info f object full-interval }
             { [ over interval-length 0 > ] [ 3drop f f ] }
             { [ pick bignum class<= ] [ 2nip >bignum t ] }
             { [ pick integer class<= ] [ 2nip >fixnum t ] }
-            { [ pick float class<= ] [
-                2nip dup zero? [ drop f f ] [ >float t ] if
-            ] }
+            { [ pick float class<= ] [ 2nip dup zero? [ drop f f ] [ >float t ] if ] }
             [ 3drop f f ]
         } cond
     ] if ;
@@ -73,9 +71,11 @@ UNION: fixed-length array byte-array string ;
         ] unless
     ] unless ;
 
-: length-slots ( length class -- slots )
-    "slots" word-prop length 1 - f <array>
-    swap prefix ;
+: (slots-with-length) ( length class -- slots )
+    "slots" word-prop length 1 - f <array> swap prefix ;
+
+: slots-with-length ( seq -- slots )
+    [ length <literal-info> ] [ class ] bi (slots-with-length) ;
 
 : init-literal-info ( info -- info )
     empty-interval >>interval
@@ -83,10 +83,7 @@ UNION: fixed-length array byte-array string ;
     dup literal>> {
         { [ dup real? ] [ [a,a] >>interval ] }
         { [ dup tuple? ] [ tuple-slot-infos >>slots ] }
-        { [ dup fixed-length? ] [
-            [ length <literal-info> ] [ class ] bi
-            length-slots >>slots
-        ] }
+        { [ dup fixed-length? ] [ slots-with-length >>slots ] }
         [ drop ]
     } cond ; inline
 
@@ -164,10 +161,10 @@ UNION: fixed-length array byte-array string ;
         t >>literal?
     init-value-info ; foldable
 
-: <sequence-info'> ( length class -- info )
+: <sequence-info> ( length class -- info )
     <value-info>
         over >>class
-        [ length-slots ] dip swap >>slots
+        [ (slots-with-length) ] dip swap >>slots
     init-value-info ;
 
 : <tuple-info> ( slots class -- info )
diff --git a/basis/compiler/tree/propagation/slots/slots.factor b/basis/compiler/tree/propagation/slots/slots.factor
index 6429928294..2602d6d59a 100644
--- a/basis/compiler/tree/propagation/slots/slots.factor
+++ b/basis/compiler/tree/propagation/slots/slots.factor
@@ -23,7 +23,7 @@ IN: compiler.tree.propagation.slots
 : propagate-sequence-constructor ( #call word -- infos )
     [ in-d>> first value-info ]
     [ constructor-output-class ] bi*
-    <sequence-info'> 1array ;
+    <sequence-info> 1array ;
 
 : fold-<tuple-boa> ( values class -- info )
     [ [ literal>> ] map ] dip prefix >tuple