Unnamed repository; edit this file 'description' to name the repository.
fix ast::Path::segments implementation
| -rw-r--r-- | crates/syntax/src/ast/node_ext.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/crates/syntax/src/ast/node_ext.rs b/crates/syntax/src/ast/node_ext.rs index a7e4899fb7..bc32220b41 100644 --- a/crates/syntax/src/ast/node_ext.rs +++ b/crates/syntax/src/ast/node_ext.rs @@ -289,8 +289,15 @@ impl ast::Path { } pub fn segments(&self) -> impl Iterator<Item = ast::PathSegment> + Clone { - successors(self.first_segment(), |p| { - p.parent_path().parent_path().and_then(|p| p.segment()) + let path_range = self.syntax().text_range(); + successors(self.first_segment(), move |p| { + p.parent_path().parent_path().and_then(|p| { + if path_range.contains_range(p.syntax().text_range()) { + p.segment() + } else { + None + } + }) }) } |