From 7350ce84396cb38c8d21bd9a32d13de7fb500162 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Tue, 14 Apr 2015 23:25:40 +0200 Subject: [PATCH] Strip configuration before checking feature gates of macros closes #24434 --- src/librustc_driver/driver.rs | 5 +++-- src/test/run-pass/issue-24434.rs | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 src/test/run-pass/issue-24434.rs diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index e310798b20ab7..010c0a8142c82 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -395,6 +395,9 @@ pub fn phase_2_configure_and_expand(sess: &Session, // // baz! should not use this definition unless foo is enabled. + krate = time(time_passes, "configuration 1", krate, |krate| + syntax::config::strip_unconfigured_items(sess.diagnostic(), krate)); + time(time_passes, "gated macro checking", (), |_| { let features = syntax::feature_gate::check_crate_macros(sess.codemap(), @@ -406,8 +409,6 @@ pub fn phase_2_configure_and_expand(sess: &Session, sess.abort_if_errors(); }); - krate = time(time_passes, "configuration 1", krate, |krate| - syntax::config::strip_unconfigured_items(sess.diagnostic(), krate)); krate = time(time_passes, "crate injection", krate, |krate| syntax::std_inject::maybe_inject_crates_ref(krate, diff --git a/src/test/run-pass/issue-24434.rs b/src/test/run-pass/issue-24434.rs new file mode 100644 index 0000000000000..2b0d09d746034 --- /dev/null +++ b/src/test/run-pass/issue-24434.rs @@ -0,0 +1,16 @@ +// Copyright 2015 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// compile-flags:--cfg set1 + +#![cfg_attr(set1, feature(custom_attribute))] + +#![foobar] +fn main() {}