X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/9fcd66daf819294168e86ea5eb50c241b1d9fa11..77f497d292ace3e841827a7b12a18be5f78fe425:/lisp/emacs-lisp/cl-preloaded.el diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el index ed0639b63a..cd1d700f1b 100644 --- a/lisp/emacs-lisp/cl-preloaded.el +++ b/lisp/emacs-lisp/cl-preloaded.el @@ -1,8 +1,9 @@ ;;; cl-preloaded.el --- Preloaded part of the CL library -*- lexical-binding: t; -*- -;; Copyright (C) 2015 Free Software Foundation, Inc +;; Copyright (C) 2015-2016 Free Software Foundation, Inc ;; Author: Stefan Monnier +;; Package: emacs ;; This file is part of GNU Emacs. @@ -147,6 +148,7 @@ ok) (error "Included struct %S has changed since compilation of %S" parent name)))) + (add-to-list 'current-load-list `(define-type . ,name)) (cl--struct-register-child parent-class tag) (unless (eq named t) (eval `(defconst ,tag ',class) t) @@ -195,7 +197,7 @@ (:constructor nil) (:constructor cl--make-slot-descriptor (name &optional initform type props)) - (:copier cl--copy-slot-descriptor)) + (:copier cl--copy-slot-descriptor-1)) ;; FIXME: This is actually not used yet, for circularity reasons! "Descriptor of structure slot." name ;Attribute name (symbol). @@ -205,6 +207,11 @@ ;; :documentation, :protection, :custom, :label, :group, :printer. (props nil :type alist)) +(defun cl--copy-slot-descriptor (slot) + (let ((new (cl--copy-slot-descriptor-1 slot))) + (cl-callf copy-alist (cl--slot-descriptor-props new)) + new)) + (cl-defstruct (cl--class (:constructor nil) (:copier nil))