diff options
| author | Steven Fackler <sfackler@gmail.com> | 2014-02-10 19:45:28 -0800 |
|---|---|---|
| committer | Steven Fackler <sfackler@gmail.com> | 2014-02-10 20:10:17 -0800 |
| commit | ccd1cda10eaa570e67d8daccfcb3e0e3b651da2d (patch) | |
| tree | d10d59d520c49c7412f992357816def6a9757912 /src | |
| parent | 47ab5d2d42aaf9e04afe6cc5aa84446e523d83ff (diff) | |
| download | rust-ccd1cda10eaa570e67d8daccfcb3e0e3b651da2d.tar.gz rust-ccd1cda10eaa570e67d8daccfcb3e0e3b651da2d.zip | |
Ignore #[phase] on use view items
Closes #11806
Diffstat (limited to 'src')
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 21 | ||||
| -rw-r--r-- | src/test/run-pass/phase-use-ignored.rs | 19 |
2 files changed, 32 insertions, 8 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index cfad88e2482..69611829c7c 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -394,15 +394,20 @@ pub fn expand_item_mac(it: @ast::Item, fld: &mut MacroExpander) pub fn expand_view_item(vi: &ast::ViewItem, fld: &mut MacroExpander) -> ast::ViewItem { - let should_load = vi.attrs.iter().any(|attr| { - attr.name().get() == "phase" && - attr.meta_item_list().map_or(false, |phases| { - attr::contains_name(phases, "syntax") - }) - }); + match vi.node { + ast::ViewItemExternMod(..) => { + let should_load = vi.attrs.iter().any(|attr| { + attr.name().get() == "phase" && + attr.meta_item_list().map_or(false, |phases| { + attr::contains_name(phases, "syntax") + }) + }); - if should_load { - load_extern_macros(vi, fld); + if should_load { + load_extern_macros(vi, fld); + } + } + ast::ViewItemUse(_) => {} } noop_fold_view_item(vi, fld) diff --git a/src/test/run-pass/phase-use-ignored.rs b/src/test/run-pass/phase-use-ignored.rs new file mode 100644 index 00000000000..6819ab347b0 --- /dev/null +++ b/src/test/run-pass/phase-use-ignored.rs @@ -0,0 +1,19 @@ +// Copyright 2014 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +//xfail-fast + +#[feature(phase)]; + +#[phase(syntax)] +use std::mem; + +fn main() {} + |
