[INFO] cloning repository https://github.com/wiwichips/imgprobox
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wiwichips/imgprobox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwiwichips%2Fimgprobox", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwiwichips%2Fimgprobox'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bb7c2d327d9c941b68a4137aa50cca5cc7756ec1
[INFO] testing wiwichips/imgprobox against 1.85.0 for beta-1.86-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwiwichips%2Fimgprobox" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/wiwichips/imgprobox on toolchain 1.85.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.85.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/wiwichips/imgprobox
[INFO] finished tweaking git repo https://github.com/wiwichips/imgprobox
[INFO] tweaked toml for git repo https://github.com/wiwichips/imgprobox written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/wiwichips/imgprobox 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" "+1.85.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-test-macro v0.3.34
[INFO] [stderr]   Downloaded wasm-bindgen-test v0.3.34
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 617f36b4e073b5346139d8afd55cdcad98f87beb363fdc2a19f8cdf3d3bf30c8
[INFO] running `Command { std: "docker" "start" "-a" "617f36b4e073b5346139d8afd55cdcad98f87beb363fdc2a19f8cdf3d3bf30c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "617f36b4e073b5346139d8afd55cdcad98f87beb363fdc2a19f8cdf3d3bf30c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "617f36b4e073b5346139d8afd55cdcad98f87beb363fdc2a19f8cdf3d3bf30c8", kill_on_drop: false }`
[INFO] [stdout] 617f36b4e073b5346139d8afd55cdcad98f87beb363fdc2a19f8cdf3d3bf30c8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dd9e230eb3557a6bb2be06a4b6407b89c9d46d04551a935f352e1f7e84df75b8
[INFO] running `Command { std: "docker" "start" "-a" "dd9e230eb3557a6bb2be06a4b6407b89c9d46d04551a935f352e1f7e84df75b8", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.51
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling quote v1.0.23
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling serde_derive v1.0.152
[INFO] [stderr]    Compiling bumpalo v3.12.0
[INFO] [stderr]    Compiling once_cell v1.17.0
[INFO] [stderr]    Compiling serde v1.0.152
[INFO] [stderr]    Compiling serde_json v1.0.92
[INFO] [stderr]    Compiling ryu v1.0.12
[INFO] [stderr]    Compiling wasm-bindgen v0.2.84
[INFO] [stderr]    Compiling itoa v1.0.5
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.84
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.84
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.84
[INFO] [stderr]    Compiling js-sys v0.3.61
[INFO] [stderr]    Compiling web-sys v0.3.61
[INFO] [stderr]    Compiling without-a-bundler v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `HtmlCanvasElement`
[INFO] [stdout]  --> src/lib.rs:2:52
[INFO] [stdout]   |
[INFO] [stdout] 2 | use web_sys::{CanvasRenderingContext2d, ImageData, HtmlCanvasElement};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBuffer`, `Uint8Array`, and `Uint8ClampedArray`
[INFO] [stdout]  --> src/lib.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use js_sys::{ArrayBuffer, Uint8ClampedArray, Uint8Array, Array, Object};
[INFO] [stdout]   |              ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::console`
[INFO] [stdout]  --> src/convolution.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::console;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBuffer`, `Uint8Array`, and `Uint8ClampedArray`
[INFO] [stdout]  --> src/convolution.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use js_sys::{ArrayBuffer, Uint8ClampedArray, Uint8Array};
[INFO] [stdout]   |              ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*`
[INFO] [stdout]  --> src/convolution.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use wasm_bindgen::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/convolution.rs:91:9
[INFO] [stdout]     |
[INFO] [stdout] 91  |           /// check if the kernel is rank one
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92  | /         for i in 0..self.height as usize {
[INFO] [stdout] 93  | |             let scale = self.array[i][0];
[INFO] [stdout] 94  | |             if scale == 0.0 {
[INFO] [stdout] 95  | |                 continue;
[INFO] [stdout] ...   |
[INFO] [stdout] 106 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::console`
[INFO] [stdout]  --> src/single_pixel_operations.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use web_sys::console;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBuffer`, `Uint8Array`, and `Uint8ClampedArray`
[INFO] [stdout]  --> src/single_pixel_operations.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use js_sys::{ArrayBuffer, Uint8ClampedArray, Uint8Array};
[INFO] [stdout]   |              ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*`
[INFO] [stdout]  --> src/single_pixel_operations.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use wasm_bindgen::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]  --> src/neighbourhood_operations.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 |             if (chessboard) {
[INFO] [stdout]   |                ^          ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 9 -             if (chessboard) {
[INFO] [stdout] 9 +             if chessboard {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |             if (chessboard) {
[INFO] [stdout]    |                ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 -             if (chessboard) {
[INFO] [stdout] 26 +             if chessboard {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:43:16
[INFO] [stdout]    |
[INFO] [stdout] 43 |             if (chessboard) {
[INFO] [stdout]    |                ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 43 -             if (chessboard) {
[INFO] [stdout] 43 +             if chessboard {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:84:20
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 if (pixel < self.elements[self.min]) {
[INFO] [stdout]    |                    ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 if (pixel < self.elements[self.min]) {
[INFO] [stdout] 84 +                 if pixel < self.elements[self.min] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:86:27
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 } else if (pixel > self.elements[self.max]) {
[INFO] [stdout]    |                           ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 86 -                 } else if (pixel > self.elements[self.max]) {
[INFO] [stdout] 86 +                 } else if pixel > self.elements[self.max] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:99:20
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 if (pixel < self.elements[self.min]) {
[INFO] [stdout]    |                    ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 99 -                 if (pixel < self.elements[self.min]) {
[INFO] [stdout] 99 +                 if pixel < self.elements[self.min] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/neighbourhood_operations.rs:101:27
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 } else if (pixel > self.elements[self.max]) {
[INFO] [stdout]     |                           ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 101 -                 } else if (pixel > self.elements[self.max]) {
[INFO] [stdout] 101 +                 } else if pixel > self.elements[self.max] {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/lib.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 |     if (flip_horizontal_option) {
[INFO] [stdout]    |        ^                      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 98 -     if (flip_horizontal_option) {
[INFO] [stdout] 98 +     if flip_horizontal_option {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 |     if (flip_vertical_option) {
[INFO] [stdout]     |        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 101 -     if (flip_vertical_option) {
[INFO] [stdout] 101 +     if flip_vertical_option {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 126 |         if (spo.op_type == "inverse") {
[INFO] [stdout]     |            ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 126 -         if (spo.op_type == "inverse") {
[INFO] [stdout] 126 +         if spo.op_type == "inverse" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:128:19
[INFO] [stdout]     |
[INFO] [stdout] 128 |         } else if (spo.op_type == "sepia") {
[INFO] [stdout]     |                   ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         } else if (spo.op_type == "sepia") {
[INFO] [stdout] 128 +         } else if spo.op_type == "sepia" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:130:19
[INFO] [stdout]     |
[INFO] [stdout] 130 |         } else if (spo.op_type == "grayscale") {
[INFO] [stdout]     |                   ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 130 -         } else if (spo.op_type == "grayscale") {
[INFO] [stdout] 130 +         } else if spo.op_type == "grayscale" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:132:19
[INFO] [stdout]     |
[INFO] [stdout] 132 |         } else if (spo.op_type == "threshold") {
[INFO] [stdout]     |                   ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 132 -         } else if (spo.op_type == "threshold") {
[INFO] [stdout] 132 +         } else if spo.op_type == "threshold" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:134:19
[INFO] [stdout]     |
[INFO] [stdout] 134 |         } else if (spo.op_type == "linear") {
[INFO] [stdout]     |                   ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 134 -         } else if (spo.op_type == "linear") {
[INFO] [stdout] 134 +         } else if spo.op_type == "linear" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:136:19
[INFO] [stdout]     |
[INFO] [stdout] 136 |         } else if (spo.op_type == "powerLaw") {
[INFO] [stdout]     |                   ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 136 -         } else if (spo.op_type == "powerLaw") {
[INFO] [stdout] 136 +         } else if spo.op_type == "powerLaw" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:138:19
[INFO] [stdout]     |
[INFO] [stdout] 138 |         } else if (spo.op_type == "histogram_equalization") {
[INFO] [stdout]     |                   ^                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 138 -         } else if (spo.op_type == "histogram_equalization") {
[INFO] [stdout] 138 +         } else if spo.op_type == "histogram_equalization" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:175:8
[INFO] [stdout]     |
[INFO] [stdout] 175 |     if (salt_ratio>0.00001) {
[INFO] [stdout]     |        ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 175 -     if (salt_ratio>0.00001) {
[INFO] [stdout] 175 +     if salt_ratio>0.00001 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 |     if (pepper_ratio>0.00001) {
[INFO] [stdout]     |        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 178 -     if (pepper_ratio>0.00001) {
[INFO] [stdout] 178 +     if pepper_ratio>0.00001 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 |     if (filter_type == "min") {
[INFO] [stdout]     |        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 183 -     if (filter_type == "min") {
[INFO] [stdout] 183 +     if filter_type == "min" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:187:15
[INFO] [stdout]     |
[INFO] [stdout] 187 |     } else if (filter_type == "median") {
[INFO] [stdout]     |               ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 187 -     } else if (filter_type == "median") {
[INFO] [stdout] 187 +     } else if filter_type == "median" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:191:15
[INFO] [stdout]     |
[INFO] [stdout] 191 |     } else if (filter_type == "max") {
[INFO] [stdout]     |               ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -     } else if (filter_type == "max") {
[INFO] [stdout] 191 +     } else if filter_type == "max" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `translation_x`
[INFO] [stdout]    --> src/geometric_spatial_transformations.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let translation_x = new_center_x - center_x;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_translation_x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `translation_y`
[INFO] [stdout]    --> src/geometric_spatial_transformations.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let translation_y = new_center_y - center_y;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_translation_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `padding`
[INFO] [stdout]   --> src/lib.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut padding: fn(&Image, i32, i32) -> (u8,u8,u8) = padding_zero;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padding`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut padding: fn(&Image, i32, i32) -> (u8,u8,u8) = padding_zero;
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let mut padding = if padding_method == "reflected" {
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_element` and `sum` are never used
[INFO] [stdout]   --> src/convolution.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Kernel {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn get_element(&self, x: i32, y: i32) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn sum(&self) -> f64 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_multi_channel_spo` is never used
[INFO] [stdout]   --> src/single_pixel_operations.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn apply_multi_channel_spo<F>(img: &mut Image, tri_chan_spo: F)
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_spo` is never used
[INFO] [stdout]   --> src/single_pixel_operations.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn apply_spo<F>(img: &mut Image, spo: F)
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fn_to_opaque` is never used
[INFO] [stdout]   --> src/single_pixel_operations.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn fn_to_opaque<F>(spo: F) -> impl Fn(u8, u8, u8) -> (u8, u8, u8)
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linear_mapping` is never used
[INFO] [stdout]    --> src/single_pixel_operations.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn linear_mapping(img: &mut Image, a: f64, b: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `power_law_mapping` is never used
[INFO] [stdout]    --> src/single_pixel_operations.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn power_law_mapping(img: &mut Image, gamma: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `median` is never read
[INFO] [stdout]   --> src/neighbourhood_operations.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct NeighbourHood<'a> {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     median: usize, // index of the median element in the neighbourhood
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.36s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.84
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "dd9e230eb3557a6bb2be06a4b6407b89c9d46d04551a935f352e1f7e84df75b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd9e230eb3557a6bb2be06a4b6407b89c9d46d04551a935f352e1f7e84df75b8", kill_on_drop: false }`
[INFO] [stdout] dd9e230eb3557a6bb2be06a4b6407b89c9d46d04551a935f352e1f7e84df75b8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 11aea8b262ea37c7fbecf3edaea1de2b5f169fe46fec7c1357dacac34059ea32
[INFO] running `Command { std: "docker" "start" "-a" "11aea8b262ea37c7fbecf3edaea1de2b5f169fe46fec7c1357dacac34059ea32", kill_on_drop: false }`
[INFO] [stderr]    Compiling wasm-bindgen-test-macro v0.3.34
[INFO] [stderr]    Compiling scoped-tls v1.0.1
[INFO] [stderr]    Compiling console_error_panic_hook v0.1.7
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.34
[INFO] [stderr]    Compiling wasm-bindgen-test v0.3.34
[INFO] [stderr]    Compiling without-a-bundler v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `HtmlCanvasElement`
[INFO] [stdout]  --> src/lib.rs:2:52
[INFO] [stdout]   |
[INFO] [stdout] 2 | use web_sys::{CanvasRenderingContext2d, ImageData, HtmlCanvasElement};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBuffer`, `Uint8Array`, and `Uint8ClampedArray`
[INFO] [stdout]  --> src/lib.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use js_sys::{ArrayBuffer, Uint8ClampedArray, Uint8Array, Array, Object};
[INFO] [stdout]   |              ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::console`
[INFO] [stdout]  --> src/convolution.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::console;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBuffer`, `Uint8Array`, and `Uint8ClampedArray`
[INFO] [stdout]  --> src/convolution.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use js_sys::{ArrayBuffer, Uint8ClampedArray, Uint8Array};
[INFO] [stdout]   |              ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*`
[INFO] [stdout]  --> src/convolution.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use wasm_bindgen::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/convolution.rs:91:9
[INFO] [stdout]     |
[INFO] [stdout] 91  |           /// check if the kernel is rank one
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92  | /         for i in 0..self.height as usize {
[INFO] [stdout] 93  | |             let scale = self.array[i][0];
[INFO] [stdout] 94  | |             if scale == 0.0 {
[INFO] [stdout] 95  | |                 continue;
[INFO] [stdout] ...   |
[INFO] [stdout] 106 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::console`
[INFO] [stdout]  --> src/single_pixel_operations.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use web_sys::console;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBuffer`, `Uint8Array`, and `Uint8ClampedArray`
[INFO] [stdout]  --> src/single_pixel_operations.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use js_sys::{ArrayBuffer, Uint8ClampedArray, Uint8Array};
[INFO] [stdout]   |              ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::prelude::*`
[INFO] [stdout]  --> src/single_pixel_operations.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use wasm_bindgen::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]  --> src/neighbourhood_operations.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 |             if (chessboard) {
[INFO] [stdout]   |                ^          ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 9 -             if (chessboard) {
[INFO] [stdout] 9 +             if chessboard {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |             if (chessboard) {
[INFO] [stdout]    |                ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 -             if (chessboard) {
[INFO] [stdout] 26 +             if chessboard {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:43:16
[INFO] [stdout]    |
[INFO] [stdout] 43 |             if (chessboard) {
[INFO] [stdout]    |                ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 43 -             if (chessboard) {
[INFO] [stdout] 43 +             if chessboard {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:84:20
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 if (pixel < self.elements[self.min]) {
[INFO] [stdout]    |                    ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 if (pixel < self.elements[self.min]) {
[INFO] [stdout] 84 +                 if pixel < self.elements[self.min] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:86:27
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 } else if (pixel > self.elements[self.max]) {
[INFO] [stdout]    |                           ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 86 -                 } else if (pixel > self.elements[self.max]) {
[INFO] [stdout] 86 +                 } else if pixel > self.elements[self.max] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/neighbourhood_operations.rs:99:20
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 if (pixel < self.elements[self.min]) {
[INFO] [stdout]    |                    ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 99 -                 if (pixel < self.elements[self.min]) {
[INFO] [stdout] 99 +                 if pixel < self.elements[self.min] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/neighbourhood_operations.rs:101:27
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 } else if (pixel > self.elements[self.max]) {
[INFO] [stdout]     |                           ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 101 -                 } else if (pixel > self.elements[self.max]) {
[INFO] [stdout] 101 +                 } else if pixel > self.elements[self.max] {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/lib.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 |     if (flip_horizontal_option) {
[INFO] [stdout]    |        ^                      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 98 -     if (flip_horizontal_option) {
[INFO] [stdout] 98 +     if flip_horizontal_option {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 |     if (flip_vertical_option) {
[INFO] [stdout]     |        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 101 -     if (flip_vertical_option) {
[INFO] [stdout] 101 +     if flip_vertical_option {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 126 |         if (spo.op_type == "inverse") {
[INFO] [stdout]     |            ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 126 -         if (spo.op_type == "inverse") {
[INFO] [stdout] 126 +         if spo.op_type == "inverse" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:128:19
[INFO] [stdout]     |
[INFO] [stdout] 128 |         } else if (spo.op_type == "sepia") {
[INFO] [stdout]     |                   ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         } else if (spo.op_type == "sepia") {
[INFO] [stdout] 128 +         } else if spo.op_type == "sepia" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:130:19
[INFO] [stdout]     |
[INFO] [stdout] 130 |         } else if (spo.op_type == "grayscale") {
[INFO] [stdout]     |                   ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 130 -         } else if (spo.op_type == "grayscale") {
[INFO] [stdout] 130 +         } else if spo.op_type == "grayscale" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:132:19
[INFO] [stdout]     |
[INFO] [stdout] 132 |         } else if (spo.op_type == "threshold") {
[INFO] [stdout]     |                   ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 132 -         } else if (spo.op_type == "threshold") {
[INFO] [stdout] 132 +         } else if spo.op_type == "threshold" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:134:19
[INFO] [stdout]     |
[INFO] [stdout] 134 |         } else if (spo.op_type == "linear") {
[INFO] [stdout]     |                   ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 134 -         } else if (spo.op_type == "linear") {
[INFO] [stdout] 134 +         } else if spo.op_type == "linear" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:136:19
[INFO] [stdout]     |
[INFO] [stdout] 136 |         } else if (spo.op_type == "powerLaw") {
[INFO] [stdout]     |                   ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 136 -         } else if (spo.op_type == "powerLaw") {
[INFO] [stdout] 136 +         } else if spo.op_type == "powerLaw" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:138:19
[INFO] [stdout]     |
[INFO] [stdout] 138 |         } else if (spo.op_type == "histogram_equalization") {
[INFO] [stdout]     |                   ^                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 138 -         } else if (spo.op_type == "histogram_equalization") {
[INFO] [stdout] 138 +         } else if spo.op_type == "histogram_equalization" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:175:8
[INFO] [stdout]     |
[INFO] [stdout] 175 |     if (salt_ratio>0.00001) {
[INFO] [stdout]     |        ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 175 -     if (salt_ratio>0.00001) {
[INFO] [stdout] 175 +     if salt_ratio>0.00001 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 |     if (pepper_ratio>0.00001) {
[INFO] [stdout]     |        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 178 -     if (pepper_ratio>0.00001) {
[INFO] [stdout] 178 +     if pepper_ratio>0.00001 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 |     if (filter_type == "min") {
[INFO] [stdout]     |        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 183 -     if (filter_type == "min") {
[INFO] [stdout] 183 +     if filter_type == "min" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:187:15
[INFO] [stdout]     |
[INFO] [stdout] 187 |     } else if (filter_type == "median") {
[INFO] [stdout]     |               ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 187 -     } else if (filter_type == "median") {
[INFO] [stdout] 187 +     } else if filter_type == "median" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lib.rs:191:15
[INFO] [stdout]     |
[INFO] [stdout] 191 |     } else if (filter_type == "max") {
[INFO] [stdout]     |               ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -     } else if (filter_type == "max") {
[INFO] [stdout] 191 +     } else if filter_type == "max" {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `translation_x`
[INFO] [stdout]    --> src/geometric_spatial_transformations.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let translation_x = new_center_x - center_x;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_translation_x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `translation_y`
[INFO] [stdout]    --> src/geometric_spatial_transformations.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let translation_y = new_center_y - center_y;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_translation_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `padding`
[INFO] [stdout]   --> src/lib.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut padding: fn(&Image, i32, i32) -> (u8,u8,u8) = padding_zero;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padding`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut padding: fn(&Image, i32, i32) -> (u8,u8,u8) = padding_zero;
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let mut padding = if padding_method == "reflected" {
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_element` and `sum` are never used
[INFO] [stdout]   --> src/convolution.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Kernel {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn get_element(&self, x: i32, y: i32) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn sum(&self) -> f64 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_multi_channel_spo` is never used
[INFO] [stdout]   --> src/single_pixel_operations.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn apply_multi_channel_spo<F>(img: &mut Image, tri_chan_spo: F)
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_spo` is never used
[INFO] [stdout]   --> src/single_pixel_operations.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn apply_spo<F>(img: &mut Image, spo: F)
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fn_to_opaque` is never used
[INFO] [stdout]   --> src/single_pixel_operations.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn fn_to_opaque<F>(spo: F) -> impl Fn(u8, u8, u8) -> (u8, u8, u8)
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linear_mapping` is never used
[INFO] [stdout]    --> src/single_pixel_operations.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn linear_mapping(img: &mut Image, a: f64, b: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `power_law_mapping` is never used
[INFO] [stdout]    --> src/single_pixel_operations.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn power_law_mapping(img: &mut Image, gamma: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `median` is never read
[INFO] [stdout]   --> src/neighbourhood_operations.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct NeighbourHood<'a> {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     median: usize, // index of the median element in the neighbourhood
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.11s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.84
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "11aea8b262ea37c7fbecf3edaea1de2b5f169fe46fec7c1357dacac34059ea32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11aea8b262ea37c7fbecf3edaea1de2b5f169fe46fec7c1357dacac34059ea32", kill_on_drop: false }`
[INFO] [stdout] 11aea8b262ea37c7fbecf3edaea1de2b5f169fe46fec7c1357dacac34059ea32
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 936fc49641e0961e35dd2761a22c942a25ce3aeb02d9e40f4ae2a8605ff53fdc
[INFO] running `Command { std: "docker" "start" "-a" "936fc49641e0961e35dd2761a22c942a25ce3aeb02d9e40f4ae2a8605ff53fdc", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `HtmlCanvasElement`
[INFO] [stderr]  --> src/lib.rs:2:52
[INFO] [stderr]   |
[INFO] [stderr] 2 | use web_sys::{CanvasRenderingContext2d, ImageData, HtmlCanvasElement};
[INFO] [stderr]   |                                                    ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ArrayBuffer`, `Uint8Array`, and `Uint8ClampedArray`
[INFO] [stderr]  --> src/lib.rs:5:14
[INFO] [stderr]   |
[INFO] [stderr] 5 | use js_sys::{ArrayBuffer, Uint8ClampedArray, Uint8Array, Array, Object};
[INFO] [stderr]   |              ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `web_sys::console`
[INFO] [stderr]  --> src/convolution.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use web_sys::console;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ArrayBuffer`, `Uint8Array`, and `Uint8ClampedArray`
[INFO] [stderr]  --> src/convolution.rs:4:14
[INFO] [stderr]   |
[INFO] [stderr] 4 | use js_sys::{ArrayBuffer, Uint8ClampedArray, Uint8Array};
[INFO] [stderr]   |              ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `wasm_bindgen::prelude::*`
[INFO] [stderr]  --> src/convolution.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use wasm_bindgen::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/convolution.rs:91:9
[INFO] [stderr]     |
[INFO] [stderr] 91  |           /// check if the kernel is rank one
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 92  | /         for i in 0..self.height as usize {
[INFO] [stderr] 93  | |             let scale = self.array[i][0];
[INFO] [stderr] 94  | |             if scale == 0.0 {
[INFO] [stderr] 95  | |                 continue;
[INFO] [stderr] ...   |
[INFO] [stderr] 106 | |         }
[INFO] [stderr]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `web_sys::console`
[INFO] [stderr]  --> src/single_pixel_operations.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use web_sys::console;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ArrayBuffer`, `Uint8Array`, and `Uint8ClampedArray`
[INFO] [stderr]  --> src/single_pixel_operations.rs:3:14
[INFO] [stderr]   |
[INFO] [stderr] 3 | use js_sys::{ArrayBuffer, Uint8ClampedArray, Uint8Array};
[INFO] [stderr]   |              ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `wasm_bindgen::prelude::*`
[INFO] [stderr]  --> src/single_pixel_operations.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use wasm_bindgen::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]  --> src/neighbourhood_operations.rs:9:16
[INFO] [stderr]   |
[INFO] [stderr] 9 |             if (chessboard) {
[INFO] [stderr]   |                ^          ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 9 -             if (chessboard) {
[INFO] [stderr] 9 +             if chessboard {
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/neighbourhood_operations.rs:26:16
[INFO] [stderr]    |
[INFO] [stderr] 26 |             if (chessboard) {
[INFO] [stderr]    |                ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 26 -             if (chessboard) {
[INFO] [stderr] 26 +             if chessboard {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/neighbourhood_operations.rs:43:16
[INFO] [stderr]    |
[INFO] [stderr] 43 |             if (chessboard) {
[INFO] [stderr]    |                ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 43 -             if (chessboard) {
[INFO] [stderr] 43 +             if chessboard {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/neighbourhood_operations.rs:84:20
[INFO] [stderr]    |
[INFO] [stderr] 84 |                 if (pixel < self.elements[self.min]) {
[INFO] [stderr]    |                    ^                               ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 84 -                 if (pixel < self.elements[self.min]) {
[INFO] [stderr] 84 +                 if pixel < self.elements[self.min] {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/neighbourhood_operations.rs:86:27
[INFO] [stderr]    |
[INFO] [stderr] 86 |                 } else if (pixel > self.elements[self.max]) {
[INFO] [stderr]    |                           ^                               ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 86 -                 } else if (pixel > self.elements[self.max]) {
[INFO] [stderr] 86 +                 } else if pixel > self.elements[self.max] {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/neighbourhood_operations.rs:99:20
[INFO] [stderr]    |
[INFO] [stderr] 99 |                 if (pixel < self.elements[self.min]) {
[INFO] [stderr]    |                    ^                               ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 99 -                 if (pixel < self.elements[self.min]) {
[INFO] [stderr] 99 +                 if pixel < self.elements[self.min] {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/neighbourhood_operations.rs:101:27
[INFO] [stderr]     |
[INFO] [stderr] 101 |                 } else if (pixel > self.elements[self.max]) {
[INFO] [stderr]     |                           ^                               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 101 -                 } else if (pixel > self.elements[self.max]) {
[INFO] [stderr] 101 +                 } else if pixel > self.elements[self.max] {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/lib.rs:98:8
[INFO] [stderr]    |
[INFO] [stderr] 98 |     if (flip_horizontal_option) {
[INFO] [stderr]    |        ^                      ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 98 -     if (flip_horizontal_option) {
[INFO] [stderr] 98 +     if flip_horizontal_option {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:101:8
[INFO] [stderr]     |
[INFO] [stderr] 101 |     if (flip_vertical_option) {
[INFO] [stderr]     |        ^                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 101 -     if (flip_vertical_option) {
[INFO] [stderr] 101 +     if flip_vertical_option {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:126:12
[INFO] [stderr]     |
[INFO] [stderr] 126 |         if (spo.op_type == "inverse") {
[INFO] [stderr]     |            ^                        ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 126 -         if (spo.op_type == "inverse") {
[INFO] [stderr] 126 +         if spo.op_type == "inverse" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:128:19
[INFO] [stderr]     |
[INFO] [stderr] 128 |         } else if (spo.op_type == "sepia") {
[INFO] [stderr]     |                   ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 128 -         } else if (spo.op_type == "sepia") {
[INFO] [stderr] 128 +         } else if spo.op_type == "sepia" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:130:19
[INFO] [stderr]     |
[INFO] [stderr] 130 |         } else if (spo.op_type == "grayscale") {
[INFO] [stderr]     |                   ^                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 130 -         } else if (spo.op_type == "grayscale") {
[INFO] [stderr] 130 +         } else if spo.op_type == "grayscale" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:132:19
[INFO] [stderr]     |
[INFO] [stderr] 132 |         } else if (spo.op_type == "threshold") {
[INFO] [stderr]     |                   ^                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 132 -         } else if (spo.op_type == "threshold") {
[INFO] [stderr] 132 +         } else if spo.op_type == "threshold" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:134:19
[INFO] [stderr]     |
[INFO] [stderr] 134 |         } else if (spo.op_type == "linear") {
[INFO] [stderr]     |                   ^                       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 134 -         } else if (spo.op_type == "linear") {
[INFO] [stderr] 134 +         } else if spo.op_type == "linear" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:136:19
[INFO] [stderr]     |
[INFO] [stderr] 136 |         } else if (spo.op_type == "powerLaw") {
[INFO] [stderr]     |                   ^                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 136 -         } else if (spo.op_type == "powerLaw") {
[INFO] [stderr] 136 +         } else if spo.op_type == "powerLaw" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:138:19
[INFO] [stderr]     |
[INFO] [stderr] 138 |         } else if (spo.op_type == "histogram_equalization") {
[INFO] [stderr]     |                   ^                                       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 138 -         } else if (spo.op_type == "histogram_equalization") {
[INFO] [stderr] 138 +         } else if spo.op_type == "histogram_equalization" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:175:8
[INFO] [stderr]     |
[INFO] [stderr] 175 |     if (salt_ratio>0.00001) {
[INFO] [stderr]     |        ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 175 -     if (salt_ratio>0.00001) {
[INFO] [stderr] 175 +     if salt_ratio>0.00001 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:178:8
[INFO] [stderr]     |
[INFO] [stderr] 178 |     if (pepper_ratio>0.00001) {
[INFO] [stderr]     |        ^                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 178 -     if (pepper_ratio>0.00001) {
[INFO] [stderr] 178 +     if pepper_ratio>0.00001 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:183:8
[INFO] [stderr]     |
[INFO] [stderr] 183 |     if (filter_type == "min") {
[INFO] [stderr]     |        ^                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 183 -     if (filter_type == "min") {
[INFO] [stderr] 183 +     if filter_type == "min" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:187:15
[INFO] [stderr]     |
[INFO] [stderr] 187 |     } else if (filter_type == "median") {
[INFO] [stderr]     |               ^                       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 187 -     } else if (filter_type == "median") {
[INFO] [stderr] 187 +     } else if filter_type == "median" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/lib.rs:191:15
[INFO] [stderr]     |
[INFO] [stderr] 191 |     } else if (filter_type == "max") {
[INFO] [stderr]     |               ^                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 191 -     } else if (filter_type == "max") {
[INFO] [stderr] 191 +     } else if filter_type == "max" {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `translation_x`
[INFO] [stderr]    --> src/geometric_spatial_transformations.rs:113:9
[INFO] [stderr]     |
[INFO] [stderr] 113 |     let translation_x = new_center_x - center_x;
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_translation_x`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `translation_y`
[INFO] [stderr]    --> src/geometric_spatial_transformations.rs:114:9
[INFO] [stderr]     |
[INFO] [stderr] 114 |     let translation_y = new_center_y - center_y;
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_translation_y`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `padding`
[INFO] [stderr]   --> src/lib.rs:68:13
[INFO] [stderr]    |
[INFO] [stderr] 68 |     let mut padding: fn(&Image, i32, i32) -> (u8,u8,u8) = padding_zero;
[INFO] [stderr]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padding`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lib.rs:68:9
[INFO] [stderr]    |
[INFO] [stderr] 68 |     let mut padding: fn(&Image, i32, i32) -> (u8,u8,u8) = padding_zero;
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lib.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 |     let mut padding = if padding_method == "reflected" {
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_element` and `sum` are never used
[INFO] [stderr]   --> src/convolution.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl Kernel {
[INFO] [stderr]    | ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 21 |     fn get_element(&self, x: i32, y: i32) -> f64 {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub fn sum(&self) -> f64 {
[INFO] [stderr]    |            ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `apply_multi_channel_spo` is never used
[INFO] [stderr]   --> src/single_pixel_operations.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn apply_multi_channel_spo<F>(img: &mut Image, tri_chan_spo: F)
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `apply_spo` is never used
[INFO] [stderr]   --> src/single_pixel_operations.rs:63:8
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub fn apply_spo<F>(img: &mut Image, spo: F)
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `fn_to_opaque` is never used
[INFO] [stderr]   --> src/single_pixel_operations.rs:82:8
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn fn_to_opaque<F>(spo: F) -> impl Fn(u8, u8, u8) -> (u8, u8, u8)
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `linear_mapping` is never used
[INFO] [stderr]    --> src/single_pixel_operations.rs:101:8
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub fn linear_mapping(img: &mut Image, a: f64, b: f64) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `power_law_mapping` is never used
[INFO] [stderr]    --> src/single_pixel_operations.rs:136:8
[INFO] [stderr]     |
[INFO] [stderr] 136 | pub fn power_law_mapping(img: &mut Image, gamma: f64) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `median` is never read
[INFO] [stderr]   --> src/neighbourhood_operations.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub struct NeighbourHood<'a> {
[INFO] [stderr]    |            ------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 62 |     median: usize, // index of the median element in the neighbourhood
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `without-a-bundler` (lib test) generated 42 warnings (run `cargo fix --lib -p without-a-bundler --tests` to apply 31 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.84
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/without_a_bundler-631b7fce0003985c)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/wasm.rs (/opt/rustwide/target/debug/deps/wasm-61253720f09c672c)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "936fc49641e0961e35dd2761a22c942a25ce3aeb02d9e40f4ae2a8605ff53fdc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "936fc49641e0961e35dd2761a22c942a25ce3aeb02d9e40f4ae2a8605ff53fdc", kill_on_drop: false }`
[INFO] [stdout] 936fc49641e0961e35dd2761a22c942a25ce3aeb02d9e40f4ae2a8605ff53fdc
