mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-21 22:59:16 +02:00
Merge pull request #462 from katterjohn/master
Check for valid "rest" parameters in parameter lists
This commit is contained in:
commit
731c544872
1 changed files with 6 additions and 0 deletions
6
eval.c
6
eval.c
|
@ -806,6 +806,12 @@ static sexp analyze_lambda (sexp ctx, sexp x, int depth) {
|
|||
sexp_return(res, sexp_compile_error(ctx, "non-symbol parameter", x));
|
||||
else if (sexp_truep(sexp_memq(ctx, sexp_car(ls), sexp_cdr(ls))))
|
||||
sexp_return(res, sexp_compile_error(ctx, "duplicate parameter", x));
|
||||
if (! sexp_nullp(ls)) {
|
||||
if (! sexp_idp(ls))
|
||||
sexp_return(res, sexp_compile_error(ctx, "non-symbol parameter", x));
|
||||
else if (sexp_truep(sexp_memq(ctx, ls, sexp_cadr(x))))
|
||||
sexp_return(res, sexp_compile_error(ctx, "duplicate parameter", x));
|
||||
}
|
||||
/* build lambda and analyze body */
|
||||
res = sexp_make_lambda(ctx, tmp=sexp_copy_list(ctx, sexp_cadr(x)));
|
||||
if (sexp_exceptionp(res)) sexp_return(res, res);
|
||||
|
|
Loading…
Add table
Reference in a new issue