From 044615051f1f574b5055095948c97e9fea4c4872 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Thu, 18 Jul 2013 17:31:12 +0200 Subject: Fix support for ((LAMBDA ...) ...) forms. --- sb-eval2.lisp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'sb-eval2.lisp') 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) -- cgit v1.2.3