From f7ffa893a66dccbe4da6559ca4fa45606e993a88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Wed, 22 May 2019 11:47:13 +0200 Subject: [PATCH] defstruct: redefine: relax requirement to have slot names eql As explained in the comment: structure may be a result of code generation which will likely use gensym. In this case name eql casues compilation/load problems. I.e adt library dos that. --- src/lsp/defstruct.lsp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lsp/defstruct.lsp b/src/lsp/defstruct.lsp index 115fb13b6..db76a1579 100644 --- a/src/lsp/defstruct.lsp +++ b/src/lsp/defstruct.lsp @@ -317,7 +317,10 @@ (destructuring-bind (new-slot-name new-init new-type new-read-only new-offset new-ac) new-def (declare (ignore new-init new-read-only new-ac)) - (and (eql old-slot-name new-slot-name) + ;; Name EQL is not enforced because structures may be + ;; constructed by code generators and it is likely they + ;; will have gensymed names. -- jd 2019-05-22 + (and #+ (or) (eql old-slot-name new-slot-name) (= old-offset new-offset) (and (multiple-value-bind (subtypep certain) (subtypep old-type new-type)