about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTemirkhan Myrzamadi <hirrolot@gmail.com>2020-08-29 01:01:29 +0600
committerTemirkhan Myrzamadi <hirrolot@gmail.com>2020-09-30 12:00:59 +0600
commitea7cf6106864ce7929eb9f3cfe580f05ee418ac8 (patch)
treefbb8555ec2521910554fcefdeccd914cf0ed0917
parent479298e05e8177b171c6d6bcd35fc7553b424bee (diff)
downloadrust-ea7cf6106864ce7929eb9f3cfe580f05ee418ac8.tar.gz
rust-ea7cf6106864ce7929eb9f3cfe580f05ee418ac8.zip
Don't suggest macros that out of scope
-rw-r--r--compiler/rustc_resolve/src/diagnostics.rs11
-rw-r--r--src/test/ui/issues/issue-11692-2.stderr3
-rw-r--r--src/test/ui/proc-macro/derive-helper-shadowing.stderr4
-rw-r--r--src/test/ui/proc-macro/macro-namespace-reserved-2.stderr6
4 files changed, 9 insertions, 15 deletions
diff --git a/compiler/rustc_resolve/src/diagnostics.rs b/compiler/rustc_resolve/src/diagnostics.rs
index 42af8a2fb0e..0ad057822b3 100644
--- a/compiler/rustc_resolve/src/diagnostics.rs
+++ b/compiler/rustc_resolve/src/diagnostics.rs
@@ -929,8 +929,15 @@ impl<'a> Resolver<'a> {
         );
         self.add_typo_suggestion(err, suggestion, ident.span);
 
-        let import_suggestions =
-            self.lookup_import_candidates(ident, Namespace::MacroNS, parent_scope, |_| true);
+        let import_suggestions = self.lookup_import_candidates(
+            ident,
+            Namespace::MacroNS,
+            parent_scope,
+            |res| match res {
+                Res::Def(DefKind::Macro(MacroKind::Bang), _) => true,
+                _ => false,
+            },
+        );
         show_candidates(err, None, &import_suggestions, false, true);
 
         if macro_kind == MacroKind::Derive && (ident.name == sym::Send || ident.name == sym::Sync) {
diff --git a/src/test/ui/issues/issue-11692-2.stderr b/src/test/ui/issues/issue-11692-2.stderr
index 22b4dbce54a..f021943da32 100644
--- a/src/test/ui/issues/issue-11692-2.stderr
+++ b/src/test/ui/issues/issue-11692-2.stderr
@@ -3,9 +3,6 @@ error: cannot find macro `test` in this scope
    |
 LL |     concat!(test!());
    |             ^^^^
-   |
-   = note: consider importing this attribute macro:
-           std::prelude::v1::test
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/proc-macro/derive-helper-shadowing.stderr b/src/test/ui/proc-macro/derive-helper-shadowing.stderr
index 6aff0cb8e9c..f82f49aa775 100644
--- a/src/test/ui/proc-macro/derive-helper-shadowing.stderr
+++ b/src/test/ui/proc-macro/derive-helper-shadowing.stderr
@@ -16,8 +16,6 @@ error: cannot find attribute `empty_helper` in this scope
 LL |             #[derive(GenHelperUse)]
    |                      ^^^^^^^^^^^^
    |
-   = note: consider importing this attribute macro:
-           empty_helper
    = note: this error originates in a derive macro (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error: cannot find attribute `empty_helper` in this scope
@@ -29,8 +27,6 @@ LL |         #[empty_helper]
 LL |             gen_helper_use!();
    |             ------------------ in this macro invocation
    |
-   = note: consider importing this attribute macro:
-           crate::empty_helper
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0659]: `empty_helper` is ambiguous (name vs any other name during import resolution)
diff --git a/src/test/ui/proc-macro/macro-namespace-reserved-2.stderr b/src/test/ui/proc-macro/macro-namespace-reserved-2.stderr
index 8073fafb0d8..a617319faea 100644
--- a/src/test/ui/proc-macro/macro-namespace-reserved-2.stderr
+++ b/src/test/ui/proc-macro/macro-namespace-reserved-2.stderr
@@ -93,18 +93,12 @@ error: cannot find macro `my_macro_attr` in this scope
    |
 LL |     my_macro_attr!();
    |     ^^^^^^^^^^^^^
-   |
-   = note: consider importing this attribute macro:
-           my_macro_attr
 
 error: cannot find macro `MyTrait` in this scope
   --> $DIR/macro-namespace-reserved-2.rs:33:5
    |
 LL |     MyTrait!();
    |     ^^^^^^^
-   |
-   = note: consider importing this derive macro:
-           MyTrait
 
 error: cannot find attribute `my_macro` in this scope
   --> $DIR/macro-namespace-reserved-2.rs:38:3