From 37835e4d8e5029c857ba4f11b8c2a09563423746 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 27 Aug 2020 21:34:48 +0200 Subject: [PATCH] =?UTF-8?q?Better=20error=20reporting=20for=20nameless=20f?= =?UTF-8?q?unction=20=F0=9F=92=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/syntax/parsing.rs | 2 +- src/syntax/tree.rs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/syntax/parsing.rs b/src/syntax/parsing.rs index 7d3da63ec..96db687db 100644 --- a/src/syntax/parsing.rs +++ b/src/syntax/parsing.rs @@ -123,7 +123,7 @@ impl Parser<'_> { self.skip_white(); let name = self.parse_ident().unwrap_or_else(|| { self.expected_found_or_at("function name", before_name); - Spanned::zero(Ident(String::new())) + Spanned::new(Ident(String::new()), Span::at(before_name)) }); self.skip_white(); diff --git a/src/syntax/tree.rs b/src/syntax/tree.rs index 47c79117b..ae2e98920 100644 --- a/src/syntax/tree.rs +++ b/src/syntax/tree.rs @@ -191,8 +191,10 @@ impl CallExpr { f.decorations.push(Spanned::new(Decoration::Resolved, span)); pass.output } else { - error!(@f, span, "unknown function"); - f.decorations.push(Spanned::new(Decoration::Unresolved, span)); + if !name.is_empty() { + error!(@f, span, "unknown function"); + f.decorations.push(Spanned::new(Decoration::Unresolved, span)); + } Value::Table(args) } }