1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-23 20:05:32 +02:00

Avoid swallowing errors for (values) operands of elided primcalls

* module/language/tree-il/peval.scm (peval): When visiting (values) in
anything other than an effect or values context,
residualize (values (values)), which will cause a run-time error.
* test-suite/tests/peval.test ("values"): Add test.
This commit is contained in:
Andy Wingo 2023-11-27 14:02:03 +01:00
parent 3b7c78cc83
commit 38e9bd7a2f
2 changed files with 19 additions and 9 deletions

View file

@ -1583,3 +1583,10 @@
(pass-if-peval (equal? x '(a . b))
(primcall equal? (toplevel x) (const (a . b)))))
(with-test-prefix "values"
(pass-if-peval (begin (cons 1 (values)) #f)
(seq (primcall values (primcall values))
(const #f)))
(pass-if-peval (begin 1 (values) #f)
(const #f)))