[armedbear-cvs] r12084 - trunk/abcl/src/org/armedbear/lisp
Erik Huelsmann
ehuelsmann at common-lisp.net
Sat Aug 8 14:15:35 UTC 2009
Author: ehuelsmann
Date: Sat Aug 8 10:15:32 2009
New Revision: 12084
Log:
Declaration (processing) fixes.
jvm.lisp (process-ignore/ignorable): Don't process function-binding
declarations as if they were variables.
clos.lisp: declare CALL-NEXT-METHOD and NEXT-METHOD-P as ignorable
function bindings (instead of variables).
Modified:
trunk/abcl/src/org/armedbear/lisp/clos.lisp
trunk/abcl/src/org/armedbear/lisp/jvm.lisp
Modified: trunk/abcl/src/org/armedbear/lisp/clos.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/clos.lisp (original)
+++ trunk/abcl/src/org/armedbear/lisp/clos.lisp Sat Aug 8 10:15:32 2009
@@ -1586,7 +1586,8 @@
(funcall next-emfun (or cnm-args args))))
(next-method-p ()
(not (null next-emfun))))
- (declare (ignorable call-next-method next-method-p))
+ (declare (ignorable (function call-next-method)
+ (function next-method-p)))
(apply #'(lambda ,lambda-list , at declarations , at body) args))))
((null (intersection lambda-list '(&rest &optional &key &allow-other-keys &aux)))
;; Required parameters only.
Modified: trunk/abcl/src/org/armedbear/lisp/jvm.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/jvm.lisp (original)
+++ trunk/abcl/src/org/armedbear/lisp/jvm.lisp Sat Aug 8 10:15:32 2009
@@ -479,17 +479,18 @@
(when (memq declaration '(IGNORE IGNORABLE))
(let ((what (if (eq declaration 'IGNORE) "ignored" "ignorable")))
(dolist (name names)
- (let ((variable (find-variable name variables)))
- (cond ((null variable)
- (compiler-style-warn "Declaring unknown variable ~S to be ~A."
- name what))
- ((variable-special-p variable)
- (compiler-style-warn "Declaring special variable ~S to be ~A."
- name what))
- ((eq declaration 'IGNORE)
- (setf (variable-ignore-p variable) t))
- (t
- (setf (variable-ignorable-p variable) t))))))))
+ (unless (and (consp name) (eq (car name) 'FUNCTION))
+ (let ((variable (find-variable name variables)))
+ (cond ((null variable)
+ (compiler-style-warn "Declaring unknown variable ~S to be ~A."
+ name what))
+ ((variable-special-p variable)
+ (compiler-style-warn "Declaring special variable ~S to be ~A."
+ name what))
+ ((eq declaration 'IGNORE)
+ (setf (variable-ignore-p variable) t))
+ (t
+ (setf (variable-ignorable-p variable) t)))))))))
(defun finalize-generic-functions ()
(dolist (sym '(make-instance
More information about the armedbear-cvs
mailing list