Add check that effect lists have same length.
This commit is contained in:
parent
f9c91d6b8a
commit
8599321b57
|
@ -105,6 +105,7 @@
|
||||||
[(_ _) (fail! t s)]))
|
[(_ _) (fail! t s)]))
|
||||||
|
|
||||||
(define (cgen/eff/list V X ts ss)
|
(define (cgen/eff/list V X ts ss)
|
||||||
|
(unless (= (length ts) (length ss)) (fail! ts ss))
|
||||||
(cset-meet* (for/list ([t ts] [s ss]) (cgen/eff V X t s))))
|
(cset-meet* (for/list ([t ts] [s ss]) (cgen/eff V X t s))))
|
||||||
|
|
||||||
(define (cgen/arr V X t-arr s-arr)
|
(define (cgen/arr V X t-arr s-arr)
|
||||||
|
@ -287,7 +288,7 @@
|
||||||
(cg b1 b2*))]
|
(cg b1 b2*))]
|
||||||
|
|
||||||
[((Poly: v1 b1) T)
|
[((Poly: v1 b1) T)
|
||||||
(debug (cgen (append v1 V) X b1 T))]
|
(cgen (append v1 V) X b1 T)]
|
||||||
|
|
||||||
#;[((PolyDots: (list v1 ... r1) b1) T)
|
#;[((PolyDots: (list v1 ... r1) b1) T)
|
||||||
(let ([b1* (var-demote b1 (cons r1 v1))])
|
(let ([b1* (var-demote b1 (cons r1 v1))])
|
||||||
|
@ -484,4 +485,4 @@
|
||||||
(define (i s t r)
|
(define (i s t r)
|
||||||
(infer/simple (list s) (list t) r))
|
(infer/simple (list s) (list t) r))
|
||||||
|
|
||||||
;(trace cgen/arr cgen #;cgen/list)
|
;(trace cgen/arr #;cgen #;cgen/list)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user