1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 22:10:21 +02:00

Fix case-lambda* dispatching to agree with manual.

* module/system/vm/assembler.scm (kw-prelude): Emit br-if-npos-gt as
  appropriate.
This commit is contained in:
Andy Wingo 2013-11-08 11:41:28 +01:00
parent f90c055464
commit b0ed216b6f

View file

@ -791,7 +791,10 @@ returned instead."
(define-macro-assembler (kw-prelude asm nreq nopt rest? kw-indices
allow-other-keys? nlocals alternate)
(if alternate
(emit-br-if-nargs-lt asm nreq alternate)
(begin
(emit-br-if-nargs-lt asm nreq alternate)
(unless rest?
(emit-br-if-npos-gt asm nreq (+ nreq nopt) alternate)))
(emit-assert-nargs-ge asm nreq))
(let ((ntotal (fold (lambda (kw ntotal)
(match kw