diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-09 00:47:52 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-09 00:49:42 +0000 |
| commit | dbf0326ddc041e772b5ab07b19e893e8955bf934 (patch) | |
| tree | 963e18545279512da44b52de59b21ee3121239b2 /src/libsyntax | |
| parent | 13e3925e8d816b71f3d857217981d2e3d9988b5e (diff) | |
| download | rust-dbf0326ddc041e772b5ab07b19e893e8955bf934.tar.gz rust-dbf0326ddc041e772b5ab07b19e893e8955bf934.zip | |
Add comment and clean up `expand_annotatable`
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 14 |
2 files changed, 8 insertions, 8 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 4b7086695eb..95624a43373 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -942,6 +942,8 @@ impl SyntaxEnv { } pub fn is_crate_root(&mut self) -> bool { + // The first frame is pushed in `SyntaxEnv::new()` and the second frame is + // pushed when folding the crate root pseudo-module (c.f. noop_fold_crate). self.chain.len() == 2 } } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index c581a149f43..15d192b59b8 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -726,13 +726,11 @@ fn expand_annotatable(a: Annotatable, let new_items: SmallVector<Annotatable> = match a { Annotatable::Item(it) => match it.node { ast::ItemKind::Mac(..) => { - let new_items: SmallVector<P<ast::Item>> = it.and_then(|it| match it.node { + it.and_then(|it| match it.node { ItemKind::Mac(mac) => expand_mac_invoc(mac, Some(it.ident), it.attrs, it.span, fld), _ => unreachable!(), - }); - - new_items.into_iter().map(|i| Annotatable::Item(i)).collect() + }) } ast::ItemKind::Mod(_) | ast::ItemKind::ForeignMod(_) => { let valid_ident = @@ -748,7 +746,7 @@ fn expand_annotatable(a: Annotatable, if valid_ident { fld.cx.mod_pop(); } - result.into_iter().map(|i| Annotatable::Item(i)).collect() + result }, ast::ItemKind::ExternCrate(_) => { // We need to error on `#[macro_use] extern crate` when it isn't at the @@ -757,10 +755,10 @@ fn expand_annotatable(a: Annotatable, for def in fld.cx.loader.load_crate(&it, allows_macros) { fld.cx.insert_macro(def); } - SmallVector::one(Annotatable::Item(it)) + SmallVector::one(it) }, - _ => noop_fold_item(it, fld).into_iter().map(|i| Annotatable::Item(i)).collect(), - }, + _ => noop_fold_item(it, fld), + }.into_iter().map(|i| Annotatable::Item(i)).collect(), Annotatable::TraitItem(it) => match it.node { ast::TraitItemKind::Method(_, Some(_)) => { |
