From ad4ef68a112dedabf80f885a02bcb574eb9af9e4 Mon Sep 17 00:00:00 2001 From: astrale-sharp Date: Wed, 12 Jun 2024 14:00:22 +0200 Subject: Lexer hint (#4346) Co-authored-by: Laurenz --- crates/typst-syntax/src/parser.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'crates/typst-syntax/src/parser.rs') diff --git a/crates/typst-syntax/src/parser.rs b/crates/typst-syntax/src/parser.rs index e27cafcf..7e7eeea5 100644 --- a/crates/typst-syntax/src/parser.rs +++ b/crates/typst-syntax/src/parser.rs @@ -6,7 +6,9 @@ use ecow::{eco_format, EcoString}; use unicode_math_class::MathClass; use crate::set::SyntaxSet; -use crate::{ast, is_ident, is_newline, set, LexMode, Lexer, SyntaxKind, SyntaxNode}; +use crate::{ + ast, is_ident, is_newline, set, LexMode, Lexer, SyntaxError, SyntaxKind, SyntaxNode, +}; /// Parses a source file. pub fn parse(text: &str) -> SyntaxNode { @@ -1760,8 +1762,8 @@ impl<'s> Parser<'s> { fn save(&mut self) { let text = self.current_text(); if self.at(SyntaxKind::Error) { - let message = self.lexer.take_error().unwrap(); - self.nodes.push(SyntaxNode::error(message, text)); + let error = self.lexer.take_error().unwrap(); + self.nodes.push(SyntaxNode::error(error, text)); } else { self.nodes.push(SyntaxNode::leaf(self.current, text)); } @@ -1838,7 +1840,8 @@ impl<'s> Parser<'s> { /// Produce an error that the given `thing` was expected at the position /// of the marker `m`. fn expected_at(&mut self, m: Marker, thing: &str) { - let error = SyntaxNode::error(eco_format!("expected {thing}"), ""); + let error = + SyntaxNode::error(SyntaxError::new(eco_format!("expected {thing}")), ""); self.nodes.insert(m.0, error); } -- cgit v1.2.3