[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: two likely bugs with qualified methods
From: |
Eric Abrahamsen |
Subject: |
Re: two likely bugs with qualified methods |
Date: |
Fri, 15 Jul 2016 09:04:08 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) |
Clément Pit--Claudel <address@hidden> writes:
> On 2016-07-15 09:11, Eric Abrahamsen wrote:
>> Not serious ones, but...
>>
>> See the following:
>>
>> (cl-defmethod base ((str string))
>> "This one's okay"
>> (message str))
>>
>> (cl-defmethod base :extra "ext" ((str string))
>> "This one isn't"
>> (message "extra method")
>> (cl-call-next-method))
>>
>> The first problem should be evident: alignment doesn't work correctly
>> for any qualified methods. This is with emacs -Q, built from master.
>>
>> Additionally, if you try to instrument the second form for edbugging,
>> the cursor jumps to the first argument in the argument list, and you
>> get:
>>
>> edebug-syntax-error: Invalid read syntax: "Expected lambda expression"
>
> Both problems can probably be fixed by adjusting the (declare) form at the
> beginning of cl-defmethod:
>
> (declare (doc-string 3) (indent 2)
> (debug
> (&define ; this means we are defining something
> [&or name ("setf" :name setf name)]
> ;; ^^ This is the methods symbol
> [ &optional keywordp ] ; this is key :before etc
> list ; arguments
> [ &optional stringp ] ; documentation string
> def-body))) ; part to be debugged
>
> (indent 2) could be changed to (indent defun); the debug spec could
> probably be fixed by using one of the edebug specs in cl-macs, such as
> `cl-lambda-lis
I tried taking a whack at this before posting, but wasn't familiar
enough with declare to get it to work. Anyhow, there are now two bug
reports for this: 23994 and 23995.
E