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) |