mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-11-06 13:22:56 +00:00
Merge #9362
9362: feature: massively improve performance for large files r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
commit
8b3d93ee29
@ -35,7 +35,7 @@ impl SyntaxNodePtr {
|
|||||||
pub fn to_node(&self, root: &SyntaxNode) -> SyntaxNode {
|
pub fn to_node(&self, root: &SyntaxNode) -> SyntaxNode {
|
||||||
assert!(root.parent().is_none());
|
assert!(root.parent().is_none());
|
||||||
successors(Some(root.clone()), |node| {
|
successors(Some(root.clone()), |node| {
|
||||||
node.children().find(|it| it.text_range().contains_range(self.range))
|
node.child_or_token_at_range(self.range).and_then(|it| it.into_node())
|
||||||
})
|
})
|
||||||
.find(|it| it.text_range() == self.range && it.kind() == self.kind)
|
.find(|it| it.text_range() == self.range && it.kind() == self.kind)
|
||||||
.unwrap_or_else(|| panic!("can't resolve local ptr to SyntaxNode: {:?}", self))
|
.unwrap_or_else(|| panic!("can't resolve local ptr to SyntaxNode: {:?}", self))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user