X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=crates%2Fide%2Fsrc%2Fdisplay%2Fnavigation_target.rs;h=00e6012442bc69e0bb13e7a501685498fa6704ab;hb=98718e0544f42e55642d2838b00d6a7bef1e2414;hp=685052e7f56bd62c6623c3941600286020ff17da;hpb=8a869e870ac6328967fb120a0ebe44a9c900eaf0;p=rust.git diff --git a/crates/ide/src/display/navigation_target.rs b/crates/ide/src/display/navigation_target.rs index 685052e7f56..00e6012442b 100644 --- a/crates/ide/src/display/navigation_target.rs +++ b/crates/ide/src/display/navigation_target.rs @@ -400,15 +400,13 @@ fn try_to_nav(&self, db: &RootDatabase) -> Option { impl ToNav for hir::Local { fn to_nav(&self, db: &RootDatabase) -> NavigationTarget { let src = self.source(db); - let (node, focus_range) = match &src.value { - Either::Left(bind_pat) => ( - bind_pat.syntax().clone(), - bind_pat - .name() - .map(|it| src.with_value(&it.syntax().clone()).original_file_range(db).range), - ), - Either::Right(it) => (it.syntax().clone(), it.self_token().map(|it| it.text_range())), + let (node, name) = match &src.value { + Either::Left(bind_pat) => (bind_pat.syntax().clone(), bind_pat.name()), + Either::Right(it) => (it.syntax().clone(), it.name()), }; + let focus_range = + name.map(|it| src.with_value(&it.syntax().clone()).original_file_range(db).range); + let full_range = src.with_value(&node).original_file_range(db); let name = match self.name(db) { Some(it) => it.to_string().into(),