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:
parent
f90c055464
commit
b0ed216b6f
1 changed files with 4 additions and 1 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue