[INFO] updating cached repository mtreinish/junitxml2subunit [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mtreinish/junitxml2subunit [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mtreinish/junitxml2subunit" "work/ex/clippy-test-run/sources/stable/gh/mtreinish/junitxml2subunit"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mtreinish/junitxml2subunit'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mtreinish/junitxml2subunit" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mtreinish/junitxml2subunit"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mtreinish/junitxml2subunit'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 49d4931fbe2fd1f138644c6a81e9e092c43d4e86 [INFO] sha for GitHub repo mtreinish/junitxml2subunit: 49d4931fbe2fd1f138644c6a81e9e092c43d4e86 [INFO] validating manifest of mtreinish/junitxml2subunit on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of mtreinish/junitxml2subunit on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing mtreinish/junitxml2subunit [INFO] finished frobbing mtreinish/junitxml2subunit [INFO] frobbed toml for mtreinish/junitxml2subunit written to work/ex/clippy-test-run/sources/stable/gh/mtreinish/junitxml2subunit/Cargo.toml [INFO] started frobbing mtreinish/junitxml2subunit [INFO] finished frobbing mtreinish/junitxml2subunit [INFO] frobbed toml for mtreinish/junitxml2subunit written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mtreinish/junitxml2subunit/Cargo.toml [INFO] crate mtreinish/junitxml2subunit has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting mtreinish/junitxml2subunit against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/mtreinish/junitxml2subunit:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 6accde969d27e792697af72b1b16fbbc83a666af7a69ff108fa426f1e5e01ec4 [INFO] running `"docker" "start" "-a" "6accde969d27e792697af72b1b16fbbc83a666af7a69ff108fa426f1e5e01ec4"` [INFO] [stderr] Checking clap v2.31.2 [INFO] [stderr] Checking num-integer v0.1.38 [INFO] [stderr] Checking failure v0.1.1 [INFO] [stderr] Checking chrono v0.4.2 [INFO] [stderr] Checking quick-xml v0.12.1 [INFO] [stderr] Checking subunit-rust v0.1.2 [INFO] [stderr] Checking junitxml2subunit v1.0.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | file_content: file_content, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `file_content` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | file_name: file_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `file_name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | mime_type: mime_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `mime_type` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | file_content: file_content, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `file_content` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | file_name: file_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `file_name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | mime_type: mime_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `mime_type` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | return Result::Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(result)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | return Result::Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | return Result::Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | return Result::Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:43:14 [INFO] [stderr] | [INFO] [stderr] 43 | test_id: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | status: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:63:14 [INFO] [stderr] | [INFO] [stderr] 63 | test_id: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:85:14 [INFO] [stderr] | [INFO] [stderr] 85 | test_id: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:112:14 [INFO] [stderr] | [INFO] [stderr] 112 | test_id: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/main.rs:251:24 [INFO] [stderr] | [INFO] [stderr] 251 | if !time.is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `time.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/main.rs:262:24 [INFO] [stderr] | [INFO] [stderr] 262 | if !test_name.is_some() && !class_name.is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_name.is_none() && class_name.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 32 [INFO] [stderr] --> src/main.rs:137:1 [INFO] [stderr] | [INFO] [stderr] 137 | / fn main() { [INFO] [stderr] 138 | | let matches = App::new("junitxml2subunit") [INFO] [stderr] 139 | | .version("1.0.0") [INFO] [stderr] 140 | | .about("Convert JUnit XML to Subunit v2") [INFO] [stderr] ... | [INFO] [stderr] 345 | | } [INFO] [stderr] 346 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | return Result::Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(result)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | / let mut stdout: Box; [INFO] [stderr] 171 | | if matches.is_present("output") { [INFO] [stderr] 172 | | let out_path = matches.value_of("output").unwrap(); [INFO] [stderr] 173 | | let out_file = match File::create(out_path) { [INFO] [stderr] ... | [INFO] [stderr] 182 | | stdout = Box::new(io::stdout()); [INFO] [stderr] 183 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let stdout = if matches.is_present("output") { ..; Box::new(out_file) } else { Box::new(io::stdout()) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:193:32 [INFO] [stderr] | [INFO] [stderr] 193 | if e.name() == "testcase".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"testcase"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:194:35 [INFO] [stderr] | [INFO] [stderr] 194 | if test_id != "".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `""` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:196:42 [INFO] [stderr] | [INFO] [stderr] 196 | if status == "fail".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `"fail"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | return Result::Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | return Result::Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | return Result::Ok(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Ok(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:203:49 [INFO] [stderr] | [INFO] [stderr] 203 | } else if status == "skip".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `"skip"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:225:42 [INFO] [stderr] | [INFO] [stderr] 225 | if status == "".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `""` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:241:40 [INFO] [stderr] | [INFO] [stderr] 241 | if attr.key == "name".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"name"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:243:47 [INFO] [stderr] | [INFO] [stderr] 243 | } else if attr.key == "id".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"id"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:245:47 [INFO] [stderr] | [INFO] [stderr] 245 | } else if attr.key == "classname".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"classname"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:247:47 [INFO] [stderr] | [INFO] [stderr] 247 | } else if attr.key == "time".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"time"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:291:39 [INFO] [stderr] | [INFO] [stderr] 291 | } else if e.name() == "skipped".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"skipped"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:295:40 [INFO] [stderr] | [INFO] [stderr] 295 | if attr.key == "message".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"message"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:308:39 [INFO] [stderr] | [INFO] [stderr] 308 | } else if e.name() == "failure".as_bytes() || e.name() == "error".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"failure"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:308:75 [INFO] [stderr] | [INFO] [stderr] 308 | } else if e.name() == "failure".as_bytes() || e.name() == "error".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"error"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:312:40 [INFO] [stderr] | [INFO] [stderr] 312 | if attr.key == "message".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"message"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:328:31 [INFO] [stderr] | [INFO] [stderr] 328 | if test_id != "".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `""` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:43:14 [INFO] [stderr] | [INFO] [stderr] 43 | test_id: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | status: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:63:14 [INFO] [stderr] | [INFO] [stderr] 63 | test_id: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:85:14 [INFO] [stderr] | [INFO] [stderr] 85 | test_id: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:112:14 [INFO] [stderr] | [INFO] [stderr] 112 | test_id: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/main.rs:251:24 [INFO] [stderr] | [INFO] [stderr] 251 | if !time.is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `time.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/main.rs:262:24 [INFO] [stderr] | [INFO] [stderr] 262 | if !test_name.is_some() && !class_name.is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `test_name.is_none() && class_name.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 32 [INFO] [stderr] --> src/main.rs:137:1 [INFO] [stderr] | [INFO] [stderr] 137 | / fn main() { [INFO] [stderr] 138 | | let matches = App::new("junitxml2subunit") [INFO] [stderr] 139 | | .version("1.0.0") [INFO] [stderr] 140 | | .about("Convert JUnit XML to Subunit v2") [INFO] [stderr] ... | [INFO] [stderr] 345 | | } [INFO] [stderr] 346 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | / let mut stdout: Box; [INFO] [stderr] 171 | | if matches.is_present("output") { [INFO] [stderr] 172 | | let out_path = matches.value_of("output").unwrap(); [INFO] [stderr] 173 | | let out_file = match File::create(out_path) { [INFO] [stderr] ... | [INFO] [stderr] 182 | | stdout = Box::new(io::stdout()); [INFO] [stderr] 183 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let stdout = if matches.is_present("output") { ..; Box::new(out_file) } else { Box::new(io::stdout()) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:193:32 [INFO] [stderr] | [INFO] [stderr] 193 | if e.name() == "testcase".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"testcase"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:194:35 [INFO] [stderr] | [INFO] [stderr] 194 | if test_id != "".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `""` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:196:42 [INFO] [stderr] | [INFO] [stderr] 196 | if status == "fail".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `"fail"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:203:49 [INFO] [stderr] | [INFO] [stderr] 203 | } else if status == "skip".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `"skip"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:225:42 [INFO] [stderr] | [INFO] [stderr] 225 | if status == "".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `""` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:241:40 [INFO] [stderr] | [INFO] [stderr] 241 | if attr.key == "name".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"name"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:243:47 [INFO] [stderr] | [INFO] [stderr] 243 | } else if attr.key == "id".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"id"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:245:47 [INFO] [stderr] | [INFO] [stderr] 245 | } else if attr.key == "classname".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"classname"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:247:47 [INFO] [stderr] | [INFO] [stderr] 247 | } else if attr.key == "time".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"time"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:291:39 [INFO] [stderr] | [INFO] [stderr] 291 | } else if e.name() == "skipped".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"skipped"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:295:40 [INFO] [stderr] | [INFO] [stderr] 295 | if attr.key == "message".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"message"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:308:39 [INFO] [stderr] | [INFO] [stderr] 308 | } else if e.name() == "failure".as_bytes() || e.name() == "error".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"failure"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:308:75 [INFO] [stderr] | [INFO] [stderr] 308 | } else if e.name() == "failure".as_bytes() || e.name() == "error".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"error"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:312:40 [INFO] [stderr] | [INFO] [stderr] 312 | if attr.key == "message".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"message"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:328:31 [INFO] [stderr] | [INFO] [stderr] 328 | if test_id != "".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `""` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 10.70s [INFO] running `"docker" "inspect" "6accde969d27e792697af72b1b16fbbc83a666af7a69ff108fa426f1e5e01ec4"` [INFO] running `"docker" "rm" "-f" "6accde969d27e792697af72b1b16fbbc83a666af7a69ff108fa426f1e5e01ec4"` [INFO] [stdout] 6accde969d27e792697af72b1b16fbbc83a666af7a69ff108fa426f1e5e01ec4