summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/place.tl5
1 files changed, 3 insertions, 2 deletions
diff --git a/stdlib/place.tl b/stdlib/place.tl
index fcc86735..b3b6395f 100644
--- a/stdlib/place.tl
+++ b/stdlib/place.tl
@@ -129,13 +129,14 @@
[sys:r-s-let-expander bindings body e 'let constantp])
(defmacro slet (bindings :env e . body)
- (sys:r-s-let-expander bindings body e 'let [orf constantp bindable]))
+ (sys:r-s-let-expander bindings body e 'let [orf constantp
+ (op lexical-var-p e)]))
(defmacro alet (bindings :env e . body)
(let ((exp-bindings (mapcar (aret ^(,@1 ,(macroexpand @2 e))) bindings)))
(if [some exp-bindings constantp second]
[sys:r-s-let-expander exp-bindings body e 'alet constantp]
- ^(,(if [all exp-bindings bindable second]
+ ^(,(if [all exp-bindings (op lexical-var-p e) second]
'symacrolet 'let)
,exp-bindings ,*body))))