about summary refs log tree commit diff
path: root/src/libsyntax_ext
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-09-21 06:25:09 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-09-24 20:22:25 +0000
commitb4906a93a04fe2659b6b0c3de49a0c5442248585 (patch)
tree392337ba586f22fb908e0297751934108d21dfa3 /src/libsyntax_ext
parent15994612563454224701ad359d79c3eb352d748e (diff)
downloadrust-b4906a93a04fe2659b6b0c3de49a0c5442248585.tar.gz
rust-b4906a93a04fe2659b6b0c3de49a0c5442248585.zip
Load macros from `#[macro_use]` extern crates in `resolve`.
Diffstat (limited to 'src/libsyntax_ext')
-rw-r--r--src/libsyntax_ext/deriving/mod.rs4
-rw-r--r--src/libsyntax_ext/lib.rs2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/libsyntax_ext/deriving/mod.rs b/src/libsyntax_ext/deriving/mod.rs
index 6162beb80ec..c3c2f7eabb9 100644
--- a/src/libsyntax_ext/deriving/mod.rs
+++ b/src/libsyntax_ext/deriving/mod.rs
@@ -195,7 +195,8 @@ pub fn expand_derive(cx: &mut ExtCtxt,
         // If custom derive extensions end up threading through the `#[derive]`
         // attribute, we'll get called again later on to continue expanding
         // those modes.
-        } else if let Some(ext) = cx.derive_modes.remove(&tname) {
+        } else if let Some(ext) =
+                   cx.resolver.resolve_derive_mode(ast::Ident::with_empty_ctxt(intern(&tname))) {
             let remaining_derives = iter.cloned().collect::<Vec<_>>();
             if remaining_derives.len() > 0 {
                 let list = cx.meta_list(titem.span,
@@ -214,7 +215,6 @@ pub fn expand_derive(cx: &mut ExtCtxt,
             let item = Annotatable::Item(item);
             let mut items = ext.expand(cx, mitem.span, &mitem, item);
             items.extend(other_items);
-            cx.derive_modes.insert(tname.clone(), ext);
             return items
 
         // If we've gotten this far then it means that we're in the territory of
diff --git a/src/libsyntax_ext/lib.rs b/src/libsyntax_ext/lib.rs
index e0c028195ba..bd9f1cf0d77 100644
--- a/src/libsyntax_ext/lib.rs
+++ b/src/libsyntax_ext/lib.rs
@@ -57,7 +57,7 @@ use syntax::parse::token::intern;
 
 pub fn register_builtins(resolver: &mut syntax::ext::base::Resolver, enable_quotes: bool) {
     let mut register = |name, ext| {
-        resolver.add_macro(Mark::root(), ast::Ident::with_empty_ctxt(intern(name)), Rc::new(ext));
+        resolver.add_ext(Mark::root(), ast::Ident::with_empty_ctxt(intern(name)), Rc::new(ext));
     };
 
     register("macro_rules", IdentTT(Box::new(MacroRulesExpander), None, false));