summaryrefslogtreecommitdiff
path: root/dhall/src/syntax/text/parser.rs
diff options
context:
space:
mode:
authorNadrieril2020-03-11 17:26:09 +0000
committerNadrieril2020-03-11 17:26:09 +0000
commit66972b05e5996132a83332ef0c6879c3a1679dc7 (patch)
treea6c148a6513063b14a1aebe53dd4a0cc927ecb3a /dhall/src/syntax/text/parser.rs
parent65e8aa46344b9dc32c3ad776856791d18cc616c3 (diff)
Implement record puns
Diffstat (limited to 'dhall/src/syntax/text/parser.rs')
-rw-r--r--dhall/src/syntax/text/parser.rs5
1 files changed, 5 insertions, 0 deletions
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