cptypes: fix arity in primitive reduction
This commit is contained in:
parent
c64bf5d961
commit
9079d1b3d7
|
@ -1284,12 +1284,13 @@ Notes:
|
||||||
(define (fold-primref/next preinfo pr e* ctxt oldtypes plxc)
|
(define (fold-primref/next preinfo pr e* ctxt oldtypes plxc)
|
||||||
(let-values ([(t e* r* t* t-t* f-t*)
|
(let-values ([(t e* r* t* t-t* f-t*)
|
||||||
(map-Expr/delayed e* oldtypes plxc)])
|
(map-Expr/delayed e* oldtypes plxc)])
|
||||||
(let ([ret (primref->result-predicate pr (length e*))])
|
(let* ([len (length e*)]
|
||||||
|
[ret (primref->result-predicate pr len)])
|
||||||
(let-values ([(ret t)
|
(let-values ([(ret t)
|
||||||
(let loop ([e* e*] [r* r*] [n 0] [ret ret] [t t])
|
(let loop ([e* e*] [r* r*] [n 0] [ret ret] [t t])
|
||||||
(if (null? e*)
|
(if (null? e*)
|
||||||
(values ret t)
|
(values ret t)
|
||||||
(let ([pred (primref->argument-predicate pr n (length e*) #t)])
|
(let ([pred (primref->argument-predicate pr n len #t)])
|
||||||
(loop (cdr e*)
|
(loop (cdr e*)
|
||||||
(cdr r*)
|
(cdr r*)
|
||||||
(fx+ n 1)
|
(fx+ n 1)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user