From 4bed7b11e227a3151a2ff9e74f9662c126aad5a4 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Fri, 19 Apr 2019 14:42:36 +0200 Subject: Make App() only store one argument --- dhall_core/src/parser.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'dhall_core/src/parser.rs') diff --git a/dhall_core/src/parser.rs b/dhall_core/src/parser.rs index 2a30b2b..051a4e6 100644 --- a/dhall_core/src/parser.rs +++ b/dhall_core/src/parser.rs @@ -743,10 +743,10 @@ make_parser! { token_rule!(Some_<()>); - rule!(application_expression> as expression; span; children!( + rule!(application_expression> as expression; children!( [expression(e)] => e, [expression(first), expression(rest)..] => { - spanned(span, App(rc(first), rest.map(rc).collect())) + rest.fold(first, |acc, e| App(rc(acc), rc(e))) }, )); -- cgit v1.2.3 From 6bbe7df139552695081af735bd82945e5e22ed05 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 20 Apr 2019 22:11:08 +0200 Subject: improved_slice_patterns now returns ownership on error --- dhall_core/src/parser.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dhall_core/src/parser.rs') diff --git a/dhall_core/src/parser.rs b/dhall_core/src/parser.rs index 051a4e6..31249a9 100644 --- a/dhall_core/src/parser.rs +++ b/dhall_core/src/parser.rs @@ -176,7 +176,7 @@ macro_rules! make_parser { [x..] => Err( format!("Unexpected children: {:?}", x.collect::>()) )?, - ).ok_or_else(|| -> String { unreachable!() })?; + ).map_err(|_| -> String { unreachable!() })?; Ok(ParsedValue::$group(res)) }); (@body, -- cgit v1.2.3 From 83bc67d4572fe7961842f915d5559ee489e13dfd Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 20 Apr 2019 23:12:25 +0200 Subject: An empty optional value is purely semantic --- dhall_core/src/parser.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dhall_core/src/parser.rs') diff --git a/dhall_core/src/parser.rs b/dhall_core/src/parser.rs index 31249a9..ba15bae 100644 --- a/dhall_core/src/parser.rs +++ b/dhall_core/src/parser.rs @@ -754,7 +754,7 @@ make_parser! { children!( [expression(e)] => e, [Some_(()), expression(e)] => { - spanned(span, NEOptionalLit(rc(e))) + spanned(span, SomeLit(rc(e))) }, [merge(()), expression(x), expression(y)] => { spanned(span, Merge(rc(x), rc(y), None)) -- cgit v1.2.3