[INFO] cloning repository https://github.com/maryiarotar/ASDC02
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/maryiarotar/ASDC02" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaryiarotar%2FASDC02", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaryiarotar%2FASDC02'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ef4a2337a88c2141e7eb6d41642c7a7ea7b53a19
[INFO] checking maryiarotar/ASDC02 against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaryiarotar%2FASDC02" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  50% (489/963)
Updating files:  51% (492/963)
Updating files:  52% (501/963)
Updating files:  53% (511/963)
Updating files:  54% (521/963)
Updating files:  55% (530/963)
Updating files:  56% (540/963)
Updating files:  57% (549/963)
Updating files:  58% (559/963)
Updating files:  59% (569/963)
Updating files:  60% (578/963)
Updating files:  61% (588/963)
Updating files:  62% (598/963)
Updating files:  63% (607/963)
Updating files:  64% (617/963)
Updating files:  65% (626/963)
Updating files:  66% (636/963)
Updating files:  67% (646/963)
Updating files:  68% (655/963)
Updating files:  69% (665/963)
Updating files:  70% (675/963)
Updating files:  71% (684/963)
Updating files:  72% (694/963)
Updating files:  73% (703/963)
Updating files:  74% (713/963)
Updating files:  75% (723/963)
Updating files:  76% (732/963)
Updating files:  77% (742/963)
Updating files:  78% (752/963)
Updating files:  79% (761/963)
Updating files:  80% (771/963)
Updating files:  81% (781/963)
Updating files:  82% (790/963)
Updating files:  83% (800/963)
Updating files:  84% (809/963)
Updating files:  85% (819/963)
Updating files:  86% (829/963)
Updating files:  87% (838/963)
Updating files:  88% (848/963)
Updating files:  89% (858/963)
Updating files:  90% (867/963)
Updating files:  91% (877/963)
Updating files:  92% (886/963)
Updating files:  93% (896/963)
Updating files:  94% (906/963)
Updating files:  95% (915/963)
Updating files:  96% (925/963)
Updating files:  97% (935/963)
Updating files:  98% (944/963)
Updating files:  99% (954/963)
Updating files: 100% (963/963)
Updating files: 100% (963/963), done.
[INFO] started tweaking git repo https://github.com/maryiarotar/ASDC02
[INFO] finished tweaking git repo https://github.com/maryiarotar/ASDC02
[INFO] tweaked toml for git repo https://github.com/maryiarotar/ASDC02 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/maryiarotar/ASDC02 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/maryiarotar/ASDC02 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `mylib` library target)
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded thiserror-impl v1.0.39
[INFO] [stderr]   Downloaded serde_derive v1.0.100
[INFO] [stderr]   Downloaded thiserror v1.0.39
[INFO] [stderr]   Downloaded jni v0.21.0
[INFO] [stderr]   Downloaded serde_json v1.0.94
[INFO] [stderr]   Downloaded serde v1.0.100
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ac953f3f652e78ab75f9ce5c6e2951966e5fbb4b40edf5e70fda34a2510027ce
[INFO] running `Command { std: "docker" "start" "-a" "ac953f3f652e78ab75f9ce5c6e2951966e5fbb4b40edf5e70fda34a2510027ce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ac953f3f652e78ab75f9ce5c6e2951966e5fbb4b40edf5e70fda34a2510027ce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ac953f3f652e78ab75f9ce5c6e2951966e5fbb4b40edf5e70fda34a2510027ce", kill_on_drop: false }`
[INFO] [stdout] ac953f3f652e78ab75f9ce5c6e2951966e5fbb4b40edf5e70fda34a2510027ce
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eefe4c78e71420895faf28c8e9bf19af35d3c89857b643e17f8838103b98d8ac
[INFO] running `Command { std: "docker" "start" "-a" "eefe4c78e71420895faf28c8e9bf19af35d3c89857b643e17f8838103b98d8ac", kill_on_drop: false }`
[INFO] [stderr] warning: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `mylib` library target)
[INFO] [stderr]    Compiling proc-macro2 v1.0.51
[INFO] [stderr]    Compiling quote v1.0.23
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling serde v1.0.100
[INFO] [stderr]    Compiling thiserror v1.0.39
[INFO] [stderr]    Compiling serde_json v1.0.94
[INFO] [stderr]     Checking bytes v1.4.0
[INFO] [stderr]     Checking jni-sys v0.3.0
[INFO] [stderr]     Checking ryu v1.0.13
[INFO] [stderr]     Checking cesu8 v1.1.0
[INFO] [stderr]     Checking itoa v1.0.6
[INFO] [stderr]     Checking combine v4.6.6
[INFO] [stderr]    Compiling serde_derive v1.0.100
[INFO] [stderr]    Compiling thiserror-impl v1.0.39
[INFO] [stderr]     Checking jni v0.21.0
[INFO] [stderr]     Checking mylib v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/lib.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Serialize, Deserialize, Default, Clone)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/lib.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Serialize, Deserialize, Default, Clone)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]   --> src/lib.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::fs::{OpenOptions, File};
[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: `c_char` and `c_void`
[INFO] [stdout]   --> src/lib.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::os::raw::{c_char, c_void};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `JObject`
[INFO] [stdout]   --> src/lib.rs:21:37
[INFO] [stdout]    |
[INFO] [stdout] 21 | use jni::objects::{JClass, JString, JObject};
[INFO] [stdout]    |                                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `jni::sys::jobject`
[INFO] [stdout]   --> src/lib.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use jni::sys::jobject;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]   --> src/lib.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::error::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]   --> src/lib.rs:68:54
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...                   class: JClass<'local>,
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:124:54
[INFO] [stdout]     |
[INFO] [stdout] 124 | ...                   class: JClass<'local>,
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:186:54
[INFO] [stdout]     |
[INFO] [stdout] 186 | ...                   class: JClass<'local>,
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:245:70
[INFO] [stdout]     |
[INFO] [stdout] 245 | ...                   class: JClass<'local>,
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:385:5
[INFO] [stdout]     |
[INFO] [stdout] 385 | let mut a = merge_sort(&mut array, &mut number_of_comparisons,
[INFO] [stdout]     |     ----^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:312:54
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   class: JClass<'local>,
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let mut sorted_arr: Vec<Box<Product>> = Vec::with_capacity(ar.len());
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |         let mut pivot = ar.len()/2;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:342:13
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let mut left = merge_sort(&mut ar[0..pivot].to_vec(),
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let mut right = merge_sort(&mut ar[pivot..].to_vec(),
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sorted_arr`
[INFO] [stdout]    --> src/lib.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let mut sorted_arr: Vec<Box<Product>> = Vec::with_capacity(ar.len());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sorted_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/lib.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Serialize, Deserialize, Default, Clone)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/lib.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Serialize, Deserialize, Default, Clone)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]   --> src/lib.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::fs::{OpenOptions, File};
[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: `c_char` and `c_void`
[INFO] [stdout]   --> src/lib.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::os::raw::{c_char, c_void};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `JObject`
[INFO] [stdout]   --> src/lib.rs:21:37
[INFO] [stdout]    |
[INFO] [stdout] 21 | use jni::objects::{JClass, JString, JObject};
[INFO] [stdout]    |                                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `jni::sys::jobject`
[INFO] [stdout]   --> src/lib.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use jni::sys::jobject;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/lib.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Serialize, Deserialize, Default, Clone)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Product`
[INFO] [stdout] 35 | pub struct Product {
[INFO] [stdout]    |            ------- `Product` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/lib.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Serialize, Deserialize, Default, Clone)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Product`
[INFO] [stdout] 35 | pub struct Product {
[INFO] [stdout]    |            ------- `Product` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> src/lib.rs:469:9
[INFO] [stdout]     |
[INFO] [stdout] 469 | /         serde_json::to_writer(&file, elem)
[INFO] [stdout] 470 | |          .map_err(|err| {
[INFO] [stdout] 471 | |             eprintln!("Error writing to file: {}", err);
[INFO] [stdout] 472 | |         })
[INFO] [stdout] 473 | |         .is_ok();
[INFO] [stdout]     | |________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let _ = serde_json::to_writer(&file, elem)
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]   --> src/lib.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::error::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]   --> src/lib.rs:68:54
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...                   class: JClass<'local>,
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:124:54
[INFO] [stdout]     |
[INFO] [stdout] 124 | ...                   class: JClass<'local>,
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:186:54
[INFO] [stdout]     |
[INFO] [stdout] 186 | ...                   class: JClass<'local>,
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:245:70
[INFO] [stdout]     |
[INFO] [stdout] 245 | ...                   class: JClass<'local>,
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:385:5
[INFO] [stdout]     |
[INFO] [stdout] 385 | let mut a = merge_sort(&mut array, &mut number_of_comparisons,
[INFO] [stdout]     |     ----^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]    --> src/lib.rs:312:54
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   class: JClass<'local>,
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let mut sorted_arr: Vec<Box<Product>> = Vec::with_capacity(ar.len());
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |         let mut pivot = ar.len()/2;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:342:13
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let mut left = merge_sort(&mut ar[0..pivot].to_vec(),
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let mut right = merge_sort(&mut ar[pivot..].to_vec(),
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sorted_arr`
[INFO] [stdout]    --> src/lib.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let mut sorted_arr: Vec<Box<Product>> = Vec::with_capacity(ar.len());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sorted_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/lib.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Serialize, Deserialize, Default, Clone)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Product`
[INFO] [stdout] 35 | pub struct Product {
[INFO] [stdout]    |            ------- `Product` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/lib.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Serialize, Deserialize, Default, Clone)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Product`
[INFO] [stdout] 35 | pub struct Product {
[INFO] [stdout]    |            ------- `Product` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> src/lib.rs:469:9
[INFO] [stdout]     |
[INFO] [stdout] 469 | /         serde_json::to_writer(&file, elem)
[INFO] [stdout] 470 | |          .map_err(|err| {
[INFO] [stdout] 471 | |             eprintln!("Error writing to file: {}", err);
[INFO] [stdout] 472 | |         })
[INFO] [stdout] 473 | |         .is_ok();
[INFO] [stdout]     | |________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let _ = serde_json::to_writer(&file, elem)
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.03s
[INFO] running `Command { std: "docker" "inspect" "eefe4c78e71420895faf28c8e9bf19af35d3c89857b643e17f8838103b98d8ac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eefe4c78e71420895faf28c8e9bf19af35d3c89857b643e17f8838103b98d8ac", kill_on_drop: false }`
[INFO] [stdout] eefe4c78e71420895faf28c8e9bf19af35d3c89857b643e17f8838103b98d8ac
