From 5feb42dfa3fce0db0e1e04b072534bb84b96dfa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Tue, 14 Apr 2020 17:03:45 +0200 Subject: [PATCH] clos: reinitialize-instance: don't remove generic functions Local function REMOVE-OPTIONAL-SLOT-ACCESSORS removed generic functions after removing methods while redefining the class if said generic functions have no other methods. There is nothing in the spec what would justify it, so we don't fmakunbound these functions anymore. --- src/clos/change.lsp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/clos/change.lsp b/src/clos/change.lsp index f2627437f..5fbd4cd09 100644 --- a/src/clos/change.lsp +++ b/src/clos/change.lsp @@ -239,9 +239,7 @@ ;; after method (when (setq found (find-method gf-object ':after (list class) nil)) - (remove-method gf-object found)) - (when (null (generic-function-methods gf-object)) - (fmakunbound reader)))) + (remove-method gf-object found)))) ;; remove previous defined writer methods (dolist (writer (slot-definition-writers slotd)) @@ -258,6 +256,4 @@ ;; after method (when (setq found (find-method gf-object ':after (list 'T class) nil)) - (remove-method gf-object found)) - (when (null (generic-function-methods gf-object)) - (fmakunbound writer)))))) + (remove-method gf-object found))))))