diff options
author | Eric Bavier <bavier@member.fsf.org> | 2016-09-01 08:20:25 -0500 |
---|---|---|
committer | Eric Bavier <bavier@member.fsf.org> | 2016-10-07 07:41:57 -0500 |
commit | 347df60158a11abbc9b84ac36cd113362d7e09e0 (patch) | |
tree | d4422b64e96438bf6dd17779f7ccd4609d02351f | |
parent | fb29e737d49a18d95588a820c048829096d921d1 (diff) | |
download | guix-347df60158a11abbc9b84ac36cd113362d7e09e0.tar.gz |
utils: Fix default-keyword-arguments.
* guix/utils.scm (default-keyword-arguments): Properly test for present keywords. * tests/utils.scm (default-keyword-arguments): New test.
-rw-r--r-- | guix/utils.scm | 2 | ||||
-rw-r--r-- | tests/utils.scm | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/guix/utils.scm b/guix/utils.scm index c68094cf49..ded31142aa 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -369,7 +369,7 @@ keywords not already present in ARGS." (match defaults ((kw value rest ...) (loop rest - (if (assoc-ref kw args) + (if (memq kw args) args (cons* kw value args)))) (() diff --git a/tests/utils.scm b/tests/utils.scm index 6590ed91cf..960928c842 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -111,6 +111,18 @@ (ensure-keyword-arguments '(#:foo 2) '(#:bar 3)) (ensure-keyword-arguments '(#:foo 2) '(#:bar 3 #:foo 42)))) +(test-equal "default-keyword-arguments" + '((#:foo 2) + (#:foo 2) + (#:foo 2 #:bar 3) + (#:foo 2 #:bar 3) + (#:foo 2 #:bar 3)) + (list (default-keyword-arguments '() '(#:foo 2)) + (default-keyword-arguments '(#:foo 2) '(#:foo 4)) + (default-keyword-arguments '() '(#:bar 3 #:foo 2)) + (default-keyword-arguments '(#:bar 3) '(#:foo 2)) + (default-keyword-arguments '(#:foo 2 #:bar 3) '(#:bar 6)))) + (test-assert "filtered-port, file" (let* ((file (search-path %load-path "guix.scm")) (input (open-file file "r0b"))) |