On Tue, 2005-01-18 at 00:03 +0100, Sverker Wiberg wrote: > And here is a first patch to correct the bug, with test cases snarfed > from Steel Bank CL (thanks!). It fails at the dynamic-slot-subclass case > in tests/mop-2.impure-cload.lisp (when I do the defclass I get "Internal > error: In get-accessor-method-function."), so I disabled that case. This > should be fixed as well; but I won't do it today.
And here's a fix for this problem! When finalizing a class, specializer-applicable-using-type-p (actually saut-class etc.) calls cpl-or-nil to get the class precedence list; however, as the class isn't finalized, cpl-or-nil returns nil for "don't know". which s-a-u-t reads as an empty cpl. As s-a-u-t runs after compute-class-precedence-list, the class being finalized has a sane cpl at this point (is this always true?), and the saut-... functions should rather call cpl-maybe-early instead of cpl-or-nil. Which is what the 'diff-2.txt' patch does. Now tests/mop-2.impure-cload.lisp succeeds. /Sverker P.S. As I noticed that the list server stripped my previous patch (but it got through on the news gateway), I'm including it again, as 'diff-1.txt'. -- Binary/unsupported file stripped by Listar -- -- Type: text/x-patch -- File: diff-2.txt -- Binary/unsupported file stripped by Listar -- -- Type: text/x-patch -- File: diff-1.txt
