aboutsummaryrefslogtreecommitdiff
path: root/crates/syntax/src/ast/make.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-08-31 14:48:07 +0100
committerGitHub <[email protected]>2020-08-31 14:48:07 +0100
commit753af410056937d7be3a1b3457c834a887288957 (patch)
tree1e1420034351cee24f789d9398ec029b7a506f33 /crates/syntax/src/ast/make.rs
parentac4b134c6be27642dbe915f32a41f9a21bd0c1c9 (diff)
parentb1f59ff6c1dcb88f75e999324d6bb95dfdb78da3 (diff)
Merge #5920
5920: Reduce path_from_text usage r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/syntax/src/ast/make.rs')
-rw-r--r--crates/syntax/src/ast/make.rs15
1 files changed, 1 insertions, 14 deletions
diff --git a/crates/syntax/src/ast/make.rs b/crates/syntax/src/ast/make.rs
index 7ba625990..c2c938ad1 100644
--- a/crates/syntax/src/ast/make.rs
+++ b/crates/syntax/src/ast/make.rs
@@ -33,6 +33,7 @@ pub fn path_unqualified(segment: ast::PathSegment) -> ast::Path {
33pub fn path_qualified(qual: ast::Path, segment: ast::PathSegment) -> ast::Path { 33pub fn path_qualified(qual: ast::Path, segment: ast::PathSegment) -> ast::Path {
34 path_from_text(&format!("{}::{}", qual, segment)) 34 path_from_text(&format!("{}::{}", qual, segment))
35} 35}
36// FIXME: make this private
36pub fn path_from_text(text: &str) -> ast::Path { 37pub fn path_from_text(text: &str) -> ast::Path {
37 ast_from_text(text) 38 ast_from_text(text)
38} 39}
@@ -144,10 +145,6 @@ fn expr_from_text(text: &str) -> ast::Expr {
144 ast_from_text(&format!("const C: () = {};", text)) 145 ast_from_text(&format!("const C: () = {};", text))
145} 146}
146 147
147pub fn try_expr_from_text(text: &str) -> Option<ast::Expr> {
148 try_ast_from_text(&format!("const C: () = {};", text))
149}
150
151pub fn condition(expr: ast::Expr, pattern: Option<ast::Pat>) -> ast::Condition { 148pub fn condition(expr: ast::Expr, pattern: Option<ast::Pat>) -> ast::Condition {
152 match pattern { 149 match pattern {
153 None => ast_from_text(&format!("const _: () = while {} {{}};", expr)), 150 None => ast_from_text(&format!("const _: () = while {} {{}};", expr)),
@@ -332,16 +329,6 @@ fn ast_from_text<N: AstNode>(text: &str) -> N {
332 node 329 node
333} 330}
334 331
335fn try_ast_from_text<N: AstNode>(text: &str) -> Option<N> {
336 let parse = SourceFile::parse(text);
337 let node = parse.tree().syntax().descendants().find_map(N::cast)?;
338 let node = node.syntax().clone();
339 let node = unroot(node);
340 let node = N::cast(node).unwrap();
341 assert_eq!(node.syntax().text_range().start(), 0.into());
342 Some(node)
343}
344
345fn unroot(n: SyntaxNode) -> SyntaxNode { 332fn unroot(n: SyntaxNode) -> SyntaxNode {
346 SyntaxNode::new_root(n.green().clone()) 333 SyntaxNode::new_root(n.green().clone())
347} 334}