summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2013-07-18 17:31:12 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2013-07-18 17:31:12 +0200
commit044615051f1f574b5055095948c97e9fea4c4872 (patch)
treec95c2f0e1523a70f92970256e9a03f6679660cff
parent65aceb5698c2cf55e1862c2a40df402296d98d45 (diff)
Fix support for ((LAMBDA ...) ...) forms.
-rw-r--r--sb-eval2.lisp7
1 files changed, 3 insertions, 4 deletions
diff --git a/sb-eval2.lisp b/sb-eval2.lisp
index eda3a60..672d784 100644
--- a/sb-eval2.lisp
+++ b/sb-eval2.lisp
@@ -925,7 +925,7 @@
(destructuring-bind (f . args) form
(check-type f (or list symbol))
(let ((local-macro? (context-find-macro context f))
- (global-macro? (macro-function f)))
+ (global-macro? (and (symbolp f) (macro-function f))))
(cond
(local-macro?
(let ((macro-function local-macro?))
@@ -936,9 +936,8 @@
(global-macro?
(prepare-form (funcall global-macro? form (context->native-environment context)) context))
((and (listp f)
- (listp (first f))
- (eq 'lambda (first (first f))))
- (let ((lambda-fn (prepare-lambda (rest (first f)) context)))
+ (eq 'lambda (first f)))
+ (let ((lambda-fn (prepare-lambda (rest f) context)))
(prepare-direct-call lambda-fn args context)))
(t
(if (local-function-p context f)