mirror of
https://github.com/zaphar/ucg.git
synced 2025-07-21 18:10:42 -04:00
parent
68e9c1c119
commit
05771c7221
@ -68,3 +68,30 @@ assert {
|
||||
ok = no_default_test(false) == "I was false",
|
||||
desc = "no default successfully detects false",
|
||||
};
|
||||
|
||||
let tpl_fields = {
|
||||
test = "foo",
|
||||
};
|
||||
|
||||
let no_default_select_result = select tpl_fields.test == "foo", {
|
||||
true = true,
|
||||
false = false,
|
||||
};
|
||||
|
||||
assert {
|
||||
ok = no_default_select_result,
|
||||
desc = "no default successfully select true",
|
||||
};
|
||||
|
||||
let nested_select_result_no_defaults = select true, {
|
||||
true = true,
|
||||
false = select false, {
|
||||
true = fail "whoops! this should never have triggered.",
|
||||
false = true,
|
||||
},
|
||||
};
|
||||
|
||||
assert {
|
||||
ok = nested_select_result_no_defaults,
|
||||
desc = "Nested select result parses and resturns true",
|
||||
};
|
@ -467,13 +467,22 @@ fn select_expression(input: SliceIter<Token>) -> Result<SliceIter<Token>, Expres
|
||||
_ => must!(punct!(",")),
|
||||
(expr)
|
||||
),
|
||||
default => optional!(do_each!(
|
||||
expr => trace_parse!(must!(expression)),
|
||||
_ => punct!(","),
|
||||
(expr)
|
||||
)),
|
||||
map => trace_parse!(must!(tuple)),
|
||||
(val, default, map)
|
||||
default_and_map => either!(
|
||||
do_each!(
|
||||
default => do_each!(
|
||||
expr => trace_parse!(expression),
|
||||
_ => punct!(","),
|
||||
(expr)
|
||||
),
|
||||
map => trace_parse!(tuple),
|
||||
(Some(default), map)
|
||||
),
|
||||
do_each!(
|
||||
map => trace_parse!(must!(tuple)),
|
||||
(None, map)
|
||||
)
|
||||
),
|
||||
(val, default_and_map.0, default_and_map.1)
|
||||
);
|
||||
match parsed {
|
||||
Result::Abort(e) => Result::Abort(e),
|
||||
|
Loading…
x
Reference in New Issue
Block a user