diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-09-21 06:25:09 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-09-24 20:22:25 +0000 |
| commit | b4906a93a04fe2659b6b0c3de49a0c5442248585 (patch) | |
| tree | 392337ba586f22fb908e0297751934108d21dfa3 /src/libsyntax_ext | |
| parent | 15994612563454224701ad359d79c3eb352d748e (diff) | |
| download | rust-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.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax_ext/lib.rs | 2 |
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)); |
