summaryrefslogtreecommitdiff
path: root/libguile/strings.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2011-06-17 19:30:31 +0200
committerAndy Wingo <wingo@pobox.com>2011-06-17 19:42:55 +0200
commitb88fef5519fab447c6c5405928c248f9f0966148 (patch)
tree0252cd8f1b31c733f62486a1f5852ba206248ab6 /libguile/strings.c
parentf86f748db26eba15ca71e65b3e084a2fcbf8c3ac (diff)
downloadguile-b88fef5519fab447c6c5405928c248f9f0966148.tar.gz
fix invalid transformation of (values x) -> x, (+ x) -> x, etc
* module/language/tree-il/primitives.scm (+, *, cons*): In the case of just one argument (the identity case), expand to (values x) instead of just x. Fixes values truncation in that case. (values): Likewise remove (values x) -> x translation, as the compiler will do it for us, and this fixes (values (values 1 2)). * module/language/tree-il/compile-glil.scm (flatten-lambda-case): Handle `values' in a push context here. * test-suite/tests/tree-il.test ("values"): Add some tests.
Diffstat (limited to 'libguile/strings.c')
0 files changed, 0 insertions, 0 deletions