Fix littledan bug #1

db4
Slava Pestov 2008-01-30 14:23:48 -06:00
parent 3b793b8474
commit d8d87fe834
2 changed files with 6 additions and 2 deletions

View File

@ -19,8 +19,8 @@ SYMBOL: compiled
: queue-compile ( word -- ) : queue-compile ( word -- )
{ {
{ [ dup compiled get key? ] [ drop ] } { [ dup compiled get key? ] [ drop ] }
{ [ dup inlined-block? ] [ drop ] }
{ [ dup primitive? ] [ drop ] } { [ dup primitive? ] [ drop ] }
{ [ dup deferred? ] [ drop ] }
{ [ t ] [ dup compile-queue get set-at ] } { [ t ] [ dup compile-queue get set-at ] }
} cond ; } cond ;

View File

@ -402,10 +402,14 @@ TUPLE: recursive-declare-error word ;
dup node-param #return node, dup node-param #return node,
dataflow-graph get 1array over set-node-children ; dataflow-graph get 1array over set-node-children ;
: inlined-block? "inlined-block" word-prop ;
: <inlined-block> gensym dup t "inlined-block" set-word-prop ;
: inline-block ( word -- node-block data ) : inline-block ( word -- node-block data )
[ [
copy-inference nest-node copy-inference nest-node
dup word-def swap gensym dup word-def swap <inlined-block>
[ infer-quot-recursive ] 2keep [ infer-quot-recursive ] 2keep
#label unnest-node #label unnest-node
] H{ } make-assoc ; ] H{ } make-assoc ;