[Top][All Lists]

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

Re: two likely bugs with qualified methods

From: Clément Pit--Claudel
Subject: Re: two likely bugs with qualified methods
Date: Fri, 15 Jul 2016 10:25:05 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0

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)
            (&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-list'.


Attachment: signature.asc
Description: OpenPGP digital signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]