Hi Daniel, lloda <ll...@sarc.name> skribis:
> From 61ed612fb36108e395bdee4b1bbb46b49ef017b3 Mon Sep 17 00:00:00 2001 > From: Daniel Llorens <ll...@sarc.name> > Date: Thu, 23 Feb 2023 17:38:10 +0100 > Subject: [PATCH] peval reduces some inlined case-lambda calls > > * module/language/tree-il/peval.scm (peval): Reduce multiple case lambda > in <call> trees according to the number of arguments. Do not try to > reduce case-lambda using keyword arguments. > * test-suite/tests/peval.test: Tests. [...] > +++ b/module/language/tree-il/peval.scm > @@ -1668,6 +1668,29 @@ top-level bindings from ENV and return the resulting > expression." > > (log 'inline-end result exp) > result))))) > + (($ <lambda> src-proc meta orig-body) > + ;; If there are multiple cases and one matches nargs, omit all > the others. > + (or (and > + (lambda-case-alternate orig-body) > + (let ((nargs (length orig-args))) > + (let loop ((body orig-body)) > + (match body > + (#f #f) ;; No matching case; an error. > + (($ <lambda-case> src-case req opt rest kw inits > gensyms case-body alt) > + (cond (kw > + ;; FIXME: Not handling keyword cases. > + #f) Maybe s/FIXME/XXX/ since it’s at most a limitation, certainly not a bug. It LGTM and Andy already approved it on IRC, so go ahead! Ludo’.