aboutsummaryrefslogtreecommitdiff
path: root/crates/ide/src/goto_definition.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-12-23 06:22:28 +0000
committerGitHub <[email protected]>2020-12-23 06:22:28 +0000
commit493e29d7132a25ce13c10393c581c2f9e1116320 (patch)
treedd47c0cf344ccf6df3bd434b4deb7d64a6ae3c96 /crates/ide/src/goto_definition.rs
parent4a2f60cb7b83e9ef95d97201d210ff6943b660eb (diff)
parent26f604b907f5c23404acec96b14e80064857cd17 (diff)
Merge #7000
7000: Store invocation site for eager macros r=edwin0cheng a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/6992 r? @edwin0cheng I'm not sure if this is totally correct, it looks like we create **two** `EagerCallLoc`s per macro invocation, one for the arguments (?), and one for the actual macro call. I gave both the same `AstId`, hopefully that's correct. Co-authored-by: Jonas Schievink <[email protected]>
Diffstat (limited to 'crates/ide/src/goto_definition.rs')
-rw-r--r--crates/ide/src/goto_definition.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/crates/ide/src/goto_definition.rs b/crates/ide/src/goto_definition.rs
index 431da5d9c..47dd85ceb 100644
--- a/crates/ide/src/goto_definition.rs
+++ b/crates/ide/src/goto_definition.rs
@@ -750,6 +750,31 @@ fn test() {
750 } 750 }
751 751
752 #[test] 752 #[test]
753 fn goto_through_included_file() {
754 check(
755 r#"
756//- /main.rs
757#[rustc_builtin_macro]
758macro_rules! include {}
759
760 include!("foo.rs");
761//^^^^^^^^^^^^^^^^^^^
762
763fn f() {
764 foo<|>();
765}
766
767mod confuse_index {
768 pub fn foo() {}
769}
770
771//- /foo.rs
772fn foo() {}
773 "#,
774 );
775 }
776
777 #[test]
753 fn goto_for_type_param() { 778 fn goto_for_type_param() {
754 check( 779 check(
755 r#" 780 r#"