From 84b617b1ea700b512a6f8d79fe7ae76eb2966316 Mon Sep 17 00:00:00 2001 From: Jay Oster <jay@pubnub.com> Date: Tue, 14 May 2019 18:15:20 -0700 Subject: [PATCH] Fix features since nightly-2018-08-14 disallowed old features --- build.rs | 7 ++++++- ct.sh | 2 ++ src/lib.rs | 11 ++++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/build.rs b/build.rs index 17f5359..0f3df92 100644 --- a/build.rs +++ b/build.rs @@ -52,6 +52,11 @@ type Date = &'static str; /// versions for which to enable particular features. type ConditionalCfg = (Cfg, &'static [(Date, Cfg)]); const CONDITIONAL_CFGS: &'static [ConditionalCfg] = &[ + (None, &[("2019-02-24", Some("pattern_guards"))]), + (None, &[("2018-08-14", Some("non_exhaustive"))]), + (Some("collections"), &[("2018-08-13", None)]), + (Some("str_char"), &[("2018-08-13", None)]), + (Some("unicode"), &[("2018-08-13", None)]), (None, &[("2018-01-01", Some("core_memchr"))]), (None, &[("2017-06-15", Some("no_collections"))]), (Some("rustc_unicode"), &[("2016-12-15", Some("std_unicode")), ("2017-03-03", None)]), @@ -87,7 +92,7 @@ fn main() { let mut dest_path=PathBuf::from(env::var_os("OUT_DIR").unwrap()); dest_path.push("io.rs"); let mut f=File::create(&dest_path).unwrap(); - + let mut target_path=PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()); target_path.push("src"); target_path.push(io_commit); diff --git a/ct.sh b/ct.sh index 48a9703..b13083c 100755 --- a/ct.sh +++ b/ct.sh @@ -18,6 +18,8 @@ RUST_VERSIONS=$(awk '{print $1}' <<EOF nightly-2018-03-07 # core_io release nightly-2018-08-06 # edge case: old features allowed nightly-2018-08-14 # edge case: old features disallowed + nightly-2018-08-15 # edge case: non_exhaustive feature + nightly-2019-02-25 # edge case: bind_by_move_pattern_guards feature nightly-2019-04-27 # core_io release EOF ) diff --git a/src/lib.rs b/src/lib.rs index 8a33f3a..c527005 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,9 +3,14 @@ //! the [std documentation](https://doc.rust-lang.org/nightly/std/io/index.html) //! for a full description of the functionality. #![allow(stable_features,unused_features)] -#![feature(question_mark,const_fn,collections,alloc,unicode,copy_from_slice, - str_char,try_from,str_internals,align_offset,doc_spotlight, - slice_internals,non_exhaustive,bind_by_move_pattern_guards)] +#![feature(question_mark,const_fn,copy_from_slice,try_from,str_internals,align_offset, + doc_spotlight,slice_internals)] +#![cfg_attr(any(feature="alloc",feature="collections"),feature(alloc))] +#![cfg_attr(pattern_guards,feature(bind_by_move_pattern_guards,nll))] +#![cfg_attr(collections,feature(collections))] +#![cfg_attr(non_exhaustive,feature(non_exhaustive))] +#![cfg_attr(str_char,feature(str_char))] +#![cfg_attr(unicode,feature(unicode))] #![no_std] #[cfg_attr(feature="collections",macro_use)]