From ac37a11f04b31f792068a1cb50dbbf5ccd4d982d Mon Sep 17 00:00:00 2001 From: Veetaha Date: Sun, 26 Jan 2020 20:44:49 +0200 Subject: Reimplemented lexer with vectors instead of iterators --- crates/ra_syntax/src/syntax_node.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'crates/ra_syntax/src/syntax_node.rs') diff --git a/crates/ra_syntax/src/syntax_node.rs b/crates/ra_syntax/src/syntax_node.rs index b3eb5da63..591855302 100644 --- a/crates/ra_syntax/src/syntax_node.rs +++ b/crates/ra_syntax/src/syntax_node.rs @@ -4,7 +4,7 @@ //! `SyntaxNode`, and a basic traversal API (parent, children, siblings). //! //! The *real* implementation is in the (language-agnostic) `rowan` crate, this -//! modules just wraps its API. +//! module just wraps its API. use ra_parser::ParseError; use rowan::{GreenNodeBuilder, Language}; @@ -38,14 +38,15 @@ pub type SyntaxElementChildren = rowan::SyntaxElementChildren; pub use rowan::{Direction, NodeOrToken}; +#[derive(Default)] pub struct SyntaxTreeBuilder { errors: Vec, inner: GreenNodeBuilder<'static>, } -impl Default for SyntaxTreeBuilder { - fn default() -> SyntaxTreeBuilder { - SyntaxTreeBuilder { errors: Vec::new(), inner: GreenNodeBuilder::new() } +impl SyntaxTreeBuilder { + pub fn new(errors: Vec) -> Self { + Self { errors, inner: GreenNodeBuilder::default() } } } -- cgit v1.2.3 From 9e7eaa959f9dc368a55f1a80b35651b78b3d0883 Mon Sep 17 00:00:00 2001 From: Veetaha Date: Tue, 28 Jan 2020 07:09:13 +0200 Subject: ra_syntax: refactored the lexer design as per @matklad and @kiljacken PR review --- crates/ra_syntax/src/syntax_node.rs | 6 ------ 1 file changed, 6 deletions(-) (limited to 'crates/ra_syntax/src/syntax_node.rs') diff --git a/crates/ra_syntax/src/syntax_node.rs b/crates/ra_syntax/src/syntax_node.rs index 591855302..7c2b18af3 100644 --- a/crates/ra_syntax/src/syntax_node.rs +++ b/crates/ra_syntax/src/syntax_node.rs @@ -44,12 +44,6 @@ pub struct SyntaxTreeBuilder { inner: GreenNodeBuilder<'static>, } -impl SyntaxTreeBuilder { - pub fn new(errors: Vec) -> Self { - Self { errors, inner: GreenNodeBuilder::default() } - } -} - impl SyntaxTreeBuilder { pub(crate) fn finish_raw(self) -> (GreenNode, Vec) { let green = self.inner.finish(); -- cgit v1.2.3