From 0650f77dd9defaf352f81c5ee4ee73a1eae942b7 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov <aleksey.kladov@gmail.com> Date: Mon, 10 May 2021 19:04:41 +0300 Subject: internal: remove one more immutable tree --- crates/syntax/src/ast/make.rs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'crates/syntax/src/ast') diff --git a/crates/syntax/src/ast/make.rs b/crates/syntax/src/ast/make.rs index 1998ad1f6..de04c8620 100644 --- a/crates/syntax/src/ast/make.rs +++ b/crates/syntax/src/ast/make.rs @@ -12,7 +12,7 @@ use itertools::Itertools; use stdx::{format_to, never}; -use crate::{ast, AstNode, SourceFile, SyntaxKind, SyntaxNode, SyntaxToken}; +use crate::{ast, AstNode, SourceFile, SyntaxKind, SyntaxToken}; /// While the parent module defines basic atomic "constructors", the `ext` /// module defines shortcuts for common things. @@ -601,17 +601,11 @@ fn ast_from_text<N: AstNode>(text: &str) -> N { panic!("Failed to make ast node `{}` from text {}", std::any::type_name::<N>(), text) } }; - let node = node.syntax().clone(); - let node = unroot(node); - let node = N::cast(node).unwrap(); + let node = node.clone_subtree(); assert_eq!(node.syntax().text_range().start(), 0.into()); node } -fn unroot(n: SyntaxNode) -> SyntaxNode { - SyntaxNode::new_root(n.green().into()) -} - pub fn token(kind: SyntaxKind) -> SyntaxToken { tokens::SOURCE_FILE .tree() -- cgit v1.2.3