cptypes: fix arity in primitive reduction

This commit is contained in:
Gustavo Massaccesi 2021-01-10 09:37:24 -03:00
parent c64bf5d961
commit 9079d1b3d7

View File

@ -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)