summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Lisp/method-definition.lisp11
1 files changed, 5 insertions, 6 deletions
diff --git a/Lisp/method-definition.lisp b/Lisp/method-definition.lisp
index b83570e..0579299 100644
--- a/Lisp/method-definition.lisp
+++ b/Lisp/method-definition.lisp
@@ -198,18 +198,17 @@ __super__"
collect :id into type-specifiers
and collect arg into arg-names
finally (let ((super-args-sym (gensym))
- (super-real-args-sym (gensym)))
+ (captured-args-sym (gensym)))
(return
`(defmethod ,(intern (symbol-name name)
'#:objective-c-methods)
argtypes-start ,@type-specifiers argtypes-end
,@qualifiers ,lambda-list
- (flet ((super (&rest ,super-args-sym)
- (let ((,super-real-args-sym
- (or ,super-args-sym
- (list ,@(rest arg-names)))))
+ (let ((,captured-args-sym
+ (list ,@(rest arg-names))))
+ (flet ((super (&rest ,super-args-sym)
(invoke-by-name-super-v
- ,(first arg-names)
+ (first ,captured-args-sym)
,(generic-function-name->method-name
name)
(find-objc-class ',(cadar lambda-list))