about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-04-16 11:27:52 +0000
committerbors <bors@rust-lang.org>2015-04-16 11:27:52 +0000
commitac2b6f6066adeb79629604a92ecb871c642d045d (patch)
tree69865e55b762eedbfb4caf0c380d39b681dfa262
parent8f209d5a3e07b01de3a670689c4929870b40db7d (diff)
parent7350ce84396cb38c8d21bd9a32d13de7fb500162 (diff)
downloadrust-ac2b6f6066adeb79629604a92ecb871c642d045d.tar.gz
rust-ac2b6f6066adeb79629604a92ecb871c642d045d.zip
Auto merge of #24437 - fhahn:issue-24434, r=alexcrichton
closes #24434 

This PR changes executes `syntax::config::strip_unconfigured_items` before `syntax::feature_gate::check_crate_macros(sess.codemap()`. As far as I know, `strip_unconfigured_items` should be independent of `check_crate_macros`.
-rw-r--r--src/librustc_driver/driver.rs5
-rw-r--r--src/test/run-pass/issue-24434.rs16
2 files changed, 19 insertions, 2 deletions
diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs
index 1453c9b784b..07fa997fe1e 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 00000000000..2b0d09d7460
--- /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 <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.
+
+// compile-flags:--cfg set1
+
+#![cfg_attr(set1, feature(custom_attribute))]
+
+#![foobar]
+fn main() {}