From 2c491d3c7bab7e1da0e834fc745b73714ccdb9b3 Mon Sep 17 00:00:00 2001 From: pw <pw> Date: Tue, 1 Aug 2000 15:04:31 +0000 Subject: [PATCH] Fix expand-defgeneric and expand-defmethod to notify compile environment that the named generic-function exists. This to suppress undefined function warnings. --- pcl/boot.lisp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pcl/boot.lisp b/pcl/boot.lisp index 008967825..48c560a7b 100644 --- a/pcl/boot.lisp +++ b/pcl/boot.lisp @@ -26,7 +26,7 @@ ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/boot.lisp,v 1.20 1999/05/30 23:13:51 pw Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/boot.lisp,v 1.21 2000/08/01 15:04:31 pw Exp $") (in-package :pcl) @@ -163,6 +163,12 @@ work during bootstrapping. ;;; ;;; ;;; +(defun tell-compiler-about-gf (function-specifier lambda-list) + ;; Supress any undefined function warnings from compiler. + ;; I had originally lifted some code from c::%%defun but this + ;; seems to do the job just as well. + (proclaim-defgeneric function-specifier lambda-list)) + (defmacro defgeneric (function-specifier lambda-list &body options) (expand-defgeneric function-specifier lambda-list options)) @@ -217,6 +223,9 @@ work during bootstrapping. (let ((declarations (initarg :declarations))) (when declarations (initarg :declarations `',declarations)))) + + (tell-compiler-about-gf function-specifier lambda-list) + `(progn (proclaim-defgeneric ',function-specifier ',lambda-list) ,(make-top-level-form @@ -306,6 +315,7 @@ work during bootstrapping. (let ((initargs-form (make-method-initargs-form proto-gf proto-method method-function-lambda initargs env))) + (tell-compiler-about-gf name lambda-list) `(progn (proclaim-defgeneric ',name ',lambda-list) ,@(when *make-instance-function-keys* -- GitLab