about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-02-17 19:15:53 +0000
committerbors <bors@rust-lang.org>2016-02-17 19:15:53 +0000
commit4d3eebff9dc9474f56cdba810edde324130fbc61 (patch)
treebdc38e86190e9d70021357d11964530cb136d854 /src
parent2051a92134bae8b4c5fd3fdeab32c78b7bd74014 (diff)
parenteca0ab25d867dd493b9a36ceaa7c79d9cb73d088 (diff)
downloadrust-4d3eebff9dc9474f56cdba810edde324130fbc61.tar.gz
rust-4d3eebff9dc9474f56cdba810edde324130fbc61.zip
Auto merge of #31707 - GuillaumeGomez:macro_name, r=sfackler
I'm wondering if instead of a second help message, a note would be better. I let it up to reviewers.
Diffstat (limited to 'src')
-rw-r--r--src/libsyntax/ext/base.rs7
-rw-r--r--src/test/compile-fail/macro_undefined.rs25
2 files changed, 31 insertions, 1 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs
index 8fc72418eb0..2a9d96fa861 100644
--- a/src/libsyntax/ext/base.rs
+++ b/src/libsyntax/ext/base.rs
@@ -760,7 +760,12 @@ impl<'a> ExtCtxt<'a> {
                               err: &mut DiagnosticBuilder<'a>) {
         let names = &self.syntax_env.names;
         if let Some(suggestion) = find_best_match_for_name(names.iter(), name, None) {
-            err.fileline_help(span, &format!("did you mean `{}!`?", suggestion));
+            if suggestion != name {
+                err.fileline_help(span, &format!("did you mean `{}!`?", suggestion));
+            } else {
+                err.fileline_help(span, &format!("have you added the `#[macro_use]` on the \
+                                                  module/import?"));
+            }
         }
     }
 }
diff --git a/src/test/compile-fail/macro_undefined.rs b/src/test/compile-fail/macro_undefined.rs
new file mode 100644
index 00000000000..d9f86e3e62a
--- /dev/null
+++ b/src/test/compile-fail/macro_undefined.rs
@@ -0,0 +1,25 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// Test macro_undefined issue
+
+mod m {
+    #[macro_export]
+    macro_rules! kl {
+        () => ()
+    }
+}
+
+fn main() {
+    k!(); //~ ERROR macro undefined: 'k!'
+          //~^ HELP did you mean `kl!`?
+    kl!(); //~ ERROR macro undefined: 'kl!'
+           //~^ HELP have you added the `#[macro_use]` on the module/import?
+}