Skip to content
This repository was archived by the owner on Sep 13, 2019. It is now read-only.

Commit 2e4a5de

Browse files
committed
expander: fix internal procedure-shape check
1 parent 1fbf7f2 commit 2e4a5de

File tree

4 files changed

+723
-704
lines changed

4 files changed

+723
-704
lines changed

racket/src/expander/compile/side-effect.rkt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,13 @@
327327
(and (pair? (correlated-e expr))
328328
(eq? 'lambda (car (correlated-e expr)))
329329
(or (not arity)
330-
(= arity (length (correlated->list (cadr (correlated->list expr)))))))))
330+
(let loop ([args (cadr (correlated->list expr))]
331+
[arity arity])
332+
(cond
333+
[(correlated? args) (loop (correlated-e args) arity)]
334+
[(null? args) (zero? arity)]
335+
[(pair? args) (loop (cdr args) (sub1 arity))]
336+
[else (not (negative? arity))]))))))
331337

332338
(define (arity-includes? a n)
333339
(or (equal? a n)

racket/src/expander/expand/module.rkt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
"../eval/top.rkt"
3535
"../eval/module.rkt"
3636
"cross-phase.rkt"
37-
"../syntax/debug.rkt"
3837
"parsed.rkt"
3938
"expanded+parsed.rkt"
4039
"append.rkt"

racket/src/expander/host/correlate.rkt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
[(pair? e) (cons (car e) (loop (cdr e)))]
8686
[(null? e) null]
8787
[(syntax? e) (loop (syntax-e e))]
88-
[else (error 'correlate->list "not a list")])))
88+
[else (error 'correlated->list "not a list")])))
8989

9090
(define (correlated->datum e)
9191
(datum-map e (lambda (tail? d)

0 commit comments

Comments
 (0)