[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compute-applicable-methods not working properly in Victoria Day PCL



  To: CommonLoops.PA@xerox.com
  Cc: David_McArthur <dave@rand.org>, Darrell_Shane <shane@rand.org>
  Subject: Compute-applicable-methods not working properly in Victoria Day
   PCL
  Date: Tue, 11 Jul 89 15:52:18 PDT
  From: Darrell <shane%blackcomb@rand.org>
  
  (defmethod foo ((sym (eql 'A)))
    (format t "Main foo method.~%"))
  
  (defmethod foo :around ((sym (eql 'A)))
    (call-next-method)
    (format t "Around foo method.~%"))
  
  (defmethod foo :before ((sym (eql 'A)))
    (format t "Before foo method.~%"))
  
  (defmethod foo :after ((sym (eql 'A)))
    (format t "After foo method.~%"))
  
  (compute-applicable-methods #'foo (list 'A)) -->
  (#<Standard-Method FOO ((EQL A)) 34077671>)
  
  Which is not the complete set of applicable methods.  Also, I believe 
  this is reason why PCL doesn't recognize initialization arguments that 
  are arguments to method(s).
  
  Darrell Shane

When i do this in AKCL, it seems to work:

PCL>(generic-function-methods #'foo)
(#<Standard-Method FOO :AROUND ((EQL A)) 16332660>
 #<Standard-Method FOO :AFTER ((EQL A)) 16332700>
 #<Standard-Method FOO :BEFORE ((EQL A)) 16332720>
 #<Standard-Method FOO ((EQL A)) 16333220>)

PCL>(foo 'a)
Before foo method.
Main foo method.
After foo method.
Around foo method.
NIL

PCL>(compute-applicable-methods #'foo (list 'a))
(#<Standard-Method FOO :AROUND ((EQL A)) 16332660>
 #<Standard-Method FOO :AFTER ((EQL A)) 16332700>
 #<Standard-Method FOO :BEFORE ((EQL A)) 16332720>
 #<Standard-Method FOO ((EQL A)) 16333220>)