[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)
(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-list'.
Clément.
signature.asc
Description: OpenPGP digital signature