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.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/crates/ide/src/goto_definition.rs b/crates/ide/src/goto_definition.rs
index 971cd3ef58..8836166d96 100644
--- a/crates/ide/src/goto_definition.rs
+++ b/crates/ide/src/goto_definition.rs
@@ -2750,4 +2750,36 @@ fn foo() {
"#,
);
}
+
+ #[test]
+ fn issue_18138() {
+ check(
+ r#"
+mod foo {
+ macro_rules! x {
+ () => {
+ pub struct Foo;
+ // ^^^
+ };
+ }
+ pub(crate) use x as m;
+}
+
+mod bar {
+ use crate::m;
+
+ m!();
+ // ^^^^^
+
+ fn qux() {
+ Foo$0;
+ }
+}
+
+mod m {}
+
+use foo::m;
+"#,
+ );
+ }
}