]> git.lizzy.rs Git - rust.git/commitdiff
Give variant spans used in derives the correct expansion id
authorNick Cameron <ncameron@mozilla.com>
Thu, 27 Oct 2016 21:49:45 +0000 (10:49 +1300)
committerNick Cameron <ncameron@mozilla.com>
Thu, 27 Oct 2016 21:49:45 +0000 (10:49 +1300)
This fixes a problem in save-analysis where it mistakes a path to a variant as the variant itself.

src/librustc_save_analysis/dump_visitor.rs
src/libsyntax_ext/deriving/generic/mod.rs

index 1c60ccb9765880f8a197eeeecb6171b6aa10f79a..47d5a1e36b177e2bd0cca37ccbdcd4103defb16e 100644 (file)
@@ -166,6 +166,7 @@ fn process_path_prefixes(&self, path: &ast::Path) -> Vec<(Span, String)> {
                        loc.file.name,
                        loc.line);
             }
+            error!("    master span: {:?}: `{}`", path.span, self.span.snippet(path.span));
             return vec!();
         }
 
index bc47d8f4e613741977ac0dc0a52c3b78acd40aed..687f8c902f2597fd9858d22aaba1139a94c41b6e 100644 (file)
@@ -1460,8 +1460,9 @@ fn expand_static_enum_method_body(&self,
             .iter()
             .map(|v| {
                 let ident = v.node.name;
+                let sp = Span { expn_id: trait_.span.expn_id, ..v.span };
                 let summary = trait_.summarise_struct(cx, &v.node.data);
-                (ident, v.span, summary)
+                (ident, sp, summary)
             })
             .collect();
         self.call_substructure_method(cx,