From 204a000dd8f707a4d36eaff60d72be678fdaf00e Mon Sep 17 00:00:00 2001 From: messense Date: Sat, 3 Mar 2018 14:48:17 +0800 Subject: [PATCH 1/4] Use serde_json instead of rustc-serialize --- Cargo.toml | 4 +++- src/json.rs | 12 ++++++------ src/lib.rs | 4 +++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f6a0343..5b6c249 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,8 +19,10 @@ diff = "0.1.10" filetime = "0.1" getopts = "0.2" log = "0.3" -rustc-serialize = "0.3" tempdir = { version = "0.3", optional = true } +serde = "1.0" +serde_json = "1.0" +serde_derive = "1.0" [target."cfg(unix)".dependencies] libc = "0.2" diff --git a/src/json.rs b/src/json.rs index 8e9cd1a..ced336e 100644 --- a/src/json.rs +++ b/src/json.rs @@ -9,7 +9,7 @@ // except according to those terms. use errors::{Error, ErrorKind}; -use rustc_serialize::json; +use serde_json; use std::str::FromStr; use std::path::Path; use runtest::ProcRes; @@ -17,7 +17,7 @@ use runtest::ProcRes; // These structs are a subset of the ones found in // `syntax::json`. -#[derive(RustcEncodable, RustcDecodable)] +#[derive(Serialize, Deserialize)] struct Diagnostic { message: String, code: Option, @@ -27,7 +27,7 @@ struct Diagnostic { rendered: Option, } -#[derive(RustcEncodable, RustcDecodable, Clone)] +#[derive(Serialize, Deserialize, Clone)] struct DiagnosticSpan { file_name: String, line_start: usize, @@ -40,7 +40,7 @@ struct DiagnosticSpan { expansion: Option>, } -#[derive(RustcEncodable, RustcDecodable, Clone)] +#[derive(Serialize, Deserialize, Clone)] struct DiagnosticSpanMacroExpansion { /// span where macro was applied to generate this code span: DiagnosticSpan, @@ -49,7 +49,7 @@ struct DiagnosticSpanMacroExpansion { macro_decl_name: String, } -#[derive(RustcEncodable, RustcDecodable, Clone)] +#[derive(Serialize, Deserialize, Clone)] struct DiagnosticCode { /// The code itself. code: String, @@ -67,7 +67,7 @@ fn parse_line(file_name: &str, line: &str, output: &str, proc_res: &ProcRes) -> // The compiler sometimes intermingles non-JSON stuff into the // output. This hack just skips over such lines. Yuck. if line.starts_with('{') { - match json::decode::(line) { + match serde_json::from_str::(line) { Ok(diagnostic) => { let mut expected_errors = vec![]; push_expected_errors(&mut expected_errors, &diagnostic, &[], file_name); diff --git a/src/lib.rs b/src/lib.rs index 95fe86b..8813236 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,7 +20,6 @@ extern crate libc; extern crate test; extern crate rustc; -extern crate rustc_serialize; #[cfg(feature = "tmp")] extern crate tempdir; @@ -28,6 +27,9 @@ extern crate rustc_serialize; extern crate log; extern crate filetime; extern crate diff; +extern crate serde_json; +#[macro_use] +extern crate serde_derive; use std::env; use std::ffi::OsString; From 23ad4c062db538fc80b3e599a17e186cc3f5c13f Mon Sep 17 00:00:00 2001 From: messense Date: Sat, 3 Mar 2018 14:51:29 +0800 Subject: [PATCH 2/4] derive Serialize is not needed --- src/json.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/json.rs b/src/json.rs index ced336e..ac76b7f 100644 --- a/src/json.rs +++ b/src/json.rs @@ -17,7 +17,7 @@ use runtest::ProcRes; // These structs are a subset of the ones found in // `syntax::json`. -#[derive(Serialize, Deserialize)] +#[derive(Deserialize)] struct Diagnostic { message: String, code: Option, @@ -27,7 +27,7 @@ struct Diagnostic { rendered: Option, } -#[derive(Serialize, Deserialize, Clone)] +#[derive(Deserialize, Clone)] struct DiagnosticSpan { file_name: String, line_start: usize, @@ -40,7 +40,7 @@ struct DiagnosticSpan { expansion: Option>, } -#[derive(Serialize, Deserialize, Clone)] +#[derive(Deserialize, Clone)] struct DiagnosticSpanMacroExpansion { /// span where macro was applied to generate this code span: DiagnosticSpan, @@ -49,7 +49,7 @@ struct DiagnosticSpanMacroExpansion { macro_decl_name: String, } -#[derive(Serialize, Deserialize, Clone)] +#[derive(Deserialize, Clone)] struct DiagnosticCode { /// The code itself. code: String, From 9a2bd4178f4078b21fb8065eac66bf3e7f7f32c2 Mon Sep 17 00:00:00 2001 From: messense Date: Wed, 7 Mar 2018 10:36:14 +0800 Subject: [PATCH 3/4] Use winapi 0.3 --- Cargo.toml | 4 ++-- src/read2.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 5b6c249..63ebe19 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,8 +28,8 @@ serde_derive = "1.0" libc = "0.2" [target."cfg(windows)".dependencies] -miow = "0.2" -winapi = "0.2" +miow = "0.3" +winapi = { version = "0.3", features = ["winerror"] } [features] tmp = ["tempdir"] diff --git a/src/read2.rs b/src/read2.rs index 1d8816c..312e5b4 100644 --- a/src/read2.rs +++ b/src/read2.rs @@ -115,7 +115,7 @@ mod imp { use self::miow::iocp::{CompletionPort, CompletionStatus}; use self::miow::pipe::NamedPipe; use self::miow::Overlapped; - use self::winapi::ERROR_BROKEN_PIPE; + use self::winapi::shared::winerror::ERROR_BROKEN_PIPE; struct Pipe<'a> { dst: &'a mut Vec, From 55eaad2e70ae7d6385416dcc1d80befcb7eabe9d Mon Sep 17 00:00:00 2001 From: messense Date: Wed, 7 Mar 2018 10:38:43 +0800 Subject: [PATCH 4/4] Use log 0.4 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 63ebe19..1f1d23b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ name = "compiletest_rs" diff = "0.1.10" filetime = "0.1" getopts = "0.2" -log = "0.3" +log = "0.4" tempdir = { version = "0.3", optional = true } serde = "1.0" serde_json = "1.0"