[INFO] cloning repository https://github.com/mychenkaikai/neon-rtos2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mychenkaikai/neon-rtos2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmychenkaikai%2Fneon-rtos2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmychenkaikai%2Fneon-rtos2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 002ba285b401c838080be77410e58b82d9f43287
[INFO] checking mychenkaikai/neon-rtos2 against try#1bdcb63291ccffc030f8223f6f978568dd240e3e for 155501-infallible-never-with-reservation
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmychenkaikai%2Fneon-rtos2" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mychenkaikai/neon-rtos2
[INFO] finished tweaking git repo https://github.com/mychenkaikai/neon-rtos2
[INFO] tweaked toml for git repo https://github.com/mychenkaikai/neon-rtos2 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mychenkaikai/neon-rtos2 on toolchain 1bdcb63291ccffc030f8223f6f978568dd240e3e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1bdcb63291ccffc030f8223f6f978568dd240e3e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mychenkaikai/neon-rtos2 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" "+1bdcb63291ccffc030f8223f6f978568dd240e3e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-6-tc2/source/examples/cortex-m3/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-6-tc2/source/examples/tests/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+1bdcb63291ccffc030f8223f6f978568dd240e3e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8034cc00ca53e5b20466e3b59a4a1a2ca75b941199fbe3fe341d574a08c38dd6
[INFO] running `Command { std: "docker" "start" "-a" "8034cc00ca53e5b20466e3b59a4a1a2ca75b941199fbe3fe341d574a08c38dd6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8034cc00ca53e5b20466e3b59a4a1a2ca75b941199fbe3fe341d574a08c38dd6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8034cc00ca53e5b20466e3b59a4a1a2ca75b941199fbe3fe341d574a08c38dd6", kill_on_drop: false }`
[INFO] [stdout] 8034cc00ca53e5b20466e3b59a4a1a2ca75b941199fbe3fe341d574a08c38dd6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+1bdcb63291ccffc030f8223f6f978568dd240e3e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2364ec64693ef541f6e8d1df3d2f4d2e861faa6e206193bbf232ad9f726febcc
[INFO] running `Command { std: "docker" "start" "-a" "2364ec64693ef541f6e8d1df3d2f4d2e861faa6e206193bbf232ad9f726febcc", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/examples/cortex-m3/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/examples/tests/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling cortex-m v0.7.7
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling cortex-m-rt v0.7.5
[INFO] [stderr]    Compiling cortex-m-semihosting v0.5.0
[INFO] [stderr]     Checking nb v1.1.0
[INFO] [stderr]     Checking vcell v0.1.3
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking bitfield v0.13.2
[INFO] [stderr]     Checking linked_list_allocator v0.10.5
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling cc v1.2.30
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking critical-section v1.2.0
[INFO] [stderr]     Checking nb v0.1.3
[INFO] [stderr]     Checking volatile-register v0.2.2
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking embedded-hal v0.2.7
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking embedded-alloc v0.5.1
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]     Checking sdd v3.0.10
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]    Compiling neon-rtos2-example-cortex-m3 v0.1.0 (/opt/rustwide/workdir/examples/cortex-m3)
[INFO] [stderr]    Compiling neon-rtos2-example-tests v0.1.0 (/opt/rustwide/workdir/examples/tests)
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling bare-metal v0.2.5
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking scc v2.4.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking alloc-cortex-m v0.4.4
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling neon-rtos2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: neon-rtos2@0.1.0: 非嵌入式目标，跳过汇编编译: x86_64-unknown-linux-gnu
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]    Compiling cortex-m-rt-macros v0.7.5
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]     Checking serial_test v3.2.0
[INFO] [stdout] warning: unused import: `crate::config::STACK_SIZE`
[INFO] [stdout]  --> src/kernel/task/builder.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::config::STACK_SIZE;
[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 import: `RtosError`
[INFO] [stdout]   --> src/kernel/task/state.rs:69:28
[INFO] [stdout]    |
[INFO] [stdout] 69 | use crate::error::{Result, RtosError};
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blocked`, `Created`, `Ready`, and `Running`
[INFO] [stdout]    --> src/kernel/task/mod.rs:602:46
[INFO] [stdout]     |
[INFO] [stdout] 602 |         use state::{TypedTask, TypedTaskAny, Created, Ready, Running, Blocked};
[INFO] [stdout]     |                                              ^^^^^^^  ^^^^^  ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicU8`
[INFO] [stdout]  --> src/kernel/scheduler/mod.rs:4:38
[INFO] [stdout]   |
[INFO] [stdout] 4 | use core::sync::atomic::{AtomicBool, AtomicU8, AtomicUsize, Ordering};
[INFO] [stdout]   |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/kernel/scheduler/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use spin::{Once, RwLock, Mutex};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kernel::task::Task`
[INFO] [stdout]  --> src/kernel/time/systick.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::kernel::task::Task;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TaskState` and `Task`
[INFO] [stdout]   --> src/sync/signal.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 | use crate::kernel::task::{Task, TaskState};
[INFO] [stdout]    |                           ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DmaDirection`
[INFO] [stdout]  --> src/drivers/stm32f1_uart_dma.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::hal::{DmaConfig, DmaController, DmaDirection};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::config::STACK_SIZE`
[INFO] [stdout]  --> src/kernel/task/builder.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::config::STACK_SIZE;
[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 import: `RtosError`
[INFO] [stdout]   --> src/kernel/task/state.rs:69:28
[INFO] [stdout]    |
[INFO] [stdout] 69 | use crate::error::{Result, RtosError};
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blocked`, `Created`, `Ready`, and `Running`
[INFO] [stdout]    --> src/kernel/task/mod.rs:602:46
[INFO] [stdout]     |
[INFO] [stdout] 602 |         use state::{TypedTask, TypedTaskAny, Created, Ready, Running, Blocked};
[INFO] [stdout]     |                                              ^^^^^^^  ^^^^^  ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicU8`
[INFO] [stdout]  --> src/kernel/scheduler/mod.rs:4:38
[INFO] [stdout]   |
[INFO] [stdout] 4 | use core::sync::atomic::{AtomicBool, AtomicU8, AtomicUsize, Ordering};
[INFO] [stdout]   |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/kernel/scheduler/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use spin::{Once, RwLock, Mutex};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kernel::task::Task`
[INFO] [stdout]  --> src/kernel/time/systick.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::kernel::task::Task;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TaskState` and `Task`
[INFO] [stdout]   --> src/sync/signal.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 | use crate::kernel::task::{Task, TaskState};
[INFO] [stdout]    |                           ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DmaDirection`
[INFO] [stdout]  --> src/drivers/stm32f1_uart_dma.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::hal::{DmaConfig, DmaController, DmaDirection};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::config::STACK_SIZE`
[INFO] [stdout]  --> src/kernel/task/builder.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::config::STACK_SIZE;
[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 import: `RtosError`
[INFO] [stdout]   --> src/kernel/task/state.rs:69:28
[INFO] [stdout]    |
[INFO] [stdout] 69 | use crate::error::{Result, RtosError};
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blocked`, `Created`, `Ready`, and `Running`
[INFO] [stdout]    --> src/kernel/task/mod.rs:602:46
[INFO] [stdout]     |
[INFO] [stdout] 602 |         use state::{TypedTask, TypedTaskAny, Created, Ready, Running, Blocked};
[INFO] [stdout]     |                                              ^^^^^^^  ^^^^^  ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicU8`
[INFO] [stdout]  --> src/kernel/scheduler/mod.rs:4:38
[INFO] [stdout]   |
[INFO] [stdout] 4 | use core::sync::atomic::{AtomicBool, AtomicU8, AtomicUsize, Ordering};
[INFO] [stdout]   |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> src/kernel/scheduler/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use spin::{Once, RwLock, Mutex};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kernel::task::Task`
[INFO] [stdout]  --> src/kernel/time/systick.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::kernel::task::Task;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TaskState` and `Task`
[INFO] [stdout]   --> src/sync/signal.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 | use crate::kernel::task::{Task, TaskState};
[INFO] [stdout]    |                           ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::sync::atomic::Ordering`
[INFO] [stdout]     --> src/sync/mutex.rs:1980:13
[INFO] [stdout]      |
[INFO] [stdout] 1980 |         use core::sync::atomic::Ordering;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Waker`
[INFO] [stdout]    --> src/runtime/executor.rs:301:41
[INFO] [stdout]     |
[INFO] [stdout] 301 |         use core::task::{Context, Poll, Waker};
[INFO] [stdout]     |                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::pin::Pin`
[INFO] [stdout]    --> src/runtime/select.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         use core::pin::Pin;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `select2`
[INFO] [stdout]    --> src/runtime/select.rs:402:39
[INFO] [stdout]     |
[INFO] [stdout] 402 |           use $crate::runtime::select::{select2, Either};
[INFO] [stdout]     |                                         ^^^^^^^  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 754 | /             crate::select! {
[INFO] [stdout] 755 | |                 _ = f1 => 0,
[INFO] [stdout] 756 | |                 _ = f2 => 0,
[INFO] [stdout] 757 | |                 _ = f3 => 0,
[INFO] [stdout] 758 | |                 _ = f4 => 0,
[INFO] [stdout] 759 | |                 v5 = f5 => v5,
[INFO] [stdout] 760 | |             }
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `crate::select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `select2`
[INFO] [stdout]    --> src/runtime/select.rs:402:39
[INFO] [stdout]     |
[INFO] [stdout] 402 |           use $crate::runtime::select::{select2, Either};
[INFO] [stdout]     |                                         ^^^^^^^  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 782 | /             crate::select! {
[INFO] [stdout] 783 | |                 _ = f1 => 0,
[INFO] [stdout] 784 | |                 v2 = f2 => v2,
[INFO] [stdout] 785 | |                 _ = f3 => 0,
[INFO] [stdout] 786 | |             }
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `crate::select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DmaDirection`
[INFO] [stdout]  --> src/drivers/stm32f1_uart_dma.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::hal::{DmaConfig, DmaController, DmaDirection};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_task_ready` is assigned to, but never used
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:494:13
[INFO] [stdout]     |
[INFO] [stdout] 494 |         let mut current_task_ready = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_task_ready` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_task_ready` is never read
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:499:17
[INFO] [stdout]     |
[INFO] [stdout] 499 |                 current_task_ready = snapshot.state == TaskState::Ready;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sync/mutex.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 let mut current = Scheduler::get_current_task();
[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: `mutex`
[INFO] [stdout]    --> src/sync/condvar.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mutex = guard.mutex();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sync/event.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Task::for_each(|mut task, _| {
[INFO] [stdout]    |                         ----^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/drivers/stm32f1_uart_dma.rs:199:59
[INFO] [stdout]     |
[INFO] [stdout] 199 |     async fn start_transfer_async(&mut self, channel: u8, config: DmaConfig) -> Result<(), Self::Error> {
[INFO] [stdout]     |                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_u8` is never used
[INFO] [stdout]   --> src/kernel/task/mod.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl TaskState {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn to_u8(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek` is never used
[INFO] [stdout]   --> src/kernel/scheduler/mod.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl ReadyQueue {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn peek(&self) -> Option<usize> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_task` is never read
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct SchedulerInner {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 151 |     next_task: Option<Task>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove_task_from_all_queues` is never used
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl SchedulerInner {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn remove_task_from_all_queues(&mut self, task_id: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `systick_inc` is never used
[INFO] [stdout]   --> src/kernel/time/systick.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Systick {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(crate) fn systick_inc() {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sleep_callbacks` is never read
[INFO] [stdout]    --> src/kernel/power.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct PowerManager {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 187 |     sleep_callbacks: AtomicU32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `poison_and_unlock` is never used
[INFO] [stdout]    --> src/sync/mutex.rs:570:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl<T> Mutex<T> {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 570 |     fn poison_and_unlock(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mutex` is never read
[INFO] [stdout]    --> src/sync/condvar.rs:457:5
[INFO] [stdout]     |
[INFO] [stdout] 455 | pub struct CondVarFuture<'a, T> {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 456 |     condvar: &'a CondVar,
[INFO] [stdout] 457 |     mutex: &'a Mutex<T>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/mem/allocator.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 |     struct HeapStorage([MaybeUninit<u8>; HEAP_SIZE]);
[INFO] [stdout]    |            ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `task_exit_error` is never used
[INFO] [stdout]   --> src/utils.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) fn task_exit_error() -> ! {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `task_id` is never read
[INFO] [stdout]   --> src/runtime/executor.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct AsyncTask {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     task_id: usize,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockGpioPort` is never constructed
[INFO] [stdout]    --> src/drivers/examples/mock_gpio.rs:316:12
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub struct MockGpioPort {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/drivers/examples/mock_gpio.rs:331:12
[INFO] [stdout]     |
[INFO] [stdout] 325 | impl MockGpioPort {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn new(port: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn port_number(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub fn pin_mut(&mut self, index: usize) -> Option<&mut MockGpio> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn pin(&self, index: usize) -> Option<&MockGpio> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn write(&mut self, value: u8) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     pub fn read(&self) -> Result<u8, DeviceError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn set_all_output(&mut self) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn set_all_input(&mut self) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn mock_set_input(&mut self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeriodicTimer` is never constructed
[INFO] [stdout]    --> src/drivers/examples/mock_timer.rs:296:12
[INFO] [stdout]     |
[INFO] [stdout] 296 | pub struct PeriodicTimer {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/drivers/examples/mock_timer.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 305 | impl PeriodicTimer {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn new(period_us: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn set_auto_reload(&mut self, enable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn elapsed_periods(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn mock_tick(&mut self, ticks: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn start(&mut self) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     pub fn stop(&mut self) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn reset_count(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_task_ready` is assigned to, but never used
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:494:13
[INFO] [stdout]     |
[INFO] [stdout] 494 |         let mut current_task_ready = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_task_ready` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_task_ready` is never read
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:499:17
[INFO] [stdout]     |
[INFO] [stdout] 499 |                 current_task_ready = snapshot.state == TaskState::Ready;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sync/mutex.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 let mut current = Scheduler::get_current_task();
[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: `mutex`
[INFO] [stdout]    --> src/sync/condvar.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mutex = guard.mutex();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sync/event.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Task::for_each(|mut task, _| {
[INFO] [stdout]    |                         ----^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug as log_debug` and `warn`
[INFO] [stdout]   --> examples/tests/src/bin/main.rs:33:31
[INFO] [stdout]    |
[INFO] [stdout] 33 | use neon_rtos2::{info, error, warn, debug as log_debug};
[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 variable: `config`
[INFO] [stdout]    --> src/drivers/stm32f1_uart_dma.rs:199:59
[INFO] [stdout]     |
[INFO] [stdout] 199 |     async fn start_transfer_async(&mut self, channel: u8, config: DmaConfig) -> Result<(), Self::Error> {
[INFO] [stdout]     |                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_u8` is never used
[INFO] [stdout]   --> src/kernel/task/mod.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl TaskState {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn to_u8(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek` is never used
[INFO] [stdout]   --> src/kernel/scheduler/mod.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl ReadyQueue {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn peek(&self) -> Option<usize> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_task` is never read
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct SchedulerInner {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 151 |     next_task: Option<Task>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove_task_from_all_queues` is never used
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl SchedulerInner {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn remove_task_from_all_queues(&mut self, task_id: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `systick_inc` is never used
[INFO] [stdout]   --> src/kernel/time/systick.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Systick {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(crate) fn systick_inc() {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sleep_callbacks` is never read
[INFO] [stdout]    --> src/kernel/power.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct PowerManager {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 187 |     sleep_callbacks: AtomicU32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `poison_and_unlock` is never used
[INFO] [stdout]    --> src/sync/mutex.rs:570:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl<T> Mutex<T> {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 570 |     fn poison_and_unlock(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mutex` is never read
[INFO] [stdout]    --> src/sync/condvar.rs:457:5
[INFO] [stdout]     |
[INFO] [stdout] 455 | pub struct CondVarFuture<'a, T> {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 456 |     condvar: &'a CondVar,
[INFO] [stdout] 457 |     mutex: &'a Mutex<T>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/mem/allocator.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 |     struct HeapStorage([MaybeUninit<u8>; HEAP_SIZE]);
[INFO] [stdout]    |            ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `task_exit_error` is never used
[INFO] [stdout]   --> src/utils.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) fn task_exit_error() -> ! {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `task_id` is never read
[INFO] [stdout]   --> src/runtime/executor.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct AsyncTask {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     task_id: usize,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockGpioPort` is never constructed
[INFO] [stdout]    --> src/drivers/examples/mock_gpio.rs:316:12
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub struct MockGpioPort {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/drivers/examples/mock_gpio.rs:331:12
[INFO] [stdout]     |
[INFO] [stdout] 325 | impl MockGpioPort {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn new(port: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn port_number(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub fn pin_mut(&mut self, index: usize) -> Option<&mut MockGpio> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn pin(&self, index: usize) -> Option<&MockGpio> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn write(&mut self, value: u8) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     pub fn read(&self) -> Result<u8, DeviceError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn set_all_output(&mut self) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn set_all_input(&mut self) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn mock_set_input(&mut self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeriodicTimer` is never constructed
[INFO] [stdout]    --> src/drivers/examples/mock_timer.rs:296:12
[INFO] [stdout]     |
[INFO] [stdout] 296 | pub struct PeriodicTimer {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/drivers/examples/mock_timer.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 305 | impl PeriodicTimer {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn new(period_us: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn set_auto_reload(&mut self, enable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn elapsed_periods(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn mock_tick(&mut self, ticks: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn start(&mut self) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     pub fn stop(&mut self) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn reset_count(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `executed` is never read
[INFO] [stdout]    --> examples/tests/src/bin/main.rs:308:24
[INFO] [stdout]     |
[INFO] [stdout] 308 |     let mut executed = false;
[INFO] [stdout]     |                        ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 311 |         executed = true;
[INFO] [stdout]     |         --------------- `executed` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]    --> examples/cortex-m3/src/main.rs:389:1
[INFO] [stdout]     |
[INFO] [stdout] 389 | neon_rtos2::default_panic_handler!();
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the lang item is first defined in crate `std` (which `critical_section` depends on)
[INFO] [stdout]     = note: first definition in `std` loaded from /opt/rustwide/rustup-home/toolchains/1bdcb63291ccffc030f8223f6f978568dd240e3e/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-4de43f65d1ac696e.rmeta
[INFO] [stdout]     = note: second definition in the local crate (`neon_rtos2_example_cortex_m3`)
[INFO] [stdout]     = note: this error originates in the macro `neon_rtos2::default_panic_handler` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `neon-rtos2-example-cortex-m3` (bin "neon-rtos2-example-cortex-m3") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused imports: `debug as log_debug` and `warn`
[INFO] [stdout]   --> examples/tests/src/bin/main.rs:33:31
[INFO] [stdout]    |
[INFO] [stdout] 33 | use neon_rtos2::{info, error, warn, debug as log_debug};
[INFO] [stdout]    |                               ^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]    --> examples/tests/src/bin/main.rs:606:1
[INFO] [stdout]     |
[INFO] [stdout] 606 | neon_rtos2::default_panic_handler!();
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the lang item is first defined in crate `std` (which `critical_section` depends on)
[INFO] [stdout]     = note: first definition in `std` loaded from /opt/rustwide/rustup-home/toolchains/1bdcb63291ccffc030f8223f6f978568dd240e3e/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-4de43f65d1ac696e.rmeta
[INFO] [stdout]     = note: second definition in the local crate (`mutex_test`)
[INFO] [stdout]     = note: this error originates in the macro `neon_rtos2::default_panic_handler` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `neon-rtos2-example-tests` (bin "mutex_test") due to 1 previous error; 1 warning emitted
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/kernel/task/mod.rs:1010:13
[INFO] [stdout]      |
[INFO] [stdout] 1010 |         let mut found_task2 = false;
[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: variable does not need to be mutable
[INFO] [stdout]     --> src/kernel/task/mod.rs:1011:13
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         let mut found_task3 = false;
[INFO] [stdout]      |             ----^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task2`
[INFO] [stdout]     --> src/kernel/task/mod.rs:1005:13
[INFO] [stdout]      |
[INFO] [stdout] 1005 |         let task2 = Task::new("task_2", |_| {}).unwrap();
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_task2`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task3`
[INFO] [stdout]     --> src/kernel/task/mod.rs:1006:13
[INFO] [stdout]      |
[INFO] [stdout] 1006 |         let task3 = Task::new("task_3", |_| {}).unwrap();
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_task3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found_task2`
[INFO] [stdout]     --> src/kernel/task/mod.rs:1010:13
[INFO] [stdout]      |
[INFO] [stdout] 1010 |         let mut found_task2 = false;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_found_task2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found_task3`
[INFO] [stdout]     --> src/kernel/task/mod.rs:1011:13
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         let mut found_task3 = false;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_found_task3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/kernel/task/mod.rs:1061:13
[INFO] [stdout]      |
[INFO] [stdout] 1061 |         let mut task1 = Task::new("ready_task", |_| {}).unwrap();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task1`
[INFO] [stdout]     --> src/kernel/task/mod.rs:1061:13
[INFO] [stdout]      |
[INFO] [stdout] 1061 |         let mut task1 = Task::new("ready_task", |_| {}).unwrap();
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/kernel/task/mod.rs:1085:13
[INFO] [stdout]      |
[INFO] [stdout] 1085 |         let mut low_task = Task::builder("low_task")
[INFO] [stdout]      |             ----^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low_task`
[INFO] [stdout]     --> src/kernel/task/mod.rs:1085:13
[INFO] [stdout]      |
[INFO] [stdout] 1085 |         let mut low_task = Task::builder("low_task")
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_low_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `high_task`
[INFO] [stdout]     --> src/kernel/task/mod.rs:1090:13
[INFO] [stdout]      |
[INFO] [stdout] 1090 |         let high_task = Task::builder("high_task")
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_high_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `normal_task`
[INFO] [stdout]     --> src/kernel/task/mod.rs:1095:13
[INFO] [stdout]      |
[INFO] [stdout] 1095 |         let normal_task = Task::builder("normal_task")
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_normal_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/kernel/task/mod.rs:1113:13
[INFO] [stdout]      |
[INFO] [stdout] 1113 |         let mut task2 = Task::new("task2", |_| {}).unwrap();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task2`
[INFO] [stdout]     --> src/kernel/task/mod.rs:1113:13
[INFO] [stdout]      |
[INFO] [stdout] 1113 |         let mut task2 = Task::new("task2", |_| {}).unwrap();
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_task_ready` is assigned to, but never used
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:494:13
[INFO] [stdout]     |
[INFO] [stdout] 494 |         let mut current_task_ready = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_task_ready` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_task_ready` is never read
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:499:17
[INFO] [stdout]     |
[INFO] [stdout] 499 |                 current_task_ready = snapshot.state == TaskState::Ready;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sync/mutex.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 let mut current = Scheduler::get_current_task();
[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/sync/mutex.rs:1985:13
[INFO] [stdout]      |
[INFO] [stdout] 1985 |         let mut task_l = Task::builder("L").priority(Priority::Low).spawn(|_| {}).unwrap();
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutex`
[INFO] [stdout]    --> src/sync/condvar.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mutex = guard.mutex();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sync/event.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Task::for_each(|mut task, _| {
[INFO] [stdout]    |                         ----^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/drivers/stm32f1_uart_dma.rs:199:59
[INFO] [stdout]     |
[INFO] [stdout] 199 |     async fn start_transfer_async(&mut self, channel: u8, config: DmaConfig) -> Result<(), Self::Error> {
[INFO] [stdout]     |                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_u8` is never used
[INFO] [stdout]   --> src/kernel/task/mod.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl TaskState {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn to_u8(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_task` is never read
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct SchedulerInner {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 151 |     next_task: Option<Task>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove_task_from_all_queues` is never used
[INFO] [stdout]    --> src/kernel/scheduler/mod.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl SchedulerInner {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn remove_task_from_all_queues(&mut self, task_id: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `systick_inc` is never used
[INFO] [stdout]   --> src/kernel/time/systick.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Systick {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(crate) fn systick_inc() {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sleep_callbacks` is never read
[INFO] [stdout]    --> src/kernel/power.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct PowerManager {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 187 |     sleep_callbacks: AtomicU32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `poison_and_unlock` is never used
[INFO] [stdout]    --> src/sync/mutex.rs:570:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl<T> Mutex<T> {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 570 |     fn poison_and_unlock(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mutex` is never read
[INFO] [stdout]    --> src/sync/condvar.rs:457:5
[INFO] [stdout]     |
[INFO] [stdout] 455 | pub struct CondVarFuture<'a, T> {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 456 |     condvar: &'a CondVar,
[INFO] [stdout] 457 |     mutex: &'a Mutex<T>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/mem/allocator.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 |     struct HeapStorage([MaybeUninit<u8>; HEAP_SIZE]);
[INFO] [stdout]    |            ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `task_exit_error` is never used
[INFO] [stdout]   --> src/utils.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) fn task_exit_error() -> ! {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `task_id` is never read
[INFO] [stdout]   --> src/runtime/executor.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct AsyncTask {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     task_id: usize,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `port` is never read
[INFO] [stdout]    --> src/drivers/examples/mock_gpio.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub struct MockGpioPort {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 317 |     /// 端口编号
[INFO] [stdout] 318 |     port: u8,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `port_number` and `pin_mut` are never used
[INFO] [stdout]    --> src/drivers/examples/mock_gpio.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 325 | impl MockGpioPort {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn port_number(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub fn pin_mut(&mut self, index: usize) -> Option<&mut MockGpio> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stop` and `reset_count` are never used
[INFO] [stdout]    --> src/drivers/examples/mock_timer.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 305 | impl PeriodicTimer {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 349 |     pub fn stop(&mut self) -> Result<(), DeviceError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn reset_count(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/ipc/channel.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |         Task::new("task1", test1);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[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] 229 |         let _ = Task::new("task1", test1);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/ipc/channel.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |         Task::new("task2", test2);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let _ = Task::new("task2", test2);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2364ec64693ef541f6e8d1df3d2f4d2e861faa6e206193bbf232ad9f726febcc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2364ec64693ef541f6e8d1df3d2f4d2e861faa6e206193bbf232ad9f726febcc", kill_on_drop: false }`
[INFO] [stdout] 2364ec64693ef541f6e8d1df3d2f4d2e861faa6e206193bbf232ad9f726febcc
