From 1cece9f219016152b2e8bc6194fb7f44a441c6db Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 5 May 2019 11:34:39 +0300 Subject: return errors from tree builder --- crates/ra_mbe/src/syntax_bridge.rs | 5 +++-- crates/ra_syntax/src/syntax_node.rs | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/crates/ra_mbe/src/syntax_bridge.rs b/crates/ra_mbe/src/syntax_bridge.rs index c0a3fec35..4639baa38 100644 --- a/crates/ra_mbe/src/syntax_bridge.rs +++ b/crates/ra_mbe/src/syntax_bridge.rs @@ -56,8 +56,9 @@ where if tree_sink.roots.len() != 1 { return Err(ExpandError::ConversionError); } - - Ok(tree_sink.inner.finish()) + //FIXME: would be cool to report errors + let (tree, _errors) = tree_sink.inner.finish(); + Ok(tree) } /// Parses the token tree (result of macro expansion) to an expression diff --git a/crates/ra_syntax/src/syntax_node.rs b/crates/ra_syntax/src/syntax_node.rs index e4eab6b87..3a9b3ec2f 100644 --- a/crates/ra_syntax/src/syntax_node.rs +++ b/crates/ra_syntax/src/syntax_node.rs @@ -626,13 +626,13 @@ impl SyntaxTreeBuilder { (green, self.errors) } - pub fn finish(self) -> TreeArc { - let (green, _errors) = self.finish_raw(); + pub fn finish(self) -> (TreeArc, Vec) { + let (green, errors) = self.finish_raw(); let node = SyntaxNode::new(green); if cfg!(debug_assertions) { crate::validation::validate_block_structure(&node); } - node + (node, errors) } pub fn token(&mut self, kind: SyntaxKind, text: SmolStr) { -- cgit v1.2.3