Use SyntaxNode.ancestors instead of a loop
This commit is contained in:
parent
6bbeffc8c5
commit
3eea41a68c
@ -176,13 +176,7 @@ pub(crate) fn new(
|
||||
|
||||
/// Returns the function in which SSR was invoked, if any.
|
||||
pub(crate) fn current_function(&self) -> Option<SyntaxNode> {
|
||||
let mut node = self.node.clone();
|
||||
loop {
|
||||
if node.kind() == SyntaxKind::FN {
|
||||
return Some(node);
|
||||
}
|
||||
node = node.parent()?;
|
||||
}
|
||||
self.node.ancestors().find(|node| node.kind() == SyntaxKind::FN).map(|node| node.clone())
|
||||
}
|
||||
|
||||
fn resolve_path(&self, path: &ast::Path) -> Option<hir::PathResolution> {
|
||||
|
Loading…
Reference in New Issue
Block a user