More inference bug fixes

release
Slava Pestov 2007-09-27 16:11:03 -04:00
parent cdad6df422
commit 83f552fae8
3 changed files with 8 additions and 7 deletions

View File

@ -68,9 +68,7 @@ M: object infer-call
apply-object apply-object
] [ ] [
drop drop
[ "execute must be given a word" throw ] "execute must be given a word" time-bomb
recursive-state get
infer-quot
] if ] if
] "infer" set-word-prop ] "infer" set-word-prop

View File

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

View File

@ -75,7 +75,7 @@ H{ } clone objc-methods set-global
[ \ <super> , ] when [ \ <super> , ] when
swap cache-selector , \ selector , swap cache-selector , \ selector ,
] [ ] make ] [ ] make
swap second length 2 - [ ndip ] curry ; swap second length 2 - [ ndip ] 2curry ;
MACRO: (send) ( selector super? -- quot ) MACRO: (send) ( selector super? -- quot )
[ [