diff options
| author | bors <bors@rust-lang.org> | 2016-06-18 20:12:09 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-06-18 20:12:09 -0700 |
| commit | b1ae194fa665265cbabdfdd1d1d43fc8bb47362a (patch) | |
| tree | 13530fe031f9aa00ac4a02ab4f4353b8205b73ff /src/libsyntax/ext/base.rs | |
| parent | 9a681247379190896b9f56a3fb11c94ee4b83dce (diff) | |
| parent | c41cf30e9d0a5ae47e944fd8ee27eda9ce815ee1 (diff) | |
| download | rust-b1ae194fa665265cbabdfdd1d1d43fc8bb47362a.tar.gz rust-b1ae194fa665265cbabdfdd1d1d43fc8bb47362a.zip | |
Auto merge of #34295 - jseyfried:cfg_decoration, r=eddyb
Perform `cfg` attribute processing on decorator-generated items Fixes https://users.rust-lang.org/t/unused-attribute-warning-for-custom-derive-attribute/6180. r? @nrc
Diffstat (limited to 'src/libsyntax/ext/base.rs')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 4f700e9170f..5da81a269ab 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -94,6 +94,16 @@ impl Annotatable { _ => panic!("expected Item") } } + + pub fn fold_with<F: Folder>(self, folder: &mut F) -> SmallVector<Self> { + match self { + Annotatable::Item(item) => folder.fold_item(item).map(Annotatable::Item), + Annotatable::ImplItem(item) => + folder.fold_impl_item(item.unwrap()).map(|item| Annotatable::ImplItem(P(item))), + Annotatable::TraitItem(item) => + folder.fold_trait_item(item.unwrap()).map(|item| Annotatable::TraitItem(P(item))), + } + } } // A more flexible ItemDecorator. |
