diff options
-rw-r--r-- | crates/ra_syntax/src/ast/edit.rs | 10 |
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 | ||
252 | impl 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] |
253 | pub fn strip_attrs_and_docs<N: ast::AttrsOwner>(node: &N) -> N { | 263 | pub 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() |