[armedbear-cvs] r13525 - trunk/abcl/src/org/armedbear/lisp

ehuelsmann at common-lisp.net ehuelsmann at common-lisp.net
Sun Aug 21 14:06:34 UTC 2011


Author: ehuelsmann
Date: Sun Aug 21 07:06:31 2011
New Revision: 13525

Log:
Fix #163: Local functions should shadow global macro and function bindings.

Modified:
   trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp	Sun Aug 21 05:58:49 2011	(r13524)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp	Sun Aug 21 07:06:31 2011	(r13525)
@@ -1228,6 +1228,11 @@
            handler)
        (cond
          ((symbolp op)
+          (when (find-local-function op)
+            ;; local functions shadow macros and functions in
+            ;; the global environment as well as compiler macros
+            (return-from p1
+              (p1-function-call form)))
           (when (compiler-macro-function op)
             (unless (notinline-p op)
               (multiple-value-bind (expansion expanded-p)




More information about the armedbear-cvs mailing list