From 66972b05e5996132a83332ef0c6879c3a1679dc7 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Wed, 11 Mar 2020 17:26:09 +0000 Subject: Implement record puns --- dhall/src/syntax/text/parser.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'dhall/src/syntax/text/parser.rs') diff --git a/dhall/src/syntax/text/parser.rs b/dhall/src/syntax/text/parser.rs index f59cf06..b3c2c40 100644 --- a/dhall/src/syntax/text/parser.rs +++ b/dhall/src/syntax/text/parser.rs @@ -954,6 +954,11 @@ impl DhallParser { fn record_literal_entry(input: ParseInput) -> ParseResult<(Label, Expr)> { Ok(match_nodes!(input.into_children(); + [label(name)] => { + // Desugar record pun into a variable + let expr = Expr::new(Var(name.clone().into()), Span::RecordPunSugar); + (name, expr) + }, [label(name), expression(expr)] => (name, expr), [label(first_name), label(names).., expression(expr)] => { // Desugar dotted field syntax into nested records -- cgit v1.2.3