diff options
| author | bors <bors@rust-lang.org> | 2016-02-17 19:15:53 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-02-17 19:15:53 +0000 |
| commit | 4d3eebff9dc9474f56cdba810edde324130fbc61 (patch) | |
| tree | bdc38e86190e9d70021357d11964530cb136d854 | |
| parent | 2051a92134bae8b4c5fd3fdeab32c78b7bd74014 (diff) | |
| parent | eca0ab25d867dd493b9a36ceaa7c79d9cb73d088 (diff) | |
| download | rust-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.
| -rw-r--r-- | src/libsyntax/ext/base.rs | 7 | ||||
| -rw-r--r-- | src/test/compile-fail/macro_undefined.rs | 25 |
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? +} |
