[INFO] cloning repository https://github.com/VladimirMarkelov/tspss
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/VladimirMarkelov/tspss" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVladimirMarkelov%2Ftspss", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVladimirMarkelov%2Ftspss'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e533657cc02719450299462c3b2fc6aa18805470
[INFO] checking VladimirMarkelov/tspss against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVladimirMarkelov%2Ftspss" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/VladimirMarkelov/tspss
[INFO] finished tweaking git repo https://github.com/VladimirMarkelov/tspss
[INFO] tweaked toml for git repo https://github.com/VladimirMarkelov/tspss written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/VladimirMarkelov/tspss on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/VladimirMarkelov/tspss 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded getopts v0.2.21
[INFO] [stderr]   Downloaded nanorand v0.4.4
[INFO] [stderr]   Downloaded term v0.6.1
[INFO] [stderr]   Downloaded simplelog v0.7.6
[INFO] [stderr]   Downloaded libc v0.2.122
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c6057804c5a34cb2ba7ef4e6a29b42c1ad8b9bfbc2e06a8693979e2f48c88cca
[INFO] running `Command { std: "docker" "start" "-a" "c6057804c5a34cb2ba7ef4e6a29b42c1ad8b9bfbc2e06a8693979e2f48c88cca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c6057804c5a34cb2ba7ef4e6a29b42c1ad8b9bfbc2e06a8693979e2f48c88cca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c6057804c5a34cb2ba7ef4e6a29b42c1ad8b9bfbc2e06a8693979e2f48c88cca", kill_on_drop: false }`
[INFO] [stdout] c6057804c5a34cb2ba7ef4e6a29b42c1ad8b9bfbc2e06a8693979e2f48c88cca
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6351202ea3cbefb75a281bfa971c7d05ba039da0975f0eaf66be102030fe74f3
[INFO] running `Command { std: "docker" "start" "-a" "6351202ea3cbefb75a281bfa971c7d05ba039da0975f0eaf66be102030fe74f3", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.122
[INFO] [stderr]    Compiling proc-macro2 v1.0.37
[INFO] [stderr]    Compiling log v0.4.16
[INFO] [stderr]    Compiling syn v1.0.91
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]     Checking nanorand v0.4.4
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking toml v0.5.8
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]     Checking mio v0.7.14
[INFO] [stderr]     Checking parking_lot_core v0.8.5
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking dirs v2.0.2
[INFO] [stderr]     Checking term v0.6.1
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]    Compiling quote v1.0.17
[INFO] [stderr]     Checking signal-hook v0.1.17
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking crossterm v0.18.2
[INFO] [stderr]     Checking simplelog v0.7.6
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]     Checking tspss v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Page_ID` should have an upper camel case name
[INFO] [stdout]   --> src/ui.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Page_ID(usize),
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `PageId`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyCode`
[INFO] [stdout]  --> src/label.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crossterm::event::{KeyCode, Event};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/calc.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{Write};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NOTHING`
[INFO] [stdout]   --> src/calc.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::ui::{Widget,Context,Transition,NOTHING,MAIN_WIDGET,Dialog,PageListArgs,Msg,Command};
[INFO] [stdout]    |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Range`
[INFO] [stdout]   --> src/calc.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::parse::{Range, idx_to_name, MAX_COLS, MAX_ROWS, DEF_NUM_WIDTH, is_white};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `err_msg`
[INFO] [stdout]   --> src/calc.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::ops::{err_msg};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char`
[INFO] [stdout]  --> src/sheet.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::char;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/sheet.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event` and `KeyCode`
[INFO] [stdout]  --> src/sheet.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crossterm::event::{KeyCode, Event, KeyModifiers};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::primitive::Screen`
[INFO] [stdout]   --> src/sheet.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::primitive::Screen;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `NOTHING`
[INFO] [stdout]   --> src/sheet.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::ui::{Widget,Context,Transition,NOTHING};
[INFO] [stdout]    |                        ^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::edit::Edit`
[INFO] [stdout]   --> src/sheet.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::edit::Edit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strs`
[INFO] [stdout]   --> src/sheet.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::strs;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `idx_to_name`
[INFO] [stdout]   --> src/sheet.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::parse::{idx_to_name, MAX_COLS, MAX_ROWS, DEF_NUM_WIDTH, Range, parse_float, parse_while, parse_arg,is_white};
[INFO] [stdout]    |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryFrom`
[INFO] [stdout]  --> src/parse.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::convert::TryFrom;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `anyhow`
[INFO] [stdout]  --> src/ops.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pos` and `UNINIT`
[INFO] [stdout]  --> src/stack.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ops::{Pos,Arg, UNINIT, NEG_SIGN, POS_SIGN};
[INFO] [stdout]   |                  ^^^      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Dialog` and `NOTHING`
[INFO] [stdout]   --> src/main.rs:36:37
[INFO] [stdout]    |
[INFO] [stdout] 36 | use ui::{WidgetStack,Context,Widget,Dialog,Transition,Msg,NOTHING,Command};
[INFO] [stdout]    |                                     ^^^^^^                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `panel::Panel`
[INFO] [stdout]   --> src/main.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use panel::Panel;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `label::Label`
[INFO] [stdout]   --> src/main.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use label::Label;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `edit::Edit`
[INFO] [stdout]   --> src/main.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use edit::Edit;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Page_ID` should have an upper camel case name
[INFO] [stdout]   --> src/ui.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Page_ID(usize),
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `PageId`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyCode`
[INFO] [stdout]  --> src/label.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crossterm::event::{KeyCode, Event};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/calc.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{Write};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NOTHING`
[INFO] [stdout]   --> src/calc.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::ui::{Widget,Context,Transition,NOTHING,MAIN_WIDGET,Dialog,PageListArgs,Msg,Command};
[INFO] [stdout]    |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Range`
[INFO] [stdout]   --> src/calc.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::parse::{Range, idx_to_name, MAX_COLS, MAX_ROWS, DEF_NUM_WIDTH, is_white};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `err_msg`
[INFO] [stdout]   --> src/calc.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::ops::{err_msg};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char`
[INFO] [stdout]  --> src/sheet.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::char;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/sheet.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event` and `KeyCode`
[INFO] [stdout]  --> src/sheet.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crossterm::event::{KeyCode, Event, KeyModifiers};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::primitive::Screen`
[INFO] [stdout]   --> src/sheet.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::primitive::Screen;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `NOTHING`
[INFO] [stdout]   --> src/sheet.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::ui::{Widget,Context,Transition,NOTHING};
[INFO] [stdout]    |                        ^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::edit::Edit`
[INFO] [stdout]   --> src/sheet.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::edit::Edit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::strs`
[INFO] [stdout]   --> src/sheet.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::strs;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `idx_to_name`
[INFO] [stdout]   --> src/sheet.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::parse::{idx_to_name, MAX_COLS, MAX_ROWS, DEF_NUM_WIDTH, Range, parse_float, parse_while, parse_arg,is_white};
[INFO] [stdout]    |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryFrom`
[INFO] [stdout]  --> src/parse.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::convert::TryFrom;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ops::*`
[INFO] [stdout]    --> src/parse.rs:473:9
[INFO] [stdout]     |
[INFO] [stdout] 473 |     use crate::ops::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `anyhow`
[INFO] [stdout]  --> src/ops.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UNINIT`
[INFO] [stdout]  --> src/stack.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ops::{Pos,Arg, UNINIT, NEG_SIGN, POS_SIGN};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ops::*`
[INFO] [stdout]    --> src/stack.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 |     use crate::ops::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Dialog` and `NOTHING`
[INFO] [stdout]   --> src/main.rs:36:37
[INFO] [stdout]    |
[INFO] [stdout] 36 | use ui::{WidgetStack,Context,Widget,Dialog,Transition,Msg,NOTHING,Command};
[INFO] [stdout]    |                                     ^^^^^^                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `panel::Panel`
[INFO] [stdout]   --> src/main.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use panel::Panel;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `label::Label`
[INFO] [stdout]   --> src/main.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use label::Label;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `edit::Edit`
[INFO] [stdout]   --> src/main.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use edit::Edit;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unicode_width::UnicodeWidthChar`
[INFO] [stdout]  --> src/edit.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use unicode_width::UnicodeWidthChar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Widget`
[INFO] [stdout]   --> src/main.rs:36:30
[INFO] [stdout]    |
[INFO] [stdout] 36 | use ui::{WidgetStack,Context,Widget,Dialog,Transition,Msg,NOTHING,Command};
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Widget`
[INFO] [stdout]   --> src/sheet.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::ui::{Widget,Context,Transition,NOTHING};
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/ui.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 |         for (idx, w) in self.widgets.iter_mut().enumerate() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/panel.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new(ctx: &Context, name: &str, col: u16, row: u16, w: u16, h: u16, fg: Color, bg: Color, border: Border) -> Panel {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/panel.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn draw(&self, ctx: &Context, scr: &mut Screen/* , theme: &dyn Theme */) -> Result<()> {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/panel.rs:38:33
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/panel.rs:38:48
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/panel.rs:51:31
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/label.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(ctx: &Context, name: &str, col: u16, row: u16, fg: Color, bg: Color, text: &str) -> Label {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/label.rs:26:20
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn draw(&self, ctx: &Context, scr: &mut Screen/* , theme: &dyn Theme */) -> Result<()> {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/label.rs:34:33
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/label.rs:34:48
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/label.rs:34:66
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/label.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/listbox.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(ctx: &Context, name: &str, col: u16, row: u16, w: u16, h: u16, fg: Color, bg: Color) -> ListBox {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/listbox.rs:58:20
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn draw(&self, ctx: &Context, scr: &mut Screen/* , theme: &dyn Theme */) -> Result<()> {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/listbox.rs:108:33
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]    --> src/listbox.rs:108:48
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]    --> src/listbox.rs:157:31
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/listbox.rs:176:30
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn on_command(&mut self, cmd: Msg) -> Result<Transition> { Ok(Transition::EventPass) }
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/edit.rs:30:16
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new(ctx: &Context, name: &str, col: u16, row: u16, w: u16, fg: Color, bg: Color, text: &str) -> Edit {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/edit.rs:75:20
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn draw(&self, ctx: &Context, scr: &mut Screen/* , theme: &dyn Theme */) -> Result<()> {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/edit.rs:92:33
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/edit.rs:92:48
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]    --> src/edit.rs:200:31
[INFO] [stdout]     |
[INFO] [stdout] 200 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/calc.rs:62:27
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn draw_header(&self, ctx: &Context, scr: &mut Screen) -> Result<()> {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/calc.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |     fn draw_cells(&self, ctx: &Context, scr: &mut Screen) -> Result<()> {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/calc.rs:295:31
[INFO] [stdout]     |
[INFO] [stdout] 295 |     fn process_key(&mut self, c: char) ->  Transition  {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]    --> src/calc.rs:323:51
[INFO] [stdout]     |
[INFO] [stdout] 323 |     fn process_enter(&mut self, scr: &mut Screen, modifiers: KeyModifiers) -> Transition {
[INFO] [stdout]     |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/calc.rs:381:39
[INFO] [stdout]     |
[INFO] [stdout] 381 |     fn process_event_inner(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/calc.rs:655:25
[INFO] [stdout]     |
[INFO] [stdout] 655 |                     let mut sheet = &mut self.sheets[self.sheet];
[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/calc.rs:696:21
[INFO] [stdout]     |
[INFO] [stdout] 696 |                 let mut after = false;
[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/calc.rs:709:21
[INFO] [stdout]     |
[INFO] [stdout] 709 |                 let mut sheet = &mut self.sheets[self.sheet];
[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/calc.rs:727:21
[INFO] [stdout]     |
[INFO] [stdout] 727 |                 let mut after = false;
[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/calc.rs:740:21
[INFO] [stdout]     |
[INFO] [stdout] 740 |                 let mut sheet = &mut self.sheets[self.sheet];
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/calc.rs:583:22
[INFO] [stdout]     |
[INFO] [stdout] 583 |                 let (args, path) = self.parse_cmd_any_str(args);
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/calc.rs:595:22
[INFO] [stdout]     |
[INFO] [stdout] 595 |                 let (args, path) = self.parse_cmd_any_str(args);
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/calc.rs:639:22
[INFO] [stdout]     |
[INFO] [stdout] 639 |                 let (args, what) = self.parse_cmd_one_of(args, |s| s=="row" || s=="col" || s=="column");
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `after`
[INFO] [stdout]    --> src/calc.rs:696:21
[INFO] [stdout]     |
[INFO] [stdout] 696 |                 let mut after = false;
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_after`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `after`
[INFO] [stdout]    --> src/calc.rs:727:21
[INFO] [stdout]     |
[INFO] [stdout] 727 |                 let mut after = false;
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_after`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]    --> src/calc.rs:844:31
[INFO] [stdout]     |
[INFO] [stdout] 844 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `do_calc` is never read
[INFO] [stdout]    --> src/sheet.rs:511:27
[INFO] [stdout]     |
[INFO] [stdout] 511 |         let mut do_calc = false;
[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: unused variable: `e`
[INFO] [stdout]     --> src/sheet.rs:1141:21
[INFO] [stdout]      |
[INFO] [stdout] 1141 |                 Err(e) => return expr.to_string(),
[INFO] [stdout]      |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/sheet.rs:1164:21
[INFO] [stdout]      |
[INFO] [stdout] 1164 |                 let mut cell: Option<Cell> = if let Some(v) = self.cells.get(&id) {
[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/sheet.rs:1196:21
[INFO] [stdout]      |
[INFO] [stdout] 1196 |                 let mut cell: Option<Cell> = if let Some(v) = self.cells.get(&id) {
[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/sheet.rs:1228:21
[INFO] [stdout]      |
[INFO] [stdout] 1228 |                 let mut cell: Option<Cell> = if let Some(v) = self.cells.get(&id) {
[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/sheet.rs:1262:21
[INFO] [stdout]      |
[INFO] [stdout] 1262 |                 let mut cell: Option<Cell> = if let Some(v) = self.cells.get(&id) {
[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/parse.rs:188:14
[INFO] [stdout]     |
[INFO] [stdout] 188 |     let (st, mut ident) = match s.chars().next() {
[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/parse.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let mut c2 = Pos::default();
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]    --> src/parse.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let mut c2 = Pos::default();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unicode_width::UnicodeWidthChar`
[INFO] [stdout]  --> src/edit.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use unicode_width::UnicodeWidthChar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Widget`
[INFO] [stdout]   --> src/main.rs:36:30
[INFO] [stdout]    |
[INFO] [stdout] 36 | use ui::{WidgetStack,Context,Widget,Dialog,Transition,Msg,NOTHING,Command};
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Widget`
[INFO] [stdout]   --> src/sheet.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::ui::{Widget,Context,Transition,NOTHING};
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parse.rs:384:18
[INFO] [stdout]     |
[INFO] [stdout] 384 |     let (mut st, mut ok) = parse_literal(s, "\"");
[INFO] [stdout]     |                  ----^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stl`
[INFO] [stdout]    --> src/parse.rs:413:10
[INFO] [stdout]     |
[INFO] [stdout] 413 |     let (stl, ok) = parse_literal(st, "(");
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_stl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `st`
[INFO] [stdout]    --> src/parse.rs:429:10
[INFO] [stdout]     |
[INFO] [stdout] 429 |     let (st, ok) = parse_literal(s, "\"");
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_st`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `st`
[INFO] [stdout]    --> src/parse.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 |     let (st, id) = parse_while(s, |c| ('a'..='z').contains(&c) || ('A'..='Z').contains(&c) || c == '$');
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_st`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/expr.rs:246:19
[INFO] [stdout]     |
[INFO] [stdout] 246 |         (Arg::Str(s), _) | (_, Arg::Str(s)) => {
[INFO] [stdout]     |                   ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 246 |         (Arg::Str(_s), _) | (_, Arg::Str(_s)) => {
[INFO] [stdout]     |                   +                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/expr.rs:259:19
[INFO] [stdout]     |
[INFO] [stdout] 259 |         (Arg::Str(s), _) | (_, Arg::Str(s)) => {
[INFO] [stdout]     |                   ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 259 |         (Arg::Str(_s), _) | (_, Arg::Str(_s)) => {
[INFO] [stdout]     |                   +                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/expr.rs:272:19
[INFO] [stdout]     |
[INFO] [stdout] 272 |         (Arg::Str(s), _) | (_, Arg::Str(s)) => {
[INFO] [stdout]     |                   ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 272 |         (Arg::Str(_s), _) | (_, Arg::Str(_s)) => {
[INFO] [stdout]     |                   +                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Double` is never constructed
[INFO] [stdout]   --> src/primitive.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum Border {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Double,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Border` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `width`, `height`, `write_char`, and `resize` are never used
[INFO] [stdout]    --> src/primitive.rs:48:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Screen {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn width(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn height(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn write_char(&mut self, ch: char, col: u16, row: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn resize(&mut self, new_w: u16, new_h: u16) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ui.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Ok(Dialog),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Msg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 42 -     Ok(Dialog),
[INFO] [stdout] 42 +     Ok(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hide` and `show` are never used
[INFO] [stdout]   --> src/ui.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub trait Widget {
[INFO] [stdout]    |           ------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn hide(&mut self);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 79 |     fn show(&mut self);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_submenu` is never used
[INFO] [stdout]   --> src/listbox.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ListItem {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn new_submenu(s: &str, dlg: Dialog) -> ListItem {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_command` is never used
[INFO] [stdout]   --> src/edit.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Edit {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn with_command(self, command: Dialog) -> Edit {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process_key` is never used
[INFO] [stdout]    --> src/calc.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Calc {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn process_key(&mut self, c: char) ->  Transition  {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `align` is never read
[INFO] [stdout]   --> src/sheet.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Attr {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub align: Align,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_default` is never used
[INFO] [stdout]   --> src/sheet.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl OptionAttr {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 68 |     fn is_default(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/sheet.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 |     Cell(usize), // count
[INFO] [stdout]    |     ---- ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoveBy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 81 -     Cell(usize), // count
[INFO] [stdout] 81 +     Cell(()), // count
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Page`, `Edge`, and `End` are never constructed
[INFO] [stdout]   --> src/sheet.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | enum MoveBy {
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] 81 |     Cell(usize), // count
[INFO] [stdout] 82 |     Page(usize), // count
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 83 |     Edge,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 84 |     End,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoveBy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_default` is never used
[INFO] [stdout]    --> src/sheet.rs:252:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl Cell {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn is_default(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_cell_attr` is never used
[INFO] [stdout]    --> src/sheet.rs:534:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | impl Sheet {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 534 |     pub fn set_cell_attr(&mut self, col: usize, row: usize, attr: OptionAttr) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Row` and `Col` are never constructed
[INFO] [stdout]   --> src/parse.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum Range {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     Row(usize), // entire row
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 23 |     Col(usize), // entire col
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Range` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_int` is never used
[INFO] [stdout]    --> src/parse.rs:330:8
[INFO] [stdout]     |
[INFO] [stdout] 330 | pub fn parse_int(s: &str) -> Result<(&str, i64)> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_to_bool` is never used
[INFO] [stdout]    --> src/expr.rs:308:4
[INFO] [stdout]     |
[INFO] [stdout] 308 | fn try_to_bool(a: Arg) -> Result<bool> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]    --> src/ui.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 |         for (idx, w) in self.widgets.iter_mut().enumerate() {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/panel.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new(ctx: &Context, name: &str, col: u16, row: u16, w: u16, h: u16, fg: Color, bg: Color, border: Border) -> Panel {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/panel.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn draw(&self, ctx: &Context, scr: &mut Screen/* , theme: &dyn Theme */) -> Result<()> {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/panel.rs:38:33
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/panel.rs:38:48
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/panel.rs:51:31
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/label.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(ctx: &Context, name: &str, col: u16, row: u16, fg: Color, bg: Color, text: &str) -> Label {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/label.rs:26:20
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn draw(&self, ctx: &Context, scr: &mut Screen/* , theme: &dyn Theme */) -> Result<()> {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/label.rs:34:33
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/label.rs:34:48
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/label.rs:34:66
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/label.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/listbox.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(ctx: &Context, name: &str, col: u16, row: u16, w: u16, h: u16, fg: Color, bg: Color) -> ListBox {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/listbox.rs:58:20
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn draw(&self, ctx: &Context, scr: &mut Screen/* , theme: &dyn Theme */) -> Result<()> {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/listbox.rs:108:33
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]    --> src/listbox.rs:108:48
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]    --> src/listbox.rs:157:31
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/listbox.rs:176:30
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn on_command(&mut self, cmd: Msg) -> Result<Transition> { Ok(Transition::EventPass) }
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/edit.rs:30:16
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new(ctx: &Context, name: &str, col: u16, row: u16, w: u16, fg: Color, bg: Color, text: &str) -> Edit {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/edit.rs:75:20
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn draw(&self, ctx: &Context, scr: &mut Screen/* , theme: &dyn Theme */) -> Result<()> {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/edit.rs:92:33
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]   --> src/edit.rs:92:48
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn process_event(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]    |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]    --> src/edit.rs:200:31
[INFO] [stdout]     |
[INFO] [stdout] 200 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/calc.rs:62:27
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn draw_header(&self, ctx: &Context, scr: &mut Screen) -> Result<()> {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/calc.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |     fn draw_cells(&self, ctx: &Context, scr: &mut Screen) -> Result<()> {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/calc.rs:295:31
[INFO] [stdout]     |
[INFO] [stdout] 295 |     fn process_key(&mut self, c: char) ->  Transition  {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]    --> src/calc.rs:323:51
[INFO] [stdout]     |
[INFO] [stdout] 323 |     fn process_enter(&mut self, scr: &mut Screen, modifiers: KeyModifiers) -> Transition {
[INFO] [stdout]     |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/calc.rs:381:39
[INFO] [stdout]     |
[INFO] [stdout] 381 |     fn process_event_inner(&mut self, ctx: &Context, scr: &mut Screen, event: Event) -> Result<Transition> {
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/calc.rs:655:25
[INFO] [stdout]     |
[INFO] [stdout] 655 |                     let mut sheet = &mut self.sheets[self.sheet];
[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/calc.rs:696:21
[INFO] [stdout]     |
[INFO] [stdout] 696 |                 let mut after = false;
[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/calc.rs:709:21
[INFO] [stdout]     |
[INFO] [stdout] 709 |                 let mut sheet = &mut self.sheets[self.sheet];
[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/calc.rs:727:21
[INFO] [stdout]     |
[INFO] [stdout] 727 |                 let mut after = false;
[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/calc.rs:740:21
[INFO] [stdout]     |
[INFO] [stdout] 740 |                 let mut sheet = &mut self.sheets[self.sheet];
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/calc.rs:583:22
[INFO] [stdout]     |
[INFO] [stdout] 583 |                 let (args, path) = self.parse_cmd_any_str(args);
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/calc.rs:595:22
[INFO] [stdout]     |
[INFO] [stdout] 595 |                 let (args, path) = self.parse_cmd_any_str(args);
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/calc.rs:639:22
[INFO] [stdout]     |
[INFO] [stdout] 639 |                 let (args, what) = self.parse_cmd_one_of(args, |s| s=="row" || s=="col" || s=="column");
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `after`
[INFO] [stdout]    --> src/calc.rs:696:21
[INFO] [stdout]     |
[INFO] [stdout] 696 |                 let mut after = false;
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_after`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `after`
[INFO] [stdout]    --> src/calc.rs:727:21
[INFO] [stdout]     |
[INFO] [stdout] 727 |                 let mut after = false;
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_after`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scr`
[INFO] [stdout]    --> src/calc.rs:844:31
[INFO] [stdout]     |
[INFO] [stdout] 844 |     fn on_activate(&mut self, scr: &mut Screen) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_scr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `do_calc` is never read
[INFO] [stdout]    --> src/sheet.rs:511:27
[INFO] [stdout]     |
[INFO] [stdout] 511 |         let mut do_calc = false;
[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: unused variable: `e`
[INFO] [stdout]     --> src/sheet.rs:1141:21
[INFO] [stdout]      |
[INFO] [stdout] 1141 |                 Err(e) => return expr.to_string(),
[INFO] [stdout]      |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/sheet.rs:1164:21
[INFO] [stdout]      |
[INFO] [stdout] 1164 |                 let mut cell: Option<Cell> = if let Some(v) = self.cells.get(&id) {
[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/sheet.rs:1196:21
[INFO] [stdout]      |
[INFO] [stdout] 1196 |                 let mut cell: Option<Cell> = if let Some(v) = self.cells.get(&id) {
[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/sheet.rs:1228:21
[INFO] [stdout]      |
[INFO] [stdout] 1228 |                 let mut cell: Option<Cell> = if let Some(v) = self.cells.get(&id) {
[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/sheet.rs:1262:21
[INFO] [stdout]      |
[INFO] [stdout] 1262 |                 let mut cell: Option<Cell> = if let Some(v) = self.cells.get(&id) {
[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/parse.rs:188:14
[INFO] [stdout]     |
[INFO] [stdout] 188 |     let (st, mut ident) = match s.chars().next() {
[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/parse.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let mut c2 = Pos::default();
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]    --> src/parse.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let mut c2 = Pos::default();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parse.rs:384:18
[INFO] [stdout]     |
[INFO] [stdout] 384 |     let (mut st, mut ok) = parse_literal(s, "\"");
[INFO] [stdout]     |                  ----^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stl`
[INFO] [stdout]    --> src/parse.rs:413:10
[INFO] [stdout]     |
[INFO] [stdout] 413 |     let (stl, ok) = parse_literal(st, "(");
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_stl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `st`
[INFO] [stdout]    --> src/parse.rs:429:10
[INFO] [stdout]     |
[INFO] [stdout] 429 |     let (st, ok) = parse_literal(s, "\"");
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_st`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `st`
[INFO] [stdout]    --> src/parse.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 |     let (st, id) = parse_while(s, |c| ('a'..='z').contains(&c) || ('A'..='Z').contains(&c) || c == '$');
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_st`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/expr.rs:246:19
[INFO] [stdout]     |
[INFO] [stdout] 246 |         (Arg::Str(s), _) | (_, Arg::Str(s)) => {
[INFO] [stdout]     |                   ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 246 |         (Arg::Str(_s), _) | (_, Arg::Str(_s)) => {
[INFO] [stdout]     |                   +                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/expr.rs:259:19
[INFO] [stdout]     |
[INFO] [stdout] 259 |         (Arg::Str(s), _) | (_, Arg::Str(s)) => {
[INFO] [stdout]     |                   ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 259 |         (Arg::Str(_s), _) | (_, Arg::Str(_s)) => {
[INFO] [stdout]     |                   +                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/expr.rs:272:19
[INFO] [stdout]     |
[INFO] [stdout] 272 |         (Arg::Str(s), _) | (_, Arg::Str(s)) => {
[INFO] [stdout]     |                   ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 272 |         (Arg::Str(_s), _) | (_, Arg::Str(_s)) => {
[INFO] [stdout]     |                   +                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Double` is never constructed
[INFO] [stdout]   --> src/primitive.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum Border {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Double,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Border` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `width`, `height`, and `resize` are never used
[INFO] [stdout]    --> src/primitive.rs:48:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Screen {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn width(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn height(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn resize(&mut self, new_w: u16, new_h: u16) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ui.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Ok(Dialog),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Msg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 42 -     Ok(Dialog),
[INFO] [stdout] 42 +     Ok(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hide` and `show` are never used
[INFO] [stdout]   --> src/ui.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub trait Widget {
[INFO] [stdout]    |           ------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn hide(&mut self);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 79 |     fn show(&mut self);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_submenu` is never used
[INFO] [stdout]   --> src/listbox.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ListItem {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn new_submenu(s: &str, dlg: Dialog) -> ListItem {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_command` is never used
[INFO] [stdout]   --> src/edit.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Edit {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn with_command(self, command: Dialog) -> Edit {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process_key` is never used
[INFO] [stdout]    --> src/calc.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Calc {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn process_key(&mut self, c: char) ->  Transition  {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `align` is never read
[INFO] [stdout]   --> src/sheet.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Attr {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub align: Align,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_default` is never used
[INFO] [stdout]   --> src/sheet.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl OptionAttr {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 68 |     fn is_default(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/sheet.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 |     Cell(usize), // count
[INFO] [stdout]    |     ---- ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoveBy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 81 -     Cell(usize), // count
[INFO] [stdout] 81 +     Cell(()), // count
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Page`, `Edge`, and `End` are never constructed
[INFO] [stdout]   --> src/sheet.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | enum MoveBy {
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] 81 |     Cell(usize), // count
[INFO] [stdout] 82 |     Page(usize), // count
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 83 |     Edge,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 84 |     End,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoveBy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_default` is never used
[INFO] [stdout]    --> src/sheet.rs:252:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl Cell {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn is_default(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_cell_attr` is never used
[INFO] [stdout]    --> src/sheet.rs:534:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | impl Sheet {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 534 |     pub fn set_cell_attr(&mut self, col: usize, row: usize, attr: OptionAttr) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Row` and `Col` are never constructed
[INFO] [stdout]   --> src/parse.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum Range {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     Row(usize), // entire row
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 23 |     Col(usize), // entire col
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Range` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_to_bool` is never used
[INFO] [stdout]    --> src/expr.rs:308:4
[INFO] [stdout]     |
[INFO] [stdout] 308 | fn try_to_bool(a: Arg) -> Result<bool> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.73s
[INFO] running `Command { std: "docker" "inspect" "6351202ea3cbefb75a281bfa971c7d05ba039da0975f0eaf66be102030fe74f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6351202ea3cbefb75a281bfa971c7d05ba039da0975f0eaf66be102030fe74f3", kill_on_drop: false }`
[INFO] [stdout] 6351202ea3cbefb75a281bfa971c7d05ba039da0975f0eaf66be102030fe74f3
