mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-10 03:03:47 -08:00
In LET/LET* forms, a local binding did not shadow a special variable binding.
> (defun test ()
(let ((a 5))
(declare (special a))
(flet ((x () a))
(let ((a 10))
(x)))))
> (test)
5
> (compile 'test)
> (test)
10
This commit is contained in:
parent
0180c8b0a7
commit
c2d8e70d1b
1 changed files with 1 additions and 1 deletions
|
|
@ -140,7 +140,7 @@
|
|||
(defun special-variable-p (name)
|
||||
(or (si::specialp name)
|
||||
(check-global name)
|
||||
(let ((v (cmp-env-search-var name)))
|
||||
(let ((v (cmp-env-search-var name *cmp-env-root*)))
|
||||
;; Fixme! Revise the declamation code to ensure whether
|
||||
;; we also have to consider 'GLOBAL here.
|
||||
(and v (eq (var-kind v) 'SPECIAL)))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue