aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-03-05 17:38:52 +0000
committerAleksey Kladov <[email protected]>2020-03-05 17:38:52 +0000
commit381ace587eb1629019d5d07eba571ddc9d27cc08 (patch)
tree37b65e35065f60a68e08bbfc9aa52e618e8aacad /crates/ra_syntax/src
parentfc4d0a7768c95ba50a224cab401b3a04501463d3 (diff)
Add with_use_tree
Diffstat (limited to 'crates/ra_syntax/src')
-rw-r--r--crates/ra_syntax/src/ast/edit.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/ra_syntax/src/ast/edit.rs b/crates/ra_syntax/src/ast/edit.rs
index d2630e9e9..1858e2b6c 100644
--- a/crates/ra_syntax/src/ast/edit.rs
+++ b/crates/ra_syntax/src/ast/edit.rs
@@ -249,6 +249,16 @@ impl ast::PathSegment {
249 } 249 }
250} 250}
251 251
252impl ast::UseItem {
253 #[must_use]
254 pub fn with_use_tree(&self, use_tree: ast::UseTree) -> ast::UseItem {
255 if let Some(old) = self.use_tree() {
256 return replace_descendants(self, iter::once((old, use_tree)));
257 }
258 self.clone()
259 }
260}
261
252#[must_use] 262#[must_use]
253pub fn strip_attrs_and_docs<N: ast::AttrsOwner>(node: &N) -> N { 263pub fn strip_attrs_and_docs<N: ast::AttrsOwner>(node: &N) -> N {
254 N::cast(strip_attrs_and_docs_inner(node.syntax().clone())).unwrap() 264 N::cast(strip_attrs_and_docs_inner(node.syntax().clone())).unwrap()