walker lambda-list parsingnaïve
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Confirmed
|
Low
|
Unassigned |
Bug Description
affects sbcl
status confirmed
importance low
tag walker lambda
done
The walker doesn't do any sequential processing of bindings (for
&optional, &key, &aux). In the test framework of walk.impure.lisp
(with-
(take-
(lambda (&aux (a 1) (b a)) (declare (special a)) b)))
"Form: (LAMBDA (&AUX (A 1) (B A)) (DECLARE (SPECIAL A)) B) Context: EVAL
Form: 1 Context: EVAL
Form: A Context: EVAL
Form: B Context: EVAL; lexically bound
(LAMBDA (&AUX (A 1) (B A)) (DECLARE (SPECIAL A)) B)"
the A line should have both “lexically bound” and “declared special” by
it.
Fixing this would share code with the hairy-specials test case
which currently exists in the walker test suite.