[Openmcl-cvs-notifications] r15127 - /trunk/source/compiler/nx0.lisp

gb at clozure.com gb at clozure.com
Fri Dec 9 01:37:25 CST 2011


Author: gb
Date: Fri Dec  9 01:37:24 2011
New Revision: 15127

Log:
In NX-CHECK-VDECL-VAR-REF, allow TYPE decls to apply to symbol-macros;
don't allow SPECIAL or other declarations to do so.

Modified:
    trunk/source/compiler/nx0.lisp

Modified: trunk/source/compiler/nx0.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/compiler/nx0.lisp (original)
+++ trunk/source/compiler/nx0.lisp Fri Dec  9 01:37:24 2011
@@ -770,13 +770,14 @@
 				    (values nil typespec)))))
     (specifier-type typespec env)))
 =

+
 (defun nx-check-vdecl-var-ref (decl)
-  (unless (eq (cadr decl) 'special)
-    (let* ((sym (car decl))
-           (info (nx-lex-info sym)))
-      (when (or (eq info :symbol-macro)
-                (and (null info) (not (nx-proclaimed-special-p sym))))
-        (nx1-whine :unknown-declaration-variable (cadr decl) sym)))))
+  (let* ((sym (car decl))
+         (info (nx-lex-info sym)))
+    (when (or (and (not (eq (cadr decl) 'type)) (eq info :symbol-macro))
+              (and (null info) (not (or (eq (cadr decl) 'special)
+                                        (nx-proclaimed-special-p sym)))))
+      (nx1-whine :unknown-declaration-variable (cadr decl) sym))))
 =

 (defun nx-check-fdecl-var-ref (decl env &aux (sym (car decl)))
   (unless (eq (cadr decl) 'ftype)



More information about the Openmcl-cvs-notifications mailing list