[INFO] cloning repository https://github.com/free0ON/otus_rust_lessons [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/free0ON/otus_rust_lessons" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffree0ON%2Fotus_rust_lessons", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffree0ON%2Fotus_rust_lessons'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 96d697fbe73593e0e1ee7a2f09c617635e67729a [INFO] linting free0ON/otus_rust_lessons against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffree0ON%2Fotus_rust_lessons" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/free0ON/otus_rust_lessons [INFO] finished tweaking git repo https://github.com/free0ON/otus_rust_lessons [INFO] tweaked toml for git repo https://github.com/free0ON/otus_rust_lessons written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/free0ON/otus_rust_lessons on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/free0ON/otus_rust_lessons already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5fe30b10a20a4968e6e66acd34a7feac3219960dafd2d3268930dad459baae82 [INFO] running `Command { std: "docker" "start" "-a" "5fe30b10a20a4968e6e66acd34a7feac3219960dafd2d3268930dad459baae82", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5fe30b10a20a4968e6e66acd34a7feac3219960dafd2d3268930dad459baae82", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5fe30b10a20a4968e6e66acd34a7feac3219960dafd2d3268930dad459baae82", kill_on_drop: false }` [INFO] [stdout] 5fe30b10a20a4968e6e66acd34a7feac3219960dafd2d3268930dad459baae82 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e74ca9ab71cc7cf015804ca45afb280a500d804248954284cccba0e0565f37c7 [INFO] running `Command { std: "docker" "start" "-a" "e74ca9ab71cc7cf015804ca45afb280a500d804248954284cccba0e0565f37c7", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling zerocopy v0.8.31 [INFO] [stderr] Checking module_test_docs_02 v0.1.0 (/opt/rustwide/workdir/module_test_docs_02) [INFO] [stderr] Checking borrowing_ref_slice_05 v0.1.0 (/opt/rustwide/workdir/borrowing_ref_slice_05) [INFO] [stderr] Checking solve_problems_with_rust_01 v0.1.0 (/opt/rustwide/workdir/solve_problems_with_rust_01) [INFO] [stderr] Checking ownersheep_and_types_04 v0.1.0 (/opt/rustwide/workdir/ownersheep_and_types_04) [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:194:9 [INFO] [stdout] | [INFO] [stdout] 194 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | text: text, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Doc` is never constructed [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:186:8 [INFO] [stdout] | [INFO] [stdout] 186 | struct Doc { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_doc` is never used [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:192:4 [INFO] [stdout] | [INFO] [stdout] 192 | fn init_doc(name: String, text: String) -> Doc { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LoadError` is never used [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:230:6 [INFO] [stdout] | [INFO] [stdout] 230 | enum LoadError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_buff_size` is never used [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:237:8 [INFO] [stdout] | [INFO] [stdout] 236 | impl LoadError { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 237 | fn get_buff_size(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `bar` and `foo` [INFO] [stdout] --> module_test_docs_02/src/engine.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::math::a::b::{bar, foo}; [INFO] [stdout] | ^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `bar` and `foo` [INFO] [stdout] --> module_test_docs_02/src/engine.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::math::a::b::{bar, foo}; [INFO] [stdout] | ^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> module_test_docs_02/src/engine.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /// "cargo test --all-targets" will ignore doc tests [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 31 | /// "cargo test --all-targets" will ignore doc tests [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> module_test_docs_02/src/engine.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | /// "cargo test --doc" run only doc tests [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 32 | /// "cargo test --doc" run only doc tests [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> module_test_docs_02/src/engine.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /// "cargo test --all-targets" will ignore doc tests [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 31 | /// "cargo test --all-targets" will ignore doc tests [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> module_test_docs_02/src/engine.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | /// "cargo test --doc" run only doc tests [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 32 | /// "cargo test --doc" run only doc tests [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> module_test_docs_02/src/engine.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | assert!(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] = note: `#[warn(clippy::assertions_on_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> borrowing_ref_slice_05/src/lib.rs:143:22 [INFO] [stdout] | [INFO] [stdout] 143 | fn get_value<'b>(&'b self) -> Option<&'b Value> { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 143 - fn get_value<'b>(&'b self) -> Option<&'b Value> { [INFO] [stdout] 143 + fn get_value(&self) -> Option<&Value> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:194:9 [INFO] [stdout] | [INFO] [stdout] 194 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | text: text, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `view` is never read [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 186 | struct Doc { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 189 | view: u32, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: argument to `size_of_val()` is a reference to a reference [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | assert!(size_of_val(&reference) == size_of::<&i32>()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: dereference the argument to `size_of_val()` to get the size of the value instead of the size of the reference-type [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#size_of_ref [INFO] [stdout] = note: `#[warn(clippy::size_of_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | assert!(!lh_bool == rh_bool); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `lh_bool != rh_bool` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | assert!(lh_u8.overflowing_add(255).1 == true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `lh_u8.overflowing_add(255).1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | assert!(lh_array.contains(&rh_array[0]) == true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `lh_array.contains(&rh_array[0])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | assert!(lh_array.is_sorted() == true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `lh_array.is_sorted()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | assert!(lh_array.map(|x| x == 5)[4] == true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `lh_array.map(|x| x == 5)[4]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `array` [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:140:18 [INFO] [stdout] | [INFO] [stdout] 140 | for i in 0..array.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 140 - for i in 0..array.len() { [INFO] [stdout] 140 + for (i, ) in array.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> ownersheep_and_types_04/src/lib.rs:321:18 [INFO] [stdout] | [INFO] [stdout] 321 | assert!(s == "FizzBuzz".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `"FizzBuzz"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking engine v0.1.0 (/opt/rustwide/workdir/project_maintenance_03/engine) [INFO] [stderr] Checking game v0.1.0 (/opt/rustwide/workdir/project_maintenance_03/game) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.25s [INFO] running `Command { std: "docker" "inspect" "e74ca9ab71cc7cf015804ca45afb280a500d804248954284cccba0e0565f37c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e74ca9ab71cc7cf015804ca45afb280a500d804248954284cccba0e0565f37c7", kill_on_drop: false }` [INFO] [stdout] e74ca9ab71cc7cf015804ca45afb280a500d804248954284cccba0e0565f37c7