From: Stefan Monnier Date: Sun, 27 Nov 2005 20:59:10 +0000 (+0000) Subject: (defstruct): Don't define the default constructor if it is overridden. X-Git-Tag: emacs-pretest-22.0.90~5641 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=40e8a6c318190b95a2f5b1e22bb128e4e2eb46c3;p=emacs.git (defstruct): Don't define the default constructor if it is overridden. --- diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 74c77128059..244029491de 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2175,7 +2175,12 @@ copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors. (symbol-name (car args)) "")))) ((eq opt :constructor) (if (cdr args) - (push args constrs) + (progn + ;; If this defines a constructor of the same name as + ;; the default one, don't define the default. + (if (eq (car args) constructor) + (setq constructor nil)) + (push args constrs)) (if args (setq constructor (car args))))) ((eq opt :copier) (if args (setq copier (car args))))