mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-15 08:47:35 +02:00
Warn if not enough args passed
This commit is contained in:
parent
365b19fca7
commit
bbbe9ecd40
1 changed files with 15 additions and 4 deletions
|
@ -1353,6 +1353,19 @@ if (acc) {
|
||||||
((and (app? ast)
|
((and (app? ast)
|
||||||
(lambda? (app->fun ast))
|
(lambda? (app->fun ast))
|
||||||
(equal? 'args:fixed-with-varargs (lambda-formals-type (app->fun ast))))
|
(equal? 'args:fixed-with-varargs (lambda-formals-type (app->fun ast))))
|
||||||
|
(let ((lam-min-num-args (lambda-num-args (app->fun ast)))
|
||||||
|
(num-args (length (app->args ast)))
|
||||||
|
(ltype (lambda-formals-type (app->fun ast))))
|
||||||
|
(cond
|
||||||
|
((< num-args lam-min-num-args)
|
||||||
|
(error
|
||||||
|
(string-append
|
||||||
|
"Not enough arguments passed to anonymous lambda. "
|
||||||
|
"Expected "
|
||||||
|
(number->string lam-min-num-args)
|
||||||
|
" but received "
|
||||||
|
(number->string num-args))
|
||||||
|
(app->fun ast)))))
|
||||||
(let* ((fn (app->fun ast))
|
(let* ((fn (app->fun ast))
|
||||||
(formals (lambda->formals fn))
|
(formals (lambda->formals fn))
|
||||||
(formals-lis (pair->list formals)) ;; Formals as proper list
|
(formals-lis (pair->list formals)) ;; Formals as proper list
|
||||||
|
@ -1399,8 +1412,7 @@ if (acc) {
|
||||||
"Expected "
|
"Expected "
|
||||||
(number->string lam-min-num-args)
|
(number->string lam-min-num-args)
|
||||||
" but received "
|
" but received "
|
||||||
(number->string num-args)
|
(number->string num-args))
|
||||||
":")
|
|
||||||
fn))
|
fn))
|
||||||
((and (> num-args lam-min-num-args)
|
((and (> num-args lam-min-num-args)
|
||||||
(equal? 'args:fixed ltype))
|
(equal? 'args:fixed ltype))
|
||||||
|
@ -1410,8 +1422,7 @@ if (acc) {
|
||||||
"Expected "
|
"Expected "
|
||||||
(number->string lam-min-num-args)
|
(number->string lam-min-num-args)
|
||||||
" but received "
|
" but received "
|
||||||
(number->string num-args)
|
(number->string num-args))
|
||||||
":")
|
|
||||||
fn)))
|
fn)))
|
||||||
;; Do conversion
|
;; Do conversion
|
||||||
(cps-list (app->args ast)
|
(cps-list (app->args ast)
|
||||||
|
|
Loading…
Add table
Reference in a new issue