From 2e3d4f16d4add7abb3cc7195b058b0b3ab8df3da Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Fri, 20 Dec 2024 12:29:32 +0100 Subject: [PATCH] guix: toml: Fix evaluation of empty inline tables. * guix/build/toml.scm (eval-toml-file): Add pattern for empty inline table. * tests/toml.scm ("parse-toml: Empty inline table"): New testcase. Change-Id: I69663af2a861716acfb801fad4474e029e102a1b --- guix/build/toml.scm | 1 + tests/toml.scm | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/guix/build/toml.scm b/guix/build/toml.scm index 81b54fa5b72..a9be0887e76 100644 --- a/guix/build/toml.scm +++ b/guix/build/toml.scm @@ -414,6 +414,7 @@ the list KEY. For instance a KEY (a b) would retrieve alist[a][b]." local-time) tails))) ('array (list)) + ('inline-table '()) (('inline-table tails ...) (eval (keyword-flatten '(keyval) tails) '() '())))) diff --git a/tests/toml.scm b/tests/toml.scm index cd8e4d2338b..64bc667f0c9 100644 --- a/tests/toml.scm +++ b/tests/toml.scm @@ -396,6 +396,14 @@ fruit.apple.taste.sweet = true")) point = { x = 1, y = 2 } animal = { type.name = \"pug\" }")) +(test-equal "parse-toml: Empty inline table" + '(("name") + ("point") + ("animal")) + (parse-toml "name = {} +point = { } +animal = { }")) + (test-error "parse-toml: Invalid assignment to inline table" #t (parse-toml "[product]