Fix define-transform bug

release
Slava Pestov 2007-10-10 01:53:55 -04:00
parent 8761885287
commit c84ba1d76b
3 changed files with 14 additions and 6 deletions

View File

@ -273,3 +273,9 @@ USE: sorting.private
10 20 >vector <flat-slice>
[ [ - ] swap old-binsearch ] compile-1 2nip
] unit-test
! Regression
[ 1 2 { real imaginary } ] [
C{ 1 2 }
[ { real imaginary } [ get-slots ] keep ] compile-1
] unit-test

View File

@ -347,6 +347,9 @@ DEFER: bar
[ t ] [ [ [ r> ] infer short-effect ] catch inference-error? ] unit-test
! Regression
[ t ] [ [ [ get-slots ] infer ] catch inference-error? ] unit-test
! Test some curry stuff
[ { 1 1 } ] [ [ 3 [ ] curry 4 [ ] curry if ] infer short-effect ] unit-test

View File

@ -6,12 +6,11 @@ inference.dataflow tuples.private ;
IN: inference.transforms
: pop-literals ( n -- rstate seq )
dup zero? [ drop recursive-state get f ] [
[ ensure-values ] keep
[ d-tail ] keep
(consume-values)
dup [ value-literal ] map
swap first value-recursion swap
dup zero? [
drop recursive-state get { }
] [
dup ensure-values
f swap [ 2drop pop-literal ] map reverse
] if ;
: transform-quot ( quot n -- newquot )