From ca00aa11714921804afb490d0613086f549fb894 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 15 May 2007 12:14:37 +0000 Subject: [PATCH] * 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. --- src/libexpr/parser.y | 1 + tests/lang/eval-okay-empty-args.exp | 1 + tests/lang/eval-okay-empty-args.nix | 1 + 3 files changed, 3 insertions(+) create mode 100644 tests/lang/eval-okay-empty-args.exp create mode 100644 tests/lang/eval-okay-empty-args.nix diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y index 3540058b..1c06240f 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 00000000..c386bbc8 --- /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 00000000..78c133af --- /dev/null +++ b/tests/lang/eval-okay-empty-args.nix @@ -0,0 +1 @@ +({}: {x,y,}: "${x}${y}") {} {x = "a"; y = "b";}