From 7846c631d05104c2bf07ef1ce7db74915142595f Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Wed, 17 Apr 2019 23:02:18 -0500 Subject: [PATCH] FIX: use field_name instead of name to avoid colliding with the name field. --- std/schema.ucg | 6 +++--- std/tests/schema_test.ucg | 9 ++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/std/schema.ucg b/std/schema.ucg index 29f3c44..951e267 100644 --- a/std/schema.ucg +++ b/std/schema.ucg @@ -101,9 +101,9 @@ let shaped = module { }, }; - let shape_tuple_handler = func (acc, name, value) => acc{ - ok = select (name) in acc.val, false, { - true = schema.shaped{val=value, shape=acc.val.(name), partial=false}, + let shape_tuple_handler = func (acc, field_name, value) => acc{ + ok = select (field_name) in acc.val, false, { + true = schema.shaped{val=value, shape=acc.val.(field_name), partial=false}, }, }; diff --git a/std/tests/schema_test.ucg b/std/tests/schema_test.ucg index 6734af8..5183738 100644 --- a/std/tests/schema_test.ucg +++ b/std/tests/schema_test.ucg @@ -92,7 +92,7 @@ assert t.ok{ }; assert t.ok{ - test = schema.shaped{val={foo="bar", count=1}, shape={foo=""}}, + test = schema.shaped{val={foo="bar", count=1, fuzzy={bear="claws"}}, shape={foo=""}}, desc = "shaped for partial tuples works", }; @@ -169,4 +169,11 @@ assert t.ok{ assert t.not_ok{ test = schema.all{val={foo="bar", baz="quux"}, types=[{foo=""}, {baz=""}, {quux=""}]}, desc = "all enforces that all of the valid shapes must be partial matches (fail)", +}; + +assert t.ok{ + test = schema.shaped{val={ + name = "simple", + }, shape={name="",}, partial=true}, + desc = "partial shapes match okay", }; \ No newline at end of file