aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2007-05-15 12:14:37 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2007-05-15 12:14:37 +0000
commitca00aa11714921804afb490d0613086f549fb894 (patch)
treec07b7ec5facc5764589d644fe713ede095d97019
parent7046c35843af7c6232efc7e7ee23b26096e0c692 (diff)
* Allow empty argument lists in function definitions (e.g., `{}:
bla'). Also allow trailing commas (`{x, y,}: ...') as a unintented consequence. Hopefully the reduce/reduce conflict won't cause any problems.
-rw-r--r--src/libexpr/parser.y1
-rw-r--r--tests/lang/eval-okay-empty-args.exp1
-rw-r--r--tests/lang/eval-okay-empty-args.nix1
3 files changed, 3 insertions, 0 deletions
diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y
index 3540058bc..1c06240fd 100644
--- a/src/libexpr/parser.y
+++ b/src/libexpr/parser.y
@@ -249,6 +249,7 @@ expr_list
formals
: formal ',' formals { $$ = ATinsert($3, $1); } /* idem - right recursive */
| formal { $$ = ATinsert(ATempty, $1); }
+ | { $$ = ATempty; }
;
formal
diff --git a/tests/lang/eval-okay-empty-args.exp b/tests/lang/eval-okay-empty-args.exp
new file mode 100644
index 000000000..c386bbc80
--- /dev/null
+++ b/tests/lang/eval-okay-empty-args.exp
@@ -0,0 +1 @@
+Str("ab",[])
diff --git a/tests/lang/eval-okay-empty-args.nix b/tests/lang/eval-okay-empty-args.nix
new file mode 100644
index 000000000..78c133afd
--- /dev/null
+++ b/tests/lang/eval-okay-empty-args.nix
@@ -0,0 +1 @@
+({}: {x,y,}: "${x}${y}") {} {x = "a"; y = "b";}