From 43624e8e7f44e082658db95dbff795c70af96b12 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Fri, 5 Feb 2016 12:30:28 +0100 Subject: [PATCH 1/4] add a build.rs file to the stable-only syntex example --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 1c1835de..5d20923f 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,28 @@ fn main() { } ``` +`build.rs` + +```rust +extern crate syntex; +extern crate serde_codegen; + +use std::env; +use std::path::Path; + +pub fn main() { + let out_dir = env::var_os("OUT_DIR").unwrap(); + + let src = Path::new("src/main.rs.in"); + let dst = Path::new(&out_dir).join("main.rs"); + + let mut registry = syntex::Registry::new(); + + serde_codegen::register(&mut registry); + registry.expand("", &src, &dst).unwrap(); +} +``` + This also produces: ``` From da7bb8e1096b25fefebf7cd0d9ab60f1a7ee92a5 Mon Sep 17 00:00:00 2001 From: Christopher Brickley Date: Sat, 6 Feb 2016 14:17:02 -0500 Subject: [PATCH 2/4] fix(clippy): make clippy optional --- serde_macros/Cargo.toml | 2 +- serde_macros/benches/bench.rs | 2 +- serde_macros/src/lib.rs | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/serde_macros/Cargo.toml b/serde_macros/Cargo.toml index 92ee340b..a0333cb3 100644 --- a/serde_macros/Cargo.toml +++ b/serde_macros/Cargo.toml @@ -13,7 +13,7 @@ name = "serde_macros" plugin = true [dependencies] -clippy = "^0.0.37" +clippy = { version = "^0.0.37", optional = true } serde_codegen = { version = "^0.6.10", path = "../serde_codegen", default-features = false, features = ["nightly"] } [dev-dependencies] diff --git a/serde_macros/benches/bench.rs b/serde_macros/benches/bench.rs index 7b545011..3f607229 100644 --- a/serde_macros/benches/bench.rs +++ b/serde_macros/benches/bench.rs @@ -1,5 +1,5 @@ #![feature(custom_attribute, custom_derive, plugin, test)] -#![plugin(clippy)] +#![cfg_attr(feature = "clippy", plugin(clippy))] #![plugin(serde_macros)] extern crate num; diff --git a/serde_macros/src/lib.rs b/serde_macros/src/lib.rs index edd2addc..077fdccf 100644 --- a/serde_macros/src/lib.rs +++ b/serde_macros/src/lib.rs @@ -1,5 +1,6 @@ -#![feature(plugin, plugin_registrar, rustc_private)] -#![plugin(clippy)] +#![feature(plugin_registrar, rustc_private)] +#![cfg_attr(feature = "clippy", feature(plugin))] +#![cfg_attr(feature = "clippy", plugin(clippy))] extern crate serde_codegen; extern crate rustc_plugin; From 517c2f79b70bce21846b0ebfaa242fc74adba03b Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Mon, 8 Feb 2016 13:35:26 -0800 Subject: [PATCH 3/4] chore(cargo): Only depend on clippy when testing --- .travis.yml | 6 ++++-- serde/Cargo.toml | 2 +- serde_codegen/Cargo.toml | 3 ++- serde_macros/Cargo.toml | 13 ++++++++++++- serde_tests/Cargo.toml | 2 +- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 636d4faa..9cd70d80 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,9 +22,11 @@ script: - | (cd serde && travis-cargo build) && (cd serde && travis-cargo test) && + (cd serde && travis-cargo --only nightly test -- --features nightly-testing) && (cd serde_tests && travis-cargo test) && - (cd serde_macros && travis-cargo --only nightly test) && - (cd serde_macros && travis-cargo --only nightly bench) && + (cd serde_tests && travis-cargo --only nightly test -- --features nightly-testing) && + (cd serde_macros && travis-cargo --only nightly test -- --features nightly-testing) && + (cd serde_macros && travis-cargo --only nightly bench -- --features nightly-testing) && (cd serde && travis-cargo --only stable doc) && (cd serde_codegen && travis-cargo --only stable doc) diff --git a/serde/Cargo.toml b/serde/Cargo.toml index 2c2cef80..c4fb239f 100644 --- a/serde/Cargo.toml +++ b/serde/Cargo.toml @@ -10,7 +10,7 @@ readme = "../README.md" keywords = ["serde", "serialization"] [features] -nightly = ["clippy"] +nightly-testing = ["clippy"] num-bigint = ["num/bigint"] num-complex = ["num/complex"] num-impls = ["num-bigint", "num-complex", "num-rational"] diff --git a/serde_codegen/Cargo.toml b/serde_codegen/Cargo.toml index ac438582..8cd05f5e 100644 --- a/serde_codegen/Cargo.toml +++ b/serde_codegen/Cargo.toml @@ -11,7 +11,8 @@ keywords = ["serde", "serialization"] [features] default = ["with-syntex"] -nightly = ["clippy", "quasi_macros"] +nightly = ["quasi_macros"] +nightly-testing = ["clippy"] with-syntex = ["quasi/with-syntex", "quasi_codegen", "quasi_codegen/with-syntex", "syntex", "syntex_syntax"] [build-dependencies] diff --git a/serde_macros/Cargo.toml b/serde_macros/Cargo.toml index a0333cb3..d4a57b68 100644 --- a/serde_macros/Cargo.toml +++ b/serde_macros/Cargo.toml @@ -12,6 +12,9 @@ keywords = ["serde", "serialization"] name = "serde_macros" plugin = true +[features] +nightly-testing = ["clippy", "serde/nightly-testing", "serde_codegen/nightly-testing"] + [dependencies] clippy = { version = "^0.0.37", optional = true } serde_codegen = { version = "^0.6.10", path = "../serde_codegen", default-features = false, features = ["nightly"] } @@ -20,4 +23,12 @@ serde_codegen = { version = "^0.6.10", path = "../serde_codegen", default-featur compiletest_rs = "^0.0.11" num = "^0.1.27" rustc-serialize = "^0.3.16" -serde = { version = "^0.6.10", path = "../serde", features = ["nightly", "num-impls"] } +serde = { version = "^0.6.10", path = "../serde", features = ["num-impls"] } + +[[test]] +name = "test" +path = "tests/test.rs" + +[[bench]] +name = "bench" +path = "benches/bench.rs" diff --git a/serde_tests/Cargo.toml b/serde_tests/Cargo.toml index dc5b5421..4a64b152 100644 --- a/serde_tests/Cargo.toml +++ b/serde_tests/Cargo.toml @@ -11,7 +11,7 @@ keywords = ["serialization"] build = "build.rs" [features] -nightly = ["clippy", "serde/nightly"] +nightly-testing = ["clippy", "serde/nightly-testing", "serde_codegen/nightly-testing"] [build-dependencies] syntex = { version = "^0.26.0" } From 7a3e3a61f46602596fb5de83fd386e04f25f6faf Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Mon, 8 Feb 2016 13:37:03 -0800 Subject: [PATCH 4/4] chore(tests): Silence some warnings --- serde_tests/benches/bench_map.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/serde_tests/benches/bench_map.rs b/serde_tests/benches/bench_map.rs index 71d0ab92..37df96e6 100644 --- a/serde_tests/benches/bench_map.rs +++ b/serde_tests/benches/bench_map.rs @@ -399,7 +399,7 @@ fn bench_decoder_000(b: &mut Bencher) { fn bench_decoder_003(b: &mut Bencher) { b.iter(|| { let mut m: HashMap = HashMap::new(); - for i in (0 .. 3) { + for i in 0 .. 3 { m.insert(i.to_string(), i); } run_decoder(decoder::IsizeDecoder::new(m.clone()), m) @@ -410,7 +410,7 @@ fn bench_decoder_003(b: &mut Bencher) { fn bench_decoder_100(b: &mut Bencher) { b.iter(|| { let mut m: HashMap = HashMap::new(); - for i in (0 .. 100) { + for i in 0 .. 100 { m.insert(i.to_string(), i); } run_decoder(decoder::IsizeDecoder::new(m.clone()), m) @@ -439,7 +439,7 @@ fn bench_deserializer_000(b: &mut Bencher) { fn bench_deserializer_003(b: &mut Bencher) { b.iter(|| { let mut m: HashMap = HashMap::new(); - for i in (0 .. 3) { + for i in 0 .. 3 { m.insert(i.to_string(), i); } run_deserializer(deserializer::IsizeDeserializer::new(m.clone()), m) @@ -450,7 +450,7 @@ fn bench_deserializer_003(b: &mut Bencher) { fn bench_deserializer_100(b: &mut Bencher) { b.iter(|| { let mut m: HashMap = HashMap::new(); - for i in (0 .. 100) { + for i in 0 .. 100 { m.insert(i.to_string(), i); } run_deserializer(deserializer::IsizeDeserializer::new(m.clone()), m)