[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] externals/sly 5f15cf1 43/47: Use defgeneric lambda list in defm
From: |
ELPA Syncer |
Subject: |
[nongnu] externals/sly 5f15cf1 43/47: Use defgeneric lambda list in defmethod arglists |
Date: |
Thu, 17 Dec 2020 18:57:22 -0500 (EST) |
branch: externals/sly
commit 5f15cf1c72ddbecc591bf660d2595e21247c2b53
Author: Luís Oliveira <loliveira@common-lisp.net>
Commit: João Távora <joaotavora@gmail.com>
Use defgeneric lambda list in defmethod arglists
Make (defmethod foo ...)'s arglist reflect only the generic function's
lambda list, with which a new method must be congruent. This doesn't
affect the arglist of (foo ...) which still aggregates the lambda
lists of all methods when foo names a generic function.
Fixes SLIME github issue https://github.com/slime/slime/issues/572
reported by phoe.
* contrib/slynk-arglists.lisp (arglist-dispatch): Rework
Cherry-picked-from: SLIME commit fac8069fc13eb62742c31967b314bddb6da6b6c7
Co-authored-by: João Távora <joaotavora@gmail.com>
---
contrib/slynk-arglists.lisp | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/contrib/slynk-arglists.lisp b/contrib/slynk-arglists.lisp
index 0f0e19c..bb78d68 100644
--- a/contrib/slynk-arglists.lisp
+++ b/contrib/slynk-arglists.lisp
@@ -1033,14 +1033,15 @@ If the arglist is not available, return
:NOT-AVAILABLE."))
(('defmethod (#'function-exists-p gf-name) . rest)
(let ((gf (fdefinition gf-name)))
(when (typep gf 'generic-function)
- (with-available-arglist (arglist) (decode-arglist (arglist gf))
- (let ((qualifiers (loop for x in rest
- until (or (listp x) (empty-arg-p x))
- collect x)))
- (return-from arglist-dispatch
- (make-arglist :provided-args (cons gf-name qualifiers)
- :required-args (list arglist)
- :rest "body" :body-p t)))))))
+ (let ((lambda-list (slynk-mop:generic-function-lambda-list gf)))
+ (with-available-arglist (arglist) (decode-arglist lambda-list)
+ (let ((qualifiers (loop for x in rest
+ until (or (listp x) (empty-arg-p x))
+ collect x)))
+ (return-from arglist-dispatch
+ (make-arglist :provided-args (cons gf-name qualifiers)
+ :required-args (list arglist)
+ :rest "body" :body-p t))))))))
(_)) ; Fall through
(call-next-method))
- [nongnu] externals/sly f7c6048 08/47: arglist-dispatch: better handling of closer-mop wrappers., (continued)
- [nongnu] externals/sly f7c6048 08/47: arglist-dispatch: better handling of closer-mop wrappers., ELPA Syncer, 2020/12/17
- [nongnu] externals/sly bf157ae 10/47: Changed the name of a function in Clasp, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 57b6d3f 18/47: abcl: consolidate fixes and features, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly e79f9f2 23/47: sbcl: consult sb-impl:+internal-features+ when reading source files., ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 3bd8696 24/47: Move *features* binding up, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 276b18c 39/47: abcl: guard against repeated invocation to SLYNK-BACKEND:WRAP, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 47afe17 41/47: Fix #386: Unbreak Clasp common lisp for SLYfun, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 5bd0081 12/47: *architecture-features*: add ppc64, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 791f7b7 17/47: Calculate condition-location properly for clasp, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly e7f0333 40/47: abcl: fix inspector for a STRUCTURE-OBJECT with no inspectable parts, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 5f15cf1 43/47: Use defgeneric lambda list in defmethod arglists,
ELPA Syncer <=
- [nongnu] externals/sly ae4bbca 45/47: Don't force mREPL to use channel thread for everything, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly e927cda 47/47: Release SLY 1.0.42, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly a1fc34c 03/47: Add a name to the mailbox lock for clasp, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly b2732f4 15/47: Add line, column kw args to slynk-compile-string, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 5ec798d 19/47: decode-arglist: don't fall on arglist-dummy., ELPA Syncer, 2020/12/17
- [nongnu] externals/sly a0308b7 21/47: fix spurious detection of allegro modern-mode (#540), ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 9392ac9 32/47: Fix collect-macro-forms in clasp, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 3c83b6f 06/47: Improve jump to source with 'v' in sldb in clasp, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly c74ef16 14/47: Improve source locations for inlined code in clasp, ELPA Syncer, 2020/12/17
- [nongnu] externals/sly 463cef6 20/47: sbcl/sexp-in-bounds-p: descend into comma-expr., ELPA Syncer, 2020/12/17