[INFO] updating cached repository algesten/rabbiteer-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/algesten/rabbiteer-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/algesten/rabbiteer-rs" "work/ex/clippy-test-run/sources/stable/gh/algesten/rabbiteer-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/algesten/rabbiteer-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/algesten/rabbiteer-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/algesten/rabbiteer-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/algesten/rabbiteer-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c8812384649b68fbd8b861fb808efdc78cbf5283 [INFO] sha for GitHub repo algesten/rabbiteer-rs: c8812384649b68fbd8b861fb808efdc78cbf5283 [INFO] validating manifest of algesten/rabbiteer-rs 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 algesten/rabbiteer-rs 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 algesten/rabbiteer-rs [INFO] finished frobbing algesten/rabbiteer-rs [INFO] frobbed toml for algesten/rabbiteer-rs written to work/ex/clippy-test-run/sources/stable/gh/algesten/rabbiteer-rs/Cargo.toml [INFO] started frobbing algesten/rabbiteer-rs [INFO] finished frobbing algesten/rabbiteer-rs [INFO] frobbed toml for algesten/rabbiteer-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/algesten/rabbiteer-rs/Cargo.toml [INFO] crate algesten/rabbiteer-rs 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 algesten/rabbiteer-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/algesten/rabbiteer-rs:/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] 555e5fcf7ed100a0efe89c0ea4fcfcf94415f4b1503d3628b78ec87799bbfc8c [INFO] running `"docker" "start" "-a" "555e5fcf7ed100a0efe89c0ea4fcfcf94415f4b1503d3628b78ec87799bbfc8c"` [INFO] [stderr] Compiling backtrace-sys v0.1.24 [INFO] [stderr] Checking memchr v0.1.11 [INFO] [stderr] Checking thread-id v2.0.0 [INFO] [stderr] Checking aho-corasick v0.5.3 [INFO] [stderr] Checking thread_local v0.2.7 [INFO] [stderr] Checking regex v0.1.80 [INFO] [stderr] Checking backtrace v0.3.9 [INFO] [stderr] Checking error-chain v0.10.0 [INFO] [stderr] Checking env_logger v0.3.5 [INFO] [stderr] Checking amq-proto v0.1.0 [INFO] [stderr] Checking amqp v0.1.1 [INFO] [stderr] Checking rabbiteer v1.4.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/output.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | data:data, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `data` [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/publish.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | content_type: content_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `content_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/publish.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | reader: reader, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reader` [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/output.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | data:data, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `data` [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/publish.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | content_type: content_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `content_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/publish.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | reader: reader, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reader` [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: identical conversion [INFO] [stderr] --> src/client.rs:52:70 [INFO] [stderr] | [INFO] [stderr] 52 | headers.insert("fileName".to_owned(), TableEntry::LongString(String::from(s.file_name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `s.file_name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/client.rs:108:45 [INFO] [stderr] | [INFO] [stderr] 108 | if err.description() == "timed out waiting on channel".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"timed out waiting on channel"` [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 boolean expression can be simplified [INFO] [stderr] --> src/client.rs:129:8 [INFO] [stderr] | [INFO] [stderr] 129 | if !boolv.is_err() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `boolv.is_ok()` [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/client.rs:133:12 [INFO] [stderr] | [INFO] [stderr] 133 | if !doublev.is_err() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `doublev.is_ok()` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/client.rs:154:28 [INFO] [stderr] | [INFO] [stderr] 154 | let delivery_tag = deliver.delivery_tag.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `deliver.delivery_tag` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/client.rs:203:20 [INFO] [stderr] | [INFO] [stderr] 203 | if let None = bind_routing_key { [INFO] [stderr] | _____________- ^^^^ [INFO] [stderr] 204 | | bind_routing_key = Some("#".to_owned()); // Default the routing key [INFO] [stderr] 205 | | } [INFO] [stderr] | |_____________- help: try this: `if bind_routing_key.is_none()` [INFO] [stderr] --> src/client.rs:52:70 [INFO] [stderr] | [INFO] [stderr] 52 | headers.insert("fileName".to_owned(), TableEntry::LongString(String::from(s.file_name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `s.file_name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/client.rs:210:47 [INFO] [stderr] | [INFO] [stderr] 210 | q.clone().unwrap_or("".to_owned()) , [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/client.rs:108:45 [INFO] [stderr] | [INFO] [stderr] 108 | if err.description() == "timed out waiting on channel".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"timed out waiting on channel"` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/output.rs:37:26 [INFO] [stderr] | [INFO] [stderr] 37 | delivery_tag:deliver.delivery_tag.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `deliver.delivery_tag` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/output.rs:38:25 [INFO] [stderr] | [INFO] [stderr] 38 | redelivered:deliver.redelivered.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `deliver.redelivered` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/output.rs:43:55 [INFO] [stderr] | [INFO] [stderr] 43 | let content_type = props.content_type.clone().unwrap_or(String::from("")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/output.rs:73:55 [INFO] [stderr] | [INFO] [stderr] 73 | let content_type = props.content_type.clone().unwrap_or(String::from("")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:121:53 [INFO] [stderr] | [INFO] [stderr] 121 | TableEntry::ShortShortInt(v) => Json::I64(v as i64), [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(v)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:122:53 [INFO] [stderr] | [INFO] [stderr] 122 | TableEntry::ShortShortUint(v) => Json::U64(v as u64), [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:123:53 [INFO] [stderr] | [INFO] [stderr] 123 | TableEntry::ShortInt(v) => Json::I64(v as i64), [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:124:53 [INFO] [stderr] | [INFO] [stderr] 124 | TableEntry::ShortUint(v) => Json::U64(v as u64), [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/client.rs:129:8 [INFO] [stderr] | [INFO] [stderr] 129 | if !boolv.is_err() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `boolv.is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:125:53 [INFO] [stderr] | [INFO] [stderr] 125 | TableEntry::LongInt(v) => Json::I64(v as i64), [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(v)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/client.rs:133:12 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] 133 | if !doublev.is_err() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `doublev.is_ok()` [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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:126:53 [INFO] [stderr] | [INFO] [stderr] 126 | TableEntry::LongUint(v) => Json::U64(v as u64), [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:129:53 [INFO] [stderr] | [INFO] [stderr] 129 | TableEntry::Float(v) => Json::F64(v as f64), [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:141:43 [INFO] [stderr] | [INFO] [stderr] 141 | let ten:f64 = (10 as u64).pow(decimals as u32) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(decimals)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:142:27 [INFO] [stderr] | [INFO] [stderr] 142 | let dec:f64 = (v as f64) / ten; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/publish.rs:17:24 [INFO] [stderr] | [INFO] [stderr] 17 | fn type_from_file(file:&String) -> Result { [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/client.rs:154:28 [INFO] [stderr] | [INFO] [stderr] 154 | let delivery_tag = deliver.delivery_tag.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `deliver.delivery_tag` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/client.rs:203:20 [INFO] [stderr] | [INFO] [stderr] 203 | if let None = bind_routing_key { [INFO] [stderr] | _____________- ^^^^ [INFO] [stderr] 204 | | bind_routing_key = Some("#".to_owned()); // Default the routing key [INFO] [stderr] 205 | | } [INFO] [stderr] | |_____________- help: try this: `if bind_routing_key.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/client.rs:210:47 [INFO] [stderr] | [INFO] [stderr] 210 | q.clone().unwrap_or("".to_owned()) , [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/publish.rs:61:60 [INFO] [stderr] | [INFO] [stderr] 61 | headers: values_t!(matches, "header", String).unwrap_or(vec![]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/publish.rs:69:23 [INFO] [stderr] | [INFO] [stderr] 69 | let rpc_receive = match rpc { [INFO] [stderr] | _______________________^ [INFO] [stderr] 70 | | false => None, [INFO] [stderr] 71 | | true => { [INFO] [stderr] 72 | | let receive = [INFO] [stderr] ... | [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 69 | let rpc_receive = if rpc { [INFO] [stderr] 70 | let receive = [INFO] [stderr] 71 | move |channel: &mut Channel, deliver:Deliver, props:BasicProperties, body:Vec| -> [INFO] [stderr] 72 | Result<(),RbtError> { [INFO] [stderr] 73 | let msg = output::build_output(false, &deliver, &props, body)?; [INFO] [stderr] 74 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/publish.rs:83:21 [INFO] [stderr] | [INFO] [stderr] 83 | handle.write(&msg)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/publish.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | handle.write(b"\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/subscribe.rs:50:17 [INFO] [stderr] | [INFO] [stderr] 50 | handle.write(&msg)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/subscribe.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | handle.write(b"\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/output.rs:37:26 [INFO] [stderr] | [INFO] [stderr] 37 | delivery_tag:deliver.delivery_tag.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `deliver.delivery_tag` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/output.rs:38:25 [INFO] [stderr] | [INFO] [stderr] 38 | redelivered:deliver.redelivered.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `deliver.redelivered` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/output.rs:43:55 [INFO] [stderr] | [INFO] [stderr] 43 | let content_type = props.content_type.clone().unwrap_or(String::from("")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/output.rs:73:55 [INFO] [stderr] | [INFO] [stderr] 73 | let content_type = props.content_type.clone().unwrap_or(String::from("")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/subscribe.rs:105:36 [INFO] [stderr] | [INFO] [stderr] 105 | props.content_type.clone().unwrap_or("application/octet-stream".to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "application/octet-stream".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:121:53 [INFO] [stderr] | [INFO] [stderr] 121 | TableEntry::ShortShortInt(v) => Json::I64(v as i64), [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(v)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:122:53 [INFO] [stderr] | [INFO] [stderr] 122 | TableEntry::ShortShortUint(v) => Json::U64(v as u64), [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:123:53 [INFO] [stderr] | [INFO] [stderr] 123 | TableEntry::ShortInt(v) => Json::I64(v as i64), [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:124:53 [INFO] [stderr] | [INFO] [stderr] 124 | TableEntry::ShortUint(v) => Json::U64(v as u64), [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:125:53 [INFO] [stderr] | [INFO] [stderr] 125 | TableEntry::LongInt(v) => Json::I64(v as i64), [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:126:53 [INFO] [stderr] | [INFO] [stderr] 126 | TableEntry::LongUint(v) => Json::U64(v as u64), [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:129:53 [INFO] [stderr] | [INFO] [stderr] 129 | TableEntry::Float(v) => Json::F64(v as f64), [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:141:43 [INFO] [stderr] | [INFO] [stderr] 141 | let ten:f64 = (10 as u64).pow(decimals as u32) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(decimals)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:142:27 [INFO] [stderr] | [INFO] [stderr] 142 | let dec:f64 = (v as f64) / ten; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/publish.rs:17:24 [INFO] [stderr] | [INFO] [stderr] 17 | fn type_from_file(file:&String) -> Result { [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/publish.rs:61:60 [INFO] [stderr] | [INFO] [stderr] 61 | headers: values_t!(matches, "header", String).unwrap_or(vec![]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/publish.rs:69:23 [INFO] [stderr] | [INFO] [stderr] 69 | let rpc_receive = match rpc { [INFO] [stderr] | _______________________^ [INFO] [stderr] 70 | | false => None, [INFO] [stderr] 71 | | true => { [INFO] [stderr] 72 | | let receive = [INFO] [stderr] ... | [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 69 | let rpc_receive = if rpc { [INFO] [stderr] 70 | let receive = [INFO] [stderr] 71 | move |channel: &mut Channel, deliver:Deliver, props:BasicProperties, body:Vec| -> [INFO] [stderr] 72 | Result<(),RbtError> { [INFO] [stderr] 73 | let msg = output::build_output(false, &deliver, &props, body)?; [INFO] [stderr] 74 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/publish.rs:83:21 [INFO] [stderr] | [INFO] [stderr] 83 | handle.write(&msg)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/publish.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | handle.write(b"\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/subscribe.rs:50:17 [INFO] [stderr] | [INFO] [stderr] 50 | handle.write(&msg)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/subscribe.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | handle.write(b"\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/subscribe.rs:105:36 [INFO] [stderr] | [INFO] [stderr] 105 | props.content_type.clone().unwrap_or("application/octet-stream".to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "application/octet-stream".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: Could not compile `rabbiteer`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rabbiteer`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "555e5fcf7ed100a0efe89c0ea4fcfcf94415f4b1503d3628b78ec87799bbfc8c"` [INFO] running `"docker" "rm" "-f" "555e5fcf7ed100a0efe89c0ea4fcfcf94415f4b1503d3628b78ec87799bbfc8c"` [INFO] [stdout] 555e5fcf7ed100a0efe89c0ea4fcfcf94415f4b1503d3628b78ec87799bbfc8c