diff --git a/expand.scm b/expand.scm
index 150445d..fecf0c5 100644
a
|
b
|
|
386 | 386 | [(1) (loop 1 req (cons (list var #f) opt) '() r)] |
387 | 387 | [(2) (err "invalid lambda list syntax after `#!rest' marker")] |
388 | 388 | [else (loop 3 req opt (cons (list var) key) r)] ) ] |
389 | | [(and (list? var) (eq? 2 (length var))) |
| 389 | [(and (list? var) (eq? 2 (length var)) (symbol? (car var))) |
390 | 390 | (case mode |
391 | 391 | [(0) (err "invalid required argument syntax")] |
392 | 392 | [(1) (loop 1 req (cons var opt) '() r)] |
diff --git a/tests/syntax-tests.scm b/tests/syntax-tests.scm
index 4307f00..ca80ec8 100644
a
|
b
|
|
440 | 440 | (import scheme chicken) |
441 | 441 | ((lambda (#!key string) (assert (not string))))) ; refered to R5RS `string' |
442 | 442 | |
| 443 | ;;; Missing check for keyword and optional variable types in DSSSL llists |
| 444 | |
| 445 | (f (eval '(lambda (foo #!key (0 1)) x))) |
| 446 | (f (eval '(lambda (foo #!optional (0 1)) x))) |
443 | 447 | |
444 | 448 | ;;; compiler didn't resolve expansion into local variable |
445 | 449 | ;;; (reported by Alex Shinn, #15) |