[INFO] updating cached repository huangqian/rust-in-action [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/huangqian/rust-in-action [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/huangqian/rust-in-action" "work/ex/clippy-test-run/sources/stable/gh/huangqian/rust-in-action"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/huangqian/rust-in-action'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/huangqian/rust-in-action" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/huangqian/rust-in-action"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/huangqian/rust-in-action'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a1b21944716a10fe3343078e0eee06bd7f74b4be [INFO] sha for GitHub repo huangqian/rust-in-action: a1b21944716a10fe3343078e0eee06bd7f74b4be [INFO] validating manifest of huangqian/rust-in-action 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 huangqian/rust-in-action 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 huangqian/rust-in-action [INFO] removed 0 missing examples [INFO] finished frobbing huangqian/rust-in-action [INFO] frobbed toml for huangqian/rust-in-action written to work/ex/clippy-test-run/sources/stable/gh/huangqian/rust-in-action/Cargo.toml [INFO] started frobbing huangqian/rust-in-action [INFO] removed 0 missing examples [INFO] finished frobbing huangqian/rust-in-action [INFO] frobbed toml for huangqian/rust-in-action written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/huangqian/rust-in-action/Cargo.toml [INFO] crate huangqian/rust-in-action 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 huangqian/rust-in-action against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/huangqian/rust-in-action:/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] dc38f6e3221d0df472947c73a99da093bbae770911c9bfc6080d57ba85d08582 [INFO] running `"docker" "start" "-a" "dc38f6e3221d0df472947c73a99da093bbae770911c9bfc6080d57ba85d08582"` [INFO] [stderr] Compiling redis v0.9.1 [INFO] [stderr] Checking either v1.5.0 [INFO] [stderr] Checking ascii v0.7.1 [INFO] [stderr] Checking uuid v0.6.5 [INFO] [stderr] Checking twox-hash v1.1.1 [INFO] [stderr] Checking checked v0.5.0 [INFO] [stderr] Checking atoi v0.2.3 [INFO] [stderr] Checking aho-corasick v0.6.9 [INFO] [stderr] Checking combine v3.5.2 [INFO] [stderr] Checking regex v1.0.6 [INFO] [stderr] Checking tokio-reactor v0.1.5 [INFO] [stderr] Checking tokio-tcp v0.1.1 [INFO] [stderr] Checking mysql_common v0.9.2 [INFO] [stderr] Checking mysql v14.1.1 [INFO] [stderr] Checking rust-in-action v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> examples/references.rs:19:24 [INFO] [stderr] | [INFO] [stderr] 19 | fn calculate_length(s: &String) -> usize { [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: unused variable: `s2` [INFO] [stderr] --> examples/ownership.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | let s2 = s1; [INFO] [stderr] | ^^ help: consider using `_s2` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f2` [INFO] [stderr] --> examples/copy.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | let f2 = f1; [INFO] [stderr] | ^^ help: consider using `_f2` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user1` [INFO] [stderr] --> src/main.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | let user1 = User{ [INFO] [stderr] | ^^^^^ help: consider using `_user1` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `User` [INFO] [stderr] --> src/main.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | struct User{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> examples/print-format.rs:3:24 [INFO] [stderr] | [INFO] [stderr] 3 | println!("{},{}!", "hello", "format"); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> examples/print-format.rs:3:33 [INFO] [stderr] | [INFO] [stderr] 3 | println!("{},{}!", "hello", "format"); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> examples/print-format.rs:4:25 [INFO] [stderr] | [INFO] [stderr] 4 | println!("{} days", 31); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> examples/print-format.rs:6:52 [INFO] [stderr] | [INFO] [stderr] 6 | println!("{0}, this is {1}. {1}, this is {0}", "Alice", "Bob") [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> examples/print-format.rs:6:61 [INFO] [stderr] | [INFO] [stderr] 6 | println!("{0}, this is {1}. {1}, this is {0}", "Alice", "Bob") [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `struct_example` [INFO] [stderr] --> src/main.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | fn struct_example(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `print!()` with a format string that ends in a single newline, consider using `println!()` instead [INFO] [stderr] --> examples/array.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | print!("\n") [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `IpAddrKind` [INFO] [stderr] --> examples/enums.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | enum IpAddrKind{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> examples/slices.rs:17:18 [INFO] [stderr] | [INFO] [stderr] 17 | fn first_word(s: &String) -> usize{ [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: unused variable: `one` [INFO] [stderr] --> examples/match.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | let one = increment(None); [INFO] [stderr] | ^^^ help: consider using `_one` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Alabama` [INFO] [stderr] --> examples/match.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | Alabama, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Nickel` [INFO] [stderr] --> examples/match.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | Nickel, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Dime` [INFO] [stderr] --> examples/match.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | Dime, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `black` [INFO] [stderr] --> examples/structs.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | let black = Color(0, 0, 0); [INFO] [stderr] | ^^^^^ help: consider using `_black` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `origin` [INFO] [stderr] --> examples/structs.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | let origin = Point(0, 0, 0); [INFO] [stderr] | ^^^^^^ help: consider using `_origin` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `can_hold` [INFO] [stderr] --> examples/structs.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | fn can_hold(&self, other: &Rectangle) -> bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> examples/functions.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | return n + m; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `n + m` [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] error: equal expressions as operands to `==` [INFO] [stderr] --> examples/control-flow.rs:20:18 [INFO] [stderr] | [INFO] [stderr] 20 | let val = if 16 % 4 == 0 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rust-in-action`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> examples/mysql.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user1` [INFO] [stderr] --> src/main.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | let user1 = User{ [INFO] [stderr] | ^^^^^ help: consider using `_user1` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `User` [INFO] [stderr] --> src/main.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | struct User{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `struct_example` [INFO] [stderr] --> src/main.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | fn struct_example(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `while_case` [INFO] [stderr] --> examples/loop.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | fn while_case(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `while_demo_2` [INFO] [stderr] --> examples/loop.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | fn while_demo_2(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> examples/loop.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | number = number -1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `number -= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> examples/redis.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | let _ : () = try!(con.set("my_key", 42)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "dc38f6e3221d0df472947c73a99da093bbae770911c9bfc6080d57ba85d08582"` [INFO] running `"docker" "rm" "-f" "dc38f6e3221d0df472947c73a99da093bbae770911c9bfc6080d57ba85d08582"` [INFO] [stdout] dc38f6e3221d0df472947c73a99da093bbae770911c9bfc6080d57ba85d08582