summaryrefslogtreecommitdiff
path: root/module/oop
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2017-02-22 23:07:27 +0100
committerAndy Wingo <wingo@pobox.com>2017-02-22 23:10:46 +0100
commitc7fb87cd6e8ccf7e2a47c715a1d4a6cf82d846a3 (patch)
tree333c5b35169d3f755e89d00488514ceec735f885 /module/oop
parent4dcc97288dc2c43ea9f2e61fdb1357cec3936fc9 (diff)
Fix multi-arity dispatch in GOOPS
* module/oop/goops.scm (multiple-arity-dispatcher): Fix dispatch for max-arity+1 when a generic is already in multiple-arity dispatch. Fixes #24454. * test-suite/tests/goops.test ("dispatch"): Add test.
Diffstat (limited to 'module/oop')
-rw-r--r--module/oop/goops.scm2
1 files changed, 1 insertions, 1 deletions
diff --git a/module/oop/goops.scm b/module/oop/goops.scm
index e4f51600e..ece03c6e0 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -1333,7 +1333,7 @@ function."
#`(case-lambda
#,@(build-clauses #'(arg ...))
(args (apply miss args)))))))
- (arity-case (vector-length fv) 20 dispatch
+ (arity-case (1- (vector-length fv)) 20 dispatch
(lambda args
(let ((nargs (length args)))
(if (< nargs (vector-length fv))