2435
2435
(let* ((argt (something (list (expand-forms (cadr e)) #f )))
2436
2436
(rt_lb (something (list (expand-forms (caddr e)) #f )))
2437
2437
(rt_ub (something (list (expand-forms (cadddr e)) #f )))
2438
- (F (caddddr e))
2438
+ (allow-partial (caddddr e))
2439
+ (F (cadddddr e))
2439
2440
(isva (let* ((arglist (function-arglist F))
2440
2441
(lastarg (and (pair? arglist) (last arglist))))
2441
2442
(if (and argt (any (lambda (arg )
2460
2461
(let* ((argtype (foldl (lambda (var ex ) `(call (core UnionAll) ,var ,ex))
2461
2462
(expand-forms `(curly (core Tuple) ,@argtypes))
2462
2463
(reverse tvars))))
2463
- `(_opaque_closure ,(or argt argtype) ,rt_lb ,rt_ub ,isva ,(length argtypes) ,functionloc ,lam))))
2464
+ `(_opaque_closure ,(or argt argtype) ,rt_lb ,rt_ub ,isva ,(length argtypes) ,allow-partial , functionloc ,lam))))
2464
2465
2465
2466
'block
2466
2467
(lambda (e )
@@ -4028,7 +4029,8 @@ f(x) = yt(x)
4028
4029
((_opaque_closure)
4029
4030
(let* ((isva (car (cddddr e)))
4030
4031
(nargs (cadr (cddddr e)))
4031
- (functionloc (caddr (cddddr e)))
4032
+ (allow-partial (caddr (cddddr e)))
4033
+ (functionloc (cadddr (cddddr e)))
4032
4034
(lam2 (last e))
4033
4035
(vis (lam:vinfo lam2))
4034
4036
(cvs (map car (cadr vis))))
@@ -4040,7 +4042,7 @@ f(x) = yt(x)
4040
4042
v)))
4041
4043
cvs)))
4042
4044
`(new_opaque_closure
4043
- ,(cadr e) ,(or (caddr e) ' (call (core apply_type) (core Union))) ,(or (cadddr e) ' (core Any)) (true)
4045
+ ,(cadr e) ,(or (caddr e) ' (call (core apply_type) (core Union))) ,(or (cadddr e) ' (core Any)) ,allow-partial
4044
4046
(opaque_closure_method (null) ,nargs ,isva ,functionloc ,(convert-lambda lam2 (car (lam:args lam2)) #f '() (symbol-to-idx-map cvs)))
4045
4047
,@var-exprs))))
4046
4048
((method)
0 commit comments