diff options
| author | Jonas Schievink <jonas@schievink.net> | 2015-09-14 16:09:57 +0200 |
|---|---|---|
| committer | Jonas Schievink <jonas@schievink.net> | 2015-09-14 16:09:57 +0200 |
| commit | 0be755c24a81f3c7c07dcd50406c9f17bee0d6ac (patch) | |
| tree | cfb2e53b8036abf4e0d8ca5c4ccd951254f6eba9 /src/libsyntax | |
| parent | f3308b9c9d9b0cd5ace3d1fa4d3b0194a78187d0 (diff) | |
| download | rust-0be755c24a81f3c7c07dcd50406c9f17bee0d6ac.tar.gz rust-0be755c24a81f3c7c07dcd50406c9f17bee0d6ac.zip | |
Print the file in which a macro was defined
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/diagnostic.rs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs index c78086bda64..c177eb1f00b 100644 --- a/src/libsyntax/diagnostic.rs +++ b/src/libsyntax/diagnostic.rs @@ -742,11 +742,20 @@ impl EmitterWriter { // Don't print recursive invocations if ei.call_site != last_span { last_span = ei.call_site; - try!(self.print_diagnostic(&cm.span_to_string(ei.call_site), Note, - &format!("in this expansion of {}{}{}", - pre, - ei.callee.name(), - post), + + let mut diag_string = format!("in this expansion of {}{}{}", + pre, + ei.callee.name(), + post); + + if let Some(def_site_span) = ei.callee.span { + diag_string.push_str(&format!(" (defined in {})", + cm.span_to_filename(def_site_span))); + } + + try!(self.print_diagnostic(&cm.span_to_string(ei.call_site), + Note, + &diag_string, None)); } Ok(Some(ei.call_site)) |
