Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/goto_definition.rs')
-rw-r--r--crates/ide/src/goto_definition.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/crates/ide/src/goto_definition.rs b/crates/ide/src/goto_definition.rs
index d64295bdd6..4fed1f9158 100644
--- a/crates/ide/src/goto_definition.rs
+++ b/crates/ide/src/goto_definition.rs
@@ -226,6 +226,7 @@ mod tests {
.map(|(FileRange { file_id, range }, _)| FileRange { file_id, range })
.sorted_by_key(cmp)
.collect::<Vec<_>>();
+
assert_eq!(expected, navs);
}
@@ -237,6 +238,60 @@ mod tests {
}
#[test]
+ fn goto_def_in_included_file() {
+ check(
+ r#"
+//- minicore:include
+//- /main.rs
+
+include!("a.rs");
+
+fn main() {
+ foo();
+}
+
+//- /a.rs
+fn func_in_include() {
+ //^^^^^^^^^^^^^^^
+}
+
+fn foo() {
+ func_in_include$0();
+}
+"#,
+ );
+ }
+
+ #[test]
+ fn goto_def_in_included_file_nested() {
+ check(
+ r#"
+//- minicore:include
+//- /main.rs
+
+macro_rules! passthrough {
+ ($($tt:tt)*) => { $($tt)* }
+}
+
+passthrough!(include!("a.rs"));
+
+fn main() {
+ foo();
+}
+
+//- /a.rs
+fn func_in_include() {
+ //^^^^^^^^^^^^^^^
+}
+
+fn foo() {
+ func_in_include$0();
+}
+"#,
+ );
+ }
+
+ #[test]
fn goto_def_if_items_same_name() {
check(
r#"