1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

Bugfix: Recursively use method*, not method, in method*

* module/oop/goops.scm (method*): Do not use method.
This commit is contained in:
Mikael Djurfeldt 2024-11-27 13:27:46 +01:00
parent d2756503f1
commit 382d890026

View file

@ -2073,10 +2073,9 @@ function."
;;; eliminated. Note also that it doesn't support the (next-method) call ;;; eliminated. Note also that it doesn't support the (next-method) call
;;; as does the following implementation. ;;; as does the following implementation.
;;; ;;;
;;; If you make changes to the following implementation, bear in mind ;;; If you make changes, bear in mind that define-method* is supposed to
;;; that define-method* is supposed to also be able to handle ordinary ;;; also be able to handle ordinary methods without keyword formals. See
;;; methods without keyword formals. See the Guile Reference and the ;;; the Guile Reference and the module (oop goops keyword-formals).
;;; module (oop goops keyword-formals).
;;; ;;;
(define-syntax define-method (define-syntax define-method
@ -2369,7 +2368,7 @@ function."
(define-syntax method* (define-syntax method*
(lambda (x) (lambda (x)
(syntax-case x () (syntax-case x ()
((_ formals) #'(method formals (if #f #f))) ((_ formals) #'(method* formals (if #f #f)))
((_ formals body0 body1 ...) ((_ formals body0 body1 ...)
(with-syntax (((formals (specializer ...) keyword-formals) (with-syntax (((formals (specializer ...) keyword-formals)
(parse-keyword-formals #'formals))) (parse-keyword-formals #'formals)))