[INFO] cloning repository https://github.com/jre0/mesh [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jre0/mesh" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjre0%2Fmesh", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjre0%2Fmesh'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1aa5e9aafae8de47bdf3e24a7c18342718bd92cf [INFO] linting jre0/mesh against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjre0%2Fmesh" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jre0/mesh [INFO] finished tweaking git repo https://github.com/jre0/mesh [INFO] tweaked toml for git repo https://github.com/jre0/mesh written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jre0/mesh 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/jre0/mesh 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-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] d6b6469922fe0f1c831f4f3268e662068c9f73685433b90cfa230a1cdc5d094f [INFO] running `Command { std: "docker" "start" "-a" "d6b6469922fe0f1c831f4f3268e662068c9f73685433b90cfa230a1cdc5d094f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d6b6469922fe0f1c831f4f3268e662068c9f73685433b90cfa230a1cdc5d094f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d6b6469922fe0f1c831f4f3268e662068c9f73685433b90cfa230a1cdc5d094f", kill_on_drop: false }` [INFO] [stdout] d6b6469922fe0f1c831f4f3268e662068c9f73685433b90cfa230a1cdc5d094f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] b776440a16b8cf325580a3e6598b7e1c1bcf6b48359452f770b029236c5c97cb [INFO] running `Command { std: "docker" "start" "-a" "b776440a16b8cf325580a3e6598b7e1c1bcf6b48359452f770b029236c5c97cb", kill_on_drop: false }` [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Checking regex v1.10.6 [INFO] [stderr] Checking divergent v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/mesh.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /// A. Read/Write located in src/mesh [INFO] [stdout] 21 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn select_adjacent_by_vertex_index(&self, target_index: usize) -> Selection { [INFO] [stdout] | -------------------------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the doc comment should not document function `select_adjacent_by_vertex_index` then comment it out [INFO] [stdout] | [INFO] [stdout] 20 | // /// A. Read/Write located in src/mesh [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/mesh.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /// A. Read/Write located in src/mesh [INFO] [stdout] 21 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn select_adjacent_by_vertex_index(&self, target_index: usize) -> Selection { [INFO] [stdout] | -------------------------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the doc comment should not document function `select_adjacent_by_vertex_index` then comment it out [INFO] [stdout] | [INFO] [stdout] 20 | // /// A. Read/Write located in src/mesh [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/mesh.rs:161:17 [INFO] [stdout] | [INFO] [stdout] 161 | let c = self.vertex_coordinates(vi[2]); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effected_faces` [INFO] [stdout] --> src/mesh.rs:163:21 [INFO] [stdout] | [INFO] [stdout] 163 | let effected_faces = self.select_adjacent_by_vertex_index(vi[0]); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_effected_faces` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/mesh/read.rs:15:41 [INFO] [stdout] | [INFO] [stdout] 15 | for caps in regex.captures_iter(&data) { [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/mesh/read.rs:27:41 [INFO] [stdout] | [INFO] [stdout] 27 | for caps in regex.captures_iter(&data) { [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/mesh/read.rs:39:41 [INFO] [stdout] | [INFO] [stdout] 39 | for caps in regex.captures_iter(&data) { [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `self.faces` manually [INFO] [stdout] --> src/mesh.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | / let first_vertex_index = self.faces[i]; [INFO] [stdout] 93 | | self.faces[i] = self.faces[i + 1]; [INFO] [stdout] 94 | | self.faces[i + 1] = first_vertex_index; [INFO] [stdout] | |_______________________________________________^ help: try: `self.faces.swap(i, i + 1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/mesh.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | /// Making the assumption that all faces share vertices so they are connected together [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] 98 | /// Making the assumption that all faces share vertices so they are connected together [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/mesh.rs:104:20 [INFO] [stdout] | [INFO] [stdout] 104 | if (a[0] == b[0] && a[1] == b[1]) [INFO] [stdout] | ____________________^ [INFO] [stdout] 105 | | || (a[0] == b[0] && a[2] == b[2]) [INFO] [stdout] | |_____________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 104 - if (a[0] == b[0] && a[1] == b[1]) [INFO] [stdout] 105 - || (a[0] == b[0] && a[2] == b[2]) [INFO] [stdout] 104 + if !(a[0] != b[0] || a[1] != b[1] && a[2] != b[2]) [INFO] [stdout] | [INFO] [stdout] 104 - if (a[0] == b[0] && a[1] == b[1]) [INFO] [stdout] 105 - || (a[0] == b[0] && a[2] == b[2]) [INFO] [stdout] 104 + if (a[2] == b[2] || a[1] == b[1]) && a[0] == b[0] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/mesh.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | /// Collecting any triangle that connects with another triangle with given angle or less. [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] 129 | /// Collecting any triangle that connects with another triangle with given angle or less. [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/mesh.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | /// Not finished! [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] 155 | /// Not finished! [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selection` [INFO] [stdout] --> src/tests.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | let selection = mesh.select_adjacent_by_vertex_index(142); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selection` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/mesh.rs:161:17 [INFO] [stdout] | [INFO] [stdout] 161 | let c = self.vertex_coordinates(vi[2]); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effected_faces` [INFO] [stdout] --> src/mesh.rs:163:21 [INFO] [stdout] | [INFO] [stdout] 163 | let effected_faces = self.select_adjacent_by_vertex_index(vi[0]); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_effected_faces` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/mesh/read.rs:15:41 [INFO] [stdout] | [INFO] [stdout] 15 | for caps in regex.captures_iter(&data) { [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/mesh/read.rs:27:41 [INFO] [stdout] | [INFO] [stdout] 27 | for caps in regex.captures_iter(&data) { [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/mesh/read.rs:39:41 [INFO] [stdout] | [INFO] [stdout] 39 | for caps in regex.captures_iter(&data) { [INFO] [stdout] | ^^^^^ help: change this to: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `self.faces` manually [INFO] [stdout] --> src/mesh.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | / let first_vertex_index = self.faces[i]; [INFO] [stdout] 93 | | self.faces[i] = self.faces[i + 1]; [INFO] [stdout] 94 | | self.faces[i + 1] = first_vertex_index; [INFO] [stdout] | |_______________________________________________^ help: try: `self.faces.swap(i, i + 1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/mesh.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | /// Making the assumption that all faces share vertices so they are connected together [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] 98 | /// Making the assumption that all faces share vertices so they are connected together [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/mesh.rs:104:20 [INFO] [stdout] | [INFO] [stdout] 104 | if (a[0] == b[0] && a[1] == b[1]) [INFO] [stdout] | ____________________^ [INFO] [stdout] 105 | | || (a[0] == b[0] && a[2] == b[2]) [INFO] [stdout] | |_____________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 104 - if (a[0] == b[0] && a[1] == b[1]) [INFO] [stdout] 105 - || (a[0] == b[0] && a[2] == b[2]) [INFO] [stdout] 104 + if !(a[0] != b[0] || a[1] != b[1] && a[2] != b[2]) [INFO] [stdout] | [INFO] [stdout] 104 - if (a[0] == b[0] && a[1] == b[1]) [INFO] [stdout] 105 - || (a[0] == b[0] && a[2] == b[2]) [INFO] [stdout] 104 + if (a[2] == b[2] || a[1] == b[1]) && a[0] == b[0] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/mesh.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | /// Collecting any triangle that connects with another triangle with given angle or less. [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] 129 | /// Collecting any triangle that connects with another triangle with given angle or less. [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/mesh.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | /// Not finished! [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] 155 | /// Not finished! [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.90s [INFO] running `Command { std: "docker" "inspect" "b776440a16b8cf325580a3e6598b7e1c1bcf6b48359452f770b029236c5c97cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b776440a16b8cf325580a3e6598b7e1c1bcf6b48359452f770b029236c5c97cb", kill_on_drop: false }` [INFO] [stdout] b776440a16b8cf325580a3e6598b7e1c1bcf6b48359452f770b029236c5c97cb