From faa39d2f50909e1c119d020a6a992b2b8b5bdee8 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Thu, 10 Jan 2013 00:54:08 +0100 Subject: [PATCH] CONSTANT-EXPRESSION-P now checks whether the 1-form is pure before checking the arguments. --- src/cmp/cmpopt-constant.lsp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cmp/cmpopt-constant.lsp b/src/cmp/cmpopt-constant.lsp index cbd511088..d8a8d2849 100644 --- a/src/cmp/cmpopt-constant.lsp +++ b/src/cmp/cmpopt-constant.lsp @@ -17,12 +17,12 @@ (defun constant-expression-p (form &optional (env *cmp-env*)) (or (constantp form env) (and (consp form) - (loop for c in (rest form) - always (constant-expression-p c env)) - (let ((head (car form))) + (let ((head (car form))) (or (member head '(IF OR AND NULL NOT PROGN)) (and (get-sysprop head 'pure) - (inline-possible head))))))) + (inline-possible head)))) + (loop for c in (rest form) + always (constant-expression-p c env))))) (defun extract-constant-value (form &optional failure (env *cmp-env*)) (if (constant-expression-p form env)