From 63aa21c581933a10b2b1ab96c632c72834cf2115 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Mon, 15 Apr 2019 12:22:02 +0200 Subject: Handle empty optionals correctly Closes #78 --- dhall_core/src/parser.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'dhall_core/src/parser.rs') diff --git a/dhall_core/src/parser.rs b/dhall_core/src/parser.rs index cea7cea..c4ae2e5 100644 --- a/dhall_core/src/parser.rs +++ b/dhall_core/src/parser.rs @@ -641,13 +641,13 @@ make_parser! { spanned(span, EmptyListLit(rc(t))) }, [Optional(_), expression(t)] => { - spanned(span, EmptyOptionalLit(rc(t))) + spanned(span, OldOptionalLit(None, rc(t))) }, )); rule!(non_empty_optional> as expression; span; children!( [expression(x), Optional(_), expression(t)] => { - spanned(span, Annot(rc(NEOptionalLit(rc(x))), rc(t))) + spanned(span, OldOptionalLit(Option::Some(rc(x)), rc(t))) } )); @@ -747,10 +747,6 @@ make_parser! { rule!(application_expression> as expression; span; children!( [expression(e)] => e, - [expression(Builtin(crate::Builtin::OptionalNone)), - expression(e), expression(rest)..] => { - spanned(span, app(EmptyOptionalLit(rc(e)), rest.map(rc).collect())) - }, [Some(()), expression(e), expression(rest)..] => { spanned(span, app(NEOptionalLit(rc(e)), rest.map(rc).collect())) }, -- cgit v1.2.3