mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-25 05:51:55 -08:00
Merge branch 'fix-586' into 'develop'
slot-definitions-compatible-p: check for the slot class too Closes #586 See merge request embeddable-common-lisp/ecl!207
This commit is contained in:
commit
0d65a6ff5f
1 changed files with 9 additions and 2 deletions
|
|
@ -226,13 +226,20 @@
|
|||
for n = (pop new-slotds)
|
||||
while (and o n)
|
||||
do (let ((old-alloc (slot-definition-allocation o))
|
||||
(new-alloc (slot-definition-allocation n)))
|
||||
(new-alloc (slot-definition-allocation n))
|
||||
(old-class (class-of o))
|
||||
(new-class (class-of n)))
|
||||
(unless (and (eq old-alloc new-alloc)
|
||||
(eq (slot-definition-name o)
|
||||
(slot-definition-name n))
|
||||
(or (not (eq old-alloc :instance))
|
||||
(= (slot-definition-location o)
|
||||
(slot-definition-location n))))
|
||||
(slot-definition-location n)))
|
||||
(eq old-class new-class)
|
||||
(or (eq new-class
|
||||
(find-class 'standard-direct-slot-definition))
|
||||
(eq new-class
|
||||
(find-class 'standard-effective-slot-definition))))
|
||||
(return-from slot-definitions-compatible-p nil)))
|
||||
finally
|
||||
(return (and (null o)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue