Comment 1 for bug 1796568

Further investigation shows that SB-MOP:METHOD-LAMBDA-LIST returns an erroneous value.

CL-USER> (defclass quux () ((fred :accessor fred :initform 42)))
#<STANDARD-CLASS COMMON-LISP-USER::QUUX>
CL-USER> (trace sb-mop:method-lambda-list)
(SB-MOP:METHOD-LAMBDA-LIST)
CL-USER> (setf (class-name (find-class 'quux)) '(frob))
  0: (SB-MOP:METHOD-LAMBDA-LIST #<STANDARD-METHOD (COMMON-LISP:SETF COMMON-LISP:CLASS-NAME) (T T) {10008A0023}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned (SB-PCL::NEW-VALUE CLASS)
  0: (SB-MOP:METHOD-LAMBDA-LIST #<STANDARD-METHOD COMMON-LISP:REINITIALIZE-INSTANCE :BEFORE (SB-PCL::SLOT-CLASS) {10009F6043}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned (CLASS &KEY SB-PCL::DIRECT-SUPERCLASSES)
  0: (SB-MOP:METHOD-LAMBDA-LIST #<STANDARD-METHOD COMMON-LISP:REINITIALIZE-INSTANCE :AFTER (SB-PCL::SLOT-CLASS) {10009F6053}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned (CLASS &REST SB-PCL::INITARGS &KEY)
  0: (SB-MOP:METHOD-LAMBDA-LIST #<STANDARD-METHOD COMMON-LISP:REINITIALIZE-INSTANCE (SB-PCL::SLOT-OBJECT) {10008A21F3}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned
       (SB-KERNEL:INSTANCE &REST SB-PCL::INITARGS)
  0: (SB-MOP:METHOD-LAMBDA-LIST #<STANDARD-METHOD COMMON-LISP:SHARED-INITIALIZE :AFTER (SB-PCL::STD-CLASS T) {1000598433}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned
       (CLASS SB-PCL::SLOT-NAMES &KEY
        (SB-PCL::DIRECT-SUPERCLASSES NIL SB-PCL::DIRECT-SUPERCLASSES-P)
        (SB-PCL::DIRECT-SLOTS NIL SB-PCL::DIRECT-SLOTS-P)
        (SB-PCL::DIRECT-DEFAULT-INITARGS NIL SB-PCL::DIRECT-DEFAULT-INITARGS-P))
  0: (SB-MOP:METHOD-LAMBDA-LIST #<STANDARD-METHOD COMMON-LISP:SHARED-INITIALIZE :BEFORE (CLASS T) {1000598453}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned
       (CLASS SB-PCL::SLOT-NAMES &KEY SB-PCL::NAME)
  0: (SB-MOP:METHOD-LAMBDA-LIST #<STANDARD-METHOD COMMON-LISP:SHARED-INITIALIZE (SB-PCL::SLOT-OBJECT T) {1000164C23}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned
       (SB-KERNEL:INSTANCE SB-PCL::SLOT-NAMES &REST SB-PCL::INITARGS)
  0: (SB-MOP:METHOD-LAMBDA-LIST #<SB-MOP:STANDARD-READER-METHOD COMMON-LISP-USER::FRED, slot:FRED, ((CLASS #<STANDARD-CLASS (COMMON-LISP-USER::FROB) {100C572303}>)) {100CC3C6F3}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned ((FROB))
  0: (SB-MOP:METHOD-LAMBDA-LIST #<STANDARD-METHOD COMMON-LISP:INITIALIZE-INSTANCE (SB-PCL::SLOT-OBJECT) {1000164CF3}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned
       (SB-KERNEL:INSTANCE &REST SB-PCL::INITARGS)
  0: (SB-MOP:METHOD-LAMBDA-LIST #<STANDARD-METHOD COMMON-LISP:SHARED-INITIALIZE (SB-PCL::SLOT-OBJECT T) {1000164C23}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned
       (SB-KERNEL:INSTANCE SB-PCL::SLOT-NAMES &REST SB-PCL::INITARGS)
;; Error signaled here

In particular:

  0: (SB-MOP:METHOD-LAMBDA-LIST #<SB-MOP:STANDARD-READER-METHOD COMMON-LISP-USER::FRED, slot:FRED, ((CLASS #<STANDARD-CLASS (COMMON-LISP-USER::FROB) {100C572303}>)) {100CC3C6F3}>)
  0: SB-MOP:METHOD-LAMBDA-LIST returned ((FROB))

((FROB)) is not a valid unspecialized lambda list. This lambda list should have had a single mandatory argument that is a symbol, so, something like (OBJECT).

METHOD-LAMBDA-LIST is only a reader, which means that the lambda list is set to the method metaobject in a different way.