Matthias Koeppe mkoeppe+slime@mail.math.uni-magdeburg.de writes:
Hi Tobias,
I noticed that slime-complete-form is broken in SLIME CVS. Since you did the most recent changes to arglist-related parsing, I hope you can fix it.
Create this Lisp buffer:
(defun
(defun foo (a) a)
Then move point after the first "defun" and press C-c C-s.
SLIME now inserts "varlist body...)" and then signals "Wrong type argument: stringp, nil".
It should have inserted "name varlist body...)" instead (it should also not signal an error).
I couldn't reproduce the error. The bogus behaviour should be fixed in CVS. I'd be interested in seeing a backtrace nontheless, though.
Apparently the "defun foo" form is taken as an actual argument to the first "defun" form and consumes the formal argument "name". This is wrong. For slime-complete-form, the parser should ignore everything that is beyond the token around point, as in earlier versions of the code (I remark it is NOT sufficient to just stop before the next top-level expression).
Right!
Thanks for spotting this,
-T.