summaryrefslogtreecommitdiff
path: root/src/syntax
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-08-27 21:34:48 +0200
committerLaurenz <laurmaedje@gmail.com>2020-08-27 21:34:48 +0200
commit37835e4d8e5029c857ba4f11b8c2a09563423746 (patch)
treee7d7f843cf62164d6b70555cd50e34ec96c4544b /src/syntax
parentad8e391c69fdcfc18fccd448c7bfc2d78d482ada (diff)
Better error reporting for nameless function 💡
Diffstat (limited to 'src/syntax')
-rw-r--r--src/syntax/parsing.rs2
-rw-r--r--src/syntax/tree.rs6
2 files changed, 5 insertions, 3 deletions
diff --git a/src/syntax/parsing.rs b/src/syntax/parsing.rs
index 7d3da63e..96db687d 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 47c79117..ae2e9892 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)
}
}