about summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2018-10-23 10:07:11 -0700
committerEsteban Küber <esteban@kuber.com.ar>2018-10-23 10:07:11 -0700
commit8544db0faa9e0f7a70323ad5f3e75358bba6820d (patch)
treeb4c546213efb548d9bc6cbb71b63ccd66aa2ae30 /src/libsyntax/ext
parenta66dc8a1489d2818b5e63f18e1464be79da1f137 (diff)
downloadrust-8544db0faa9e0f7a70323ad5f3e75358bba6820d.tar.gz
rust-8544db0faa9e0f7a70323ad5f3e75358bba6820d.zip
Add macro call span when lacking any other span in diagnostic
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/tt/macro_rules.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs
index 87ade278c68..b70a7989275 100644
--- a/src/libsyntax/ext/tt/macro_rules.rs
+++ b/src/libsyntax/ext/tt/macro_rules.rs
@@ -50,7 +50,12 @@ pub struct ParserAnyMacro<'a> {
 impl<'a> ParserAnyMacro<'a> {
     pub fn make(mut self: Box<ParserAnyMacro<'a>>, kind: AstFragmentKind) -> AstFragment {
         let ParserAnyMacro { site_span, macro_ident, ref mut parser } = *self;
-        let fragment = panictry!(parser.parse_ast_fragment(kind, true));
+        let fragment = panictry!(parser.parse_ast_fragment(kind, true).map_err(|mut e| {
+            if e.span.is_dummy() {  // Get around lack of span in error (#30128)
+                e.set_span(site_span);
+            }
+            e
+        }));
 
         // We allow semicolons at the end of expressions -- e.g. the semicolon in
         // `macro_rules! m { () => { panic!(); } }` isn't parsed by `.parse_expr()`,