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

redefining arg list of clos method



    Date: Thu, 7 Feb 91 14:21:06 MST
    From: drstrip@cs.sandia.gov (David R Strip )

    While developing some clos code I have encountered the
    problem that if I 
    (defmethod foo ((x class)) ...
    and then later decide I really want
    (defmethod foo ((x class) &optional (more t)) ....
    the compiler complains that this does not conform
    to the arg list for foo, and none of the proceed optioins
    allows the arg list to be redefined. ( This should 
    be reasonable if the method is only defined for a
    single class). The way I currently get around this is
    with a defgeneric foo (x more), 

I'm surprised DEFGENERIC lets you get away with this.

				    proceed with the
    redefinition, then recompile my method.

    Is there a better way around this (short of writing
    the arg list correcty the first time :-)

Have you tried m-X Kill Definition?  I think it works...

If all else fails, try (FMAKUNBOUND 'FOO).  I agree with you that the one of
your options when this blows up should offer to remove all the methods which
do not conform with the new definition.