[INFO] cloning repository https://github.com/wistrandj/rust-zk
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wistrandj/rust-zk" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwistrandj%2Frust-zk", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwistrandj%2Frust-zk'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 594332d3b6c860519676cb3f7a34cf759d99dc88
[INFO] testing wistrandj/rust-zk against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwistrandj%2Frust-zk" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/wistrandj/rust-zk
[INFO] finished tweaking git repo https://github.com/wistrandj/rust-zk
[INFO] tweaked toml for git repo https://github.com/wistrandj/rust-zk written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/wistrandj/rust-zk on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/wistrandj/rust-zk 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 363e21bce45e97fafdb6809707d34af3006e2349efdb8408e2dbb9dc4c6a27ee
[INFO] running `Command { std: "docker" "start" "-a" "363e21bce45e97fafdb6809707d34af3006e2349efdb8408e2dbb9dc4c6a27ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "363e21bce45e97fafdb6809707d34af3006e2349efdb8408e2dbb9dc4c6a27ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "363e21bce45e97fafdb6809707d34af3006e2349efdb8408e2dbb9dc4c6a27ee", kill_on_drop: false }`
[INFO] [stdout] 363e21bce45e97fafdb6809707d34af3006e2349efdb8408e2dbb9dc4c6a27ee
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 78b2abac0b0860ed15520247dcffc04997d75537e2df3acac3fe7d93fe12b739
[INFO] running `Command { std: "docker" "start" "-a" "78b2abac0b0860ed15520247dcffc04997d75537e2df3acac3fe7d93fe12b739", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling typenum v1.12.0
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]    Compiling libc v0.2.80
[INFO] [stderr]    Compiling ahash v0.4.6
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling smallvec v1.4.2
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.2.0
[INFO] [stderr]    Compiling opaque-debug v0.3.0
[INFO] [stderr]    Compiling cpuid-bool v0.1.2
[INFO] [stderr]    Compiling libsqlite3-sys v0.20.1
[INFO] [stderr]    Compiling hashbrown v0.9.1
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling time v0.1.44
[INFO] [stderr]    Compiling hashlink v0.6.0
[INFO] [stderr]    Compiling rusqlite v0.24.1
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling sha2 v0.9.2
[INFO] [stderr]    Compiling rust-zk v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `params`
[INFO] [stdout]  --> src/control/content.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rusqlite::{Connection, params};
[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: `std::fs`
[INFO] [stdout]  --> src/control/content.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hash`
[INFO] [stdout]   --> src/control/content.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::hash;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `params`
[INFO] [stdout]  --> src/control/tag.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rusqlite::{Connection, params};
[INFO] [stdout]   |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::card::Face`
[INFO] [stdout]  --> src/model/blob.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::card::Face;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/model/schema.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/feature.rs:24:23
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Ok(number) => (number == 1),
[INFO] [stdout]    |                       ^           ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         Ok(number) => (number == 1),
[INFO] [stdout] 24 +         Ok(number) => number == 1 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/feature.rs:41:23
[INFO] [stdout]    |
[INFO] [stdout] 41 |         Ok(number) => (number == 1),
[INFO] [stdout]    |                       ^           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 41 -         Ok(number) => (number == 1),
[INFO] [stdout] 41 +         Ok(number) => number == 1 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]   --> src/control/content.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn all_timeline_cards(conn: &Connection) -> Vec<Meta> {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `folder`
[INFO] [stdout]   --> src/control/content.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn all_open_cards(folder: &Path) -> Vec<Meta> {
[INFO] [stdout]    |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_folder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/control/content.rs:20:22
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn timestamp_of_file(file: &Path) -> Timestamp {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/control/tag.rs:102:28
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn call_once(self, args: ()) -> Result<(), &'static str> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]   --> src/model/carddb.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 28 |     if let Err(msg) = success {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model/tag.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut stmt = self.connection.prepare(sql);
[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: `timeline_file`
[INFO] [stdout]   --> src/zkinit.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn zkinit(timeline_file: &PathBuf, args: &varg::Args) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/card/meta.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn eq(&self, other: &Timestamp) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/card/meta.rs:35:27
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn partial_cmp(&self, other: &Timestamp) -> Option<Ordering> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/feature.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn enable_feature(name: &str, conn: &mut Connection, feature: &dyn Feature) {
[INFO] [stdout]   |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/feature.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn has_feature_table(name: &str, conn: &Connection) -> bool {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/feature.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn has(name: &str, conn: &Connection) -> bool {
[INFO] [stdout]    |            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/hash.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn from_str(slice: &str) -> Hash {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hi`
[INFO] [stdout]   --> src/hash.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn hexcharvalue(hi: u8, lo: u8) -> u8 {
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_hi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lo`
[INFO] [stdout]   --> src/hash.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn hexcharvalue(hi: u8, lo: u8) -> u8 {
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_lo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `set`
[INFO] [stdout]   --> src/hash.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let set = b"0123456789abcdef";
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeline`
[INFO] [stdout]   --> src/zktag.rs:88:14
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn zktag(timeline: &PathBuf, args: &Args) -> Result<(), &'static str> {
[INFO] [stdout]    |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_timeline_cards` is never used
[INFO] [stdout]   --> src/control/content.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn all_timeline_cards(conn: &Connection) -> Vec<Meta> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_open_cards` is never used
[INFO] [stdout]   --> src/control/content.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn all_open_cards(folder: &Path) -> Vec<Meta> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timestamp_of_file` is never used
[INFO] [stdout]   --> src/control/content.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn timestamp_of_file(file: &Path) -> Timestamp {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modified_open_cards` is never used
[INFO] [stdout]   --> src/control/content.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn modified_open_cards(folder: &Path, conn: &Connection) -> Vec<Meta> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreateTagHistoryBatch` is never constructed
[INFO] [stdout]   --> src/control/tag.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CreateTagHistoryBatch<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DropLatestTagHistoryBatch` is never constructed
[INFO] [stdout]   --> src/control/tag.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct DropLatestTagHistoryBatch<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `call_once` are never used
[INFO] [stdout]    --> src/control/tag.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl<'a> CreateTagHistoryBatch<'a> {
[INFO] [stdout]     | ---------------------------------- associated items in this implementation
[INFO] [stdout] 147 |     pub fn new(connection: &'a Connection) -> Result<CreateTagHistoryBatch<'a>, &'static str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn call_once(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `call_once` are never used
[INFO] [stdout]    --> src/control/tag.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl<'a> DropLatestTagHistoryBatch<'a> {
[INFO] [stdout]     | -------------------------------------- associated items in this implementation
[INFO] [stdout] 163 |     pub fn new(connection: &'a Connection) -> Result<DropLatestTagHistoryBatch<'a>, &'static str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn call_once(self) -> Result<(), &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/model/blob.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn load(conn: &Connection, sha256: hash::Hash) -> Option<Vec<u8>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cards` is never used
[INFO] [stdout]  --> src/model/carddb.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn cards(conn: &mut Connection) -> Vec<Face> {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_major_card` is never used
[INFO] [stdout]   --> src/model/cardfolder.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn next_major_card(folder: &PathBuf) -> Face {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_cards` is never used
[INFO] [stdout]   --> src/model/cardfolder.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn list_cards(path: &Path) -> Vec<Face> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `latest_batch_id_or_zero`, `insert_tag_to_a_batch_history`, `delete_card_tags_in_a_batch`, and `delete_batch_from_history` are never used
[INFO] [stdout]    --> src/model/tag.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl<'a> TagFeature<'a> {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn latest_batch_id_or_zero(&self) -> Result<usize, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn insert_tag_to_a_batch_history(&self, batch_id: usize, tag_name: &str, major_card_number: usize) -> Result<(), &'static s...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn delete_card_tags_in_a_batch(&self, batch_id: usize) -> Result<(), &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn delete_batch_from_history(&self, batch_id: usize) -> Result<(), &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `A` is never constructed
[INFO] [stdout]  --> src/zkset.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct A {
[INFO] [stdout]   |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_major` is never used
[INFO] [stdout]    --> src/card/face.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl Face {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn is_major(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meta` is never constructed
[INFO] [stdout]  --> src/card/meta.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Meta {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Timestamp` is never constructed
[INFO] [stdout]   --> src/card/meta.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Timestamp { }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rollback` is never used
[INFO] [stdout]  --> src/feature.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Feature {
[INFO] [stdout]   |           ------- method in this trait
[INFO] [stdout] 4 |     fn enable(&self, conn: &mut Connection);
[INFO] [stdout] 5 |     fn rollback(&self, conn: &mut Connection);
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has` is never used
[INFO] [stdout]   --> src/feature.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn has(name: &str, conn: &Connection) -> bool {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_text` and `from_str` are never used
[INFO] [stdout]   --> src/hash.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Hash {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn from_text(slice: &str) -> Hash {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn from_str(slice: &str) -> Hash {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hexcharvalue` is never used
[INFO] [stdout]   --> src/hash.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn hexcharvalue(hi: u8, lo: u8) -> u8 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hexslice` is never used
[INFO] [stdout]    --> src/hash.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn hexslice(slice: &str) -> [u8; Sha256_size] {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     zktag::zktag(timeline_file, &args);
[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] 35 |                     let _ = zktag::zktag(timeline_file, &args);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Sha256_size` should have an upper case name
[INFO] [stdout]  --> src/hash.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const Sha256_size: usize = 32;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 8 - const Sha256_size: usize = 32;
[INFO] [stdout] 8 + const SHA256_SIZE: usize = 32;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/zktag.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         cmd.call_once(());
[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] 41 |         let _ = cmd.call_once(());
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.44s
[INFO] running `Command { std: "docker" "inspect" "78b2abac0b0860ed15520247dcffc04997d75537e2df3acac3fe7d93fe12b739", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "78b2abac0b0860ed15520247dcffc04997d75537e2df3acac3fe7d93fe12b739", kill_on_drop: false }`
[INFO] [stdout] 78b2abac0b0860ed15520247dcffc04997d75537e2df3acac3fe7d93fe12b739
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 71e7a29aa087bf11535ecd08cfdfe7a7acb798b901a594a3757246e368e4e87a
[INFO] running `Command { std: "docker" "start" "-a" "71e7a29aa087bf11535ecd08cfdfe7a7acb798b901a594a3757246e368e4e87a", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-zk v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `params`
[INFO] [stdout]  --> src/control/content.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rusqlite::{Connection, params};
[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: `std::fs`
[INFO] [stdout]  --> src/control/content.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hash`
[INFO] [stdout]   --> src/control/content.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::hash;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `params`
[INFO] [stdout]  --> src/control/tag.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rusqlite::{Connection, params};
[INFO] [stdout]   |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::card::Face`
[INFO] [stdout]  --> src/model/blob.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::card::Face;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/model/schema.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/feature.rs:24:23
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Ok(number) => (number == 1),
[INFO] [stdout]    |                       ^           ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         Ok(number) => (number == 1),
[INFO] [stdout] 24 +         Ok(number) => number == 1 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]   --> src/feature.rs:41:23
[INFO] [stdout]    |
[INFO] [stdout] 41 |         Ok(number) => (number == 1),
[INFO] [stdout]    |                       ^           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 41 -         Ok(number) => (number == 1),
[INFO] [stdout] 41 +         Ok(number) => number == 1 ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/varg.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let mut a1: Vec<String> = vec![];
[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/varg.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut a2: Vec<String> = vec!["--timeline"].iter().map(|s| s.to_string()).collect();
[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/varg.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut a3: Vec<String> = vec!["./timeline.db"].iter().map(|s| s.to_string()).collect();
[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/varg.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut a4: Vec<String> = vec!["first", "--timeline"].iter().map(|s| s.to_string()).collect();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]   --> src/control/content.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn all_timeline_cards(conn: &Connection) -> Vec<Meta> {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `folder`
[INFO] [stdout]   --> src/control/content.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn all_open_cards(folder: &Path) -> Vec<Meta> {
[INFO] [stdout]    |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_folder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/control/content.rs:20:22
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn timestamp_of_file(file: &Path) -> Timestamp {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/control/tag.rs:102:28
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn call_once(self, args: ()) -> Result<(), &'static str> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]   --> src/model/carddb.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 28 |     if let Err(msg) = success {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model/tag.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut stmt = self.connection.prepare(sql);
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeline_file`
[INFO] [stdout]   --> src/zkinit.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn zkinit(timeline_file: &PathBuf, args: &varg::Args) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/card/meta.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn eq(&self, other: &Timestamp) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/card/meta.rs:35:27
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn partial_cmp(&self, other: &Timestamp) -> Option<Ordering> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]  --> src/feature.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn enable_feature(name: &str, conn: &mut Connection, feature: &dyn Feature) {
[INFO] [stdout]   |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/feature.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn has_feature_table(name: &str, conn: &Connection) -> bool {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/feature.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn has(name: &str, conn: &Connection) -> bool {
[INFO] [stdout]    |            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/hash.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn from_str(slice: &str) -> Hash {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hi`
[INFO] [stdout]   --> src/hash.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn hexcharvalue(hi: u8, lo: u8) -> u8 {
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_hi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lo`
[INFO] [stdout]   --> src/hash.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn hexcharvalue(hi: u8, lo: u8) -> u8 {
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_lo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `set`
[INFO] [stdout]   --> src/hash.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let set = b"0123456789abcdef";
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeline`
[INFO] [stdout]   --> src/zktag.rs:88:14
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn zktag(timeline: &PathBuf, args: &Args) -> Result<(), &'static str> {
[INFO] [stdout]    |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_timeline_cards` is never used
[INFO] [stdout]   --> src/control/content.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn all_timeline_cards(conn: &Connection) -> Vec<Meta> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_open_cards` is never used
[INFO] [stdout]   --> src/control/content.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn all_open_cards(folder: &Path) -> Vec<Meta> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `timestamp_of_file` is never used
[INFO] [stdout]   --> src/control/content.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn timestamp_of_file(file: &Path) -> Timestamp {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modified_open_cards` is never used
[INFO] [stdout]   --> src/control/content.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn modified_open_cards(folder: &Path, conn: &Connection) -> Vec<Meta> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreateTagHistoryBatch` is never constructed
[INFO] [stdout]   --> src/control/tag.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CreateTagHistoryBatch<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DropLatestTagHistoryBatch` is never constructed
[INFO] [stdout]   --> src/control/tag.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct DropLatestTagHistoryBatch<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `call_once` are never used
[INFO] [stdout]    --> src/control/tag.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl<'a> CreateTagHistoryBatch<'a> {
[INFO] [stdout]     | ---------------------------------- associated items in this implementation
[INFO] [stdout] 147 |     pub fn new(connection: &'a Connection) -> Result<CreateTagHistoryBatch<'a>, &'static str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn call_once(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `call_once` are never used
[INFO] [stdout]    --> src/control/tag.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl<'a> DropLatestTagHistoryBatch<'a> {
[INFO] [stdout]     | -------------------------------------- associated items in this implementation
[INFO] [stdout] 163 |     pub fn new(connection: &'a Connection) -> Result<DropLatestTagHistoryBatch<'a>, &'static str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn call_once(self) -> Result<(), &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/model/blob.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn load(conn: &Connection, sha256: hash::Hash) -> Option<Vec<u8>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cards` is never used
[INFO] [stdout]  --> src/model/carddb.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn cards(conn: &mut Connection) -> Vec<Face> {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_major_card` is never used
[INFO] [stdout]   --> src/model/cardfolder.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn next_major_card(folder: &PathBuf) -> Face {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_cards` is never used
[INFO] [stdout]   --> src/model/cardfolder.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn list_cards(path: &Path) -> Vec<Face> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `latest_batch_id_or_zero`, `insert_tag_to_a_batch_history`, `delete_card_tags_in_a_batch`, and `delete_batch_from_history` are never used
[INFO] [stdout]    --> src/model/tag.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl<'a> TagFeature<'a> {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn latest_batch_id_or_zero(&self) -> Result<usize, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn insert_tag_to_a_batch_history(&self, batch_id: usize, tag_name: &str, major_card_number: usize) -> Result<(), &'static s...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn delete_card_tags_in_a_batch(&self, batch_id: usize) -> Result<(), &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn delete_batch_from_history(&self, batch_id: usize) -> Result<(), &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `A` is never constructed
[INFO] [stdout]  --> src/zkset.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct A {
[INFO] [stdout]   |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_major` is never used
[INFO] [stdout]    --> src/card/face.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl Face {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn is_major(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meta` is never constructed
[INFO] [stdout]  --> src/card/meta.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Meta {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Timestamp` is never constructed
[INFO] [stdout]   --> src/card/meta.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Timestamp { }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rollback` is never used
[INFO] [stdout]  --> src/feature.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Feature {
[INFO] [stdout]   |           ------- method in this trait
[INFO] [stdout] 4 |     fn enable(&self, conn: &mut Connection);
[INFO] [stdout] 5 |     fn rollback(&self, conn: &mut Connection);
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has` is never used
[INFO] [stdout]   --> src/feature.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn has(name: &str, conn: &Connection) -> bool {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_text` and `from_str` are never used
[INFO] [stdout]   --> src/hash.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Hash {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn from_text(slice: &str) -> Hash {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn from_str(slice: &str) -> Hash {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hexcharvalue` is never used
[INFO] [stdout]   --> src/hash.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn hexcharvalue(hi: u8, lo: u8) -> u8 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hexslice` is never used
[INFO] [stdout]    --> src/hash.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn hexslice(slice: &str) -> [u8; Sha256_size] {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     zktag::zktag(timeline_file, &args);
[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] 35 |                     let _ = zktag::zktag(timeline_file, &args);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Sha256_size` should have an upper case name
[INFO] [stdout]  --> src/hash.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const Sha256_size: usize = 32;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 8 - const Sha256_size: usize = 32;
[INFO] [stdout] 8 + const SHA256_SIZE: usize = 32;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/zktag.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         cmd.call_once(());
[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] 41 |         let _ = cmd.call_once(());
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.97s
[INFO] running `Command { std: "docker" "inspect" "71e7a29aa087bf11535ecd08cfdfe7a7acb798b901a594a3757246e368e4e87a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71e7a29aa087bf11535ecd08cfdfe7a7acb798b901a594a3757246e368e4e87a", kill_on_drop: false }`
[INFO] [stdout] 71e7a29aa087bf11535ecd08cfdfe7a7acb798b901a594a3757246e368e4e87a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ab460cda6b248dec3b8dca4728c74310b6dea2321f527131fcb8d72e7050aa43
[INFO] running `Command { std: "docker" "start" "-a" "ab460cda6b248dec3b8dca4728c74310b6dea2321f527131fcb8d72e7050aa43", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `params`
[INFO] [stderr]  --> src/control/content.rs:4:28
[INFO] [stderr]   |
[INFO] [stderr] 4 | use rusqlite::{Connection, params};
[INFO] [stderr]   |                            ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]  --> src/control/content.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::fs;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::hash`
[INFO] [stderr]   --> src/control/content.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::hash;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `params`
[INFO] [stderr]  --> src/control/tag.rs:1:28
[INFO] [stderr]   |
[INFO] [stderr] 1 | use rusqlite::{Connection, params};
[INFO] [stderr]   |                            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::card::Face`
[INFO] [stderr]  --> src/model/blob.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::card::Face;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashSet`
[INFO] [stderr]  --> src/model/schema.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::collections::HashSet;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around match arm expression
[INFO] [stderr]   --> src/feature.rs:24:23
[INFO] [stderr]    |
[INFO] [stderr] 24 |         Ok(number) => (number == 1),
[INFO] [stderr]    |                       ^           ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 24 -         Ok(number) => (number == 1),
[INFO] [stderr] 24 +         Ok(number) => number == 1 ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around match arm expression
[INFO] [stderr]   --> src/feature.rs:41:23
[INFO] [stderr]    |
[INFO] [stderr] 41 |         Ok(number) => (number == 1),
[INFO] [stderr]    |                       ^           ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 41 -         Ok(number) => (number == 1),
[INFO] [stderr] 41 +         Ok(number) => number == 1 ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/varg.rs:112:13
[INFO] [stderr]     |
[INFO] [stderr] 112 |         let mut a1: Vec<String> = vec![];
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/varg.rs:113:13
[INFO] [stderr]     |
[INFO] [stderr] 113 |         let mut a2: Vec<String> = vec!["--timeline"].iter().map(|s| s.to_string()).collect();
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/varg.rs:114:13
[INFO] [stderr]     |
[INFO] [stderr] 114 |         let mut a3: Vec<String> = vec!["./timeline.db"].iter().map(|s| s.to_string()).collect();
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/varg.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 115 |         let mut a4: Vec<String> = vec!["first", "--timeline"].iter().map(|s| s.to_string()).collect();
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `conn`
[INFO] [stderr]   --> src/control/content.rs:12:23
[INFO] [stderr]    |
[INFO] [stderr] 12 | fn all_timeline_cards(conn: &Connection) -> Vec<Meta> {
[INFO] [stderr]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `folder`
[INFO] [stderr]   --> src/control/content.rs:16:19
[INFO] [stderr]    |
[INFO] [stderr] 16 | fn all_open_cards(folder: &Path) -> Vec<Meta> {
[INFO] [stderr]    |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_folder`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file`
[INFO] [stderr]   --> src/control/content.rs:20:22
[INFO] [stderr]    |
[INFO] [stderr] 20 | fn timestamp_of_file(file: &Path) -> Timestamp {
[INFO] [stderr]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `args`
[INFO] [stderr]    --> src/control/tag.rs:102:28
[INFO] [stderr]     |
[INFO] [stderr] 102 |     pub fn call_once(self, args: ()) -> Result<(), &'static str> {
[INFO] [stderr]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg`
[INFO] [stderr]   --> src/model/carddb.rs:28:16
[INFO] [stderr]    |
[INFO] [stderr] 28 |     if let Err(msg) = success {
[INFO] [stderr]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/model/tag.rs:19:13
[INFO] [stderr]    |
[INFO] [stderr] 19 |         let mut stmt = self.connection.prepare(sql);
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `timeline_file`
[INFO] [stderr]   --> src/zkinit.rs:70:15
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub fn zkinit(timeline_file: &PathBuf, args: &varg::Args) {
[INFO] [stderr]    |               ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline_file`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]   --> src/card/meta.rs:26:18
[INFO] [stderr]    |
[INFO] [stderr] 26 |     fn eq(&self, other: &Timestamp) -> bool {
[INFO] [stderr]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]   --> src/card/meta.rs:35:27
[INFO] [stderr]    |
[INFO] [stderr] 35 |     fn partial_cmp(&self, other: &Timestamp) -> Option<Ordering> {
[INFO] [stderr]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]  --> src/feature.rs:8:23
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn enable_feature(name: &str, conn: &mut Connection, feature: &dyn Feature) {
[INFO] [stderr]   |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> src/feature.rs:12:26
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn has_feature_table(name: &str, conn: &Connection) -> bool {
[INFO] [stderr]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> src/feature.rs:29:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn has(name: &str, conn: &Connection) -> bool {
[INFO] [stderr]    |            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `slice`
[INFO] [stderr]   --> src/hash.rs:65:21
[INFO] [stderr]    |
[INFO] [stderr] 65 |     pub fn from_str(slice: &str) -> Hash {
[INFO] [stderr]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hi`
[INFO] [stderr]   --> src/hash.rs:90:17
[INFO] [stderr]    |
[INFO] [stderr] 90 | fn hexcharvalue(hi: u8, lo: u8) -> u8 {
[INFO] [stderr]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_hi`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `lo`
[INFO] [stderr]   --> src/hash.rs:90:25
[INFO] [stderr]    |
[INFO] [stderr] 90 | fn hexcharvalue(hi: u8, lo: u8) -> u8 {
[INFO] [stderr]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_lo`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `set`
[INFO] [stderr]   --> src/hash.rs:92:9
[INFO] [stderr]    |
[INFO] [stderr] 92 |     let set = b"0123456789abcdef";
[INFO] [stderr]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_set`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `timeline`
[INFO] [stderr]   --> src/zktag.rs:88:14
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub fn zktag(timeline: &PathBuf, args: &Args) -> Result<(), &'static str> {
[INFO] [stderr]    |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline`
[INFO] [stderr] 
[INFO] [stderr] warning: function `all_timeline_cards` is never used
[INFO] [stderr]   --> src/control/content.rs:12:4
[INFO] [stderr]    |
[INFO] [stderr] 12 | fn all_timeline_cards(conn: &Connection) -> Vec<Meta> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `all_open_cards` is never used
[INFO] [stderr]   --> src/control/content.rs:16:4
[INFO] [stderr]    |
[INFO] [stderr] 16 | fn all_open_cards(folder: &Path) -> Vec<Meta> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `timestamp_of_file` is never used
[INFO] [stderr]   --> src/control/content.rs:20:4
[INFO] [stderr]    |
[INFO] [stderr] 20 | fn timestamp_of_file(file: &Path) -> Timestamp {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `modified_open_cards` is never used
[INFO] [stderr]   --> src/control/content.rs:25:4
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn modified_open_cards(folder: &Path, conn: &Connection) -> Vec<Meta> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CreateTagHistoryBatch` is never constructed
[INFO] [stderr]   --> src/control/tag.rs:29:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub struct CreateTagHistoryBatch<'a> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DropLatestTagHistoryBatch` is never constructed
[INFO] [stderr]   --> src/control/tag.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct DropLatestTagHistoryBatch<'a> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `call_once` are never used
[INFO] [stderr]    --> src/control/tag.rs:147:12
[INFO] [stderr]     |
[INFO] [stderr] 146 | impl<'a> CreateTagHistoryBatch<'a> {
[INFO] [stderr]     | ---------------------------------- associated items in this implementation
[INFO] [stderr] 147 |     pub fn new(connection: &'a Connection) -> Result<CreateTagHistoryBatch<'a>, &'static str> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 157 |     pub fn call_once(&self) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `call_once` are never used
[INFO] [stderr]    --> src/control/tag.rs:163:12
[INFO] [stderr]     |
[INFO] [stderr] 162 | impl<'a> DropLatestTagHistoryBatch<'a> {
[INFO] [stderr]     | -------------------------------------- associated items in this implementation
[INFO] [stderr] 163 |     pub fn new(connection: &'a Connection) -> Result<DropLatestTagHistoryBatch<'a>, &'static str> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 172 |     pub fn call_once(self) -> Result<(), &'static str> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load` is never used
[INFO] [stderr]   --> src/model/blob.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub fn load(conn: &Connection, sha256: hash::Hash) -> Option<Vec<u8>> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cards` is never used
[INFO] [stderr]  --> src/model/carddb.rs:6:4
[INFO] [stderr]   |
[INFO] [stderr] 6 | fn cards(conn: &mut Connection) -> Vec<Face> {
[INFO] [stderr]   |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `next_major_card` is never used
[INFO] [stderr]   --> src/model/cardfolder.rs:62:8
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn next_major_card(folder: &PathBuf) -> Face {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `list_cards` is never used
[INFO] [stderr]   --> src/model/cardfolder.rs:87:4
[INFO] [stderr]    |
[INFO] [stderr] 87 | fn list_cards(path: &Path) -> Vec<Face> {
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `latest_batch_id_or_zero`, `insert_tag_to_a_batch_history`, `delete_card_tags_in_a_batch`, and `delete_batch_from_history` are never used
[INFO] [stderr]    --> src/model/tag.rs:158:12
[INFO] [stderr]     |
[INFO] [stderr]   8 | impl<'a> TagFeature<'a> {
[INFO] [stderr]     | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 158 |     pub fn latest_batch_id_or_zero(&self) -> Result<usize, &'static str> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 175 |     pub fn insert_tag_to_a_batch_history(&self, batch_id: usize, tag_name: &str, major_card_number: usize) -> Result<(), &'static s...
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 186 |     pub fn delete_card_tags_in_a_batch(&self, batch_id: usize) -> Result<(), &'static str> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 197 |     pub fn delete_batch_from_history(&self, batch_id: usize) -> Result<(), &'static str> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `A` is never constructed
[INFO] [stderr]  --> src/zkset.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | struct A {
[INFO] [stderr]   |        ^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_major` is never used
[INFO] [stderr]    --> src/card/face.rs:120:12
[INFO] [stderr]     |
[INFO] [stderr]  81 | impl Face {
[INFO] [stderr]     | --------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 120 |     pub fn is_major(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Meta` is never constructed
[INFO] [stderr]  --> src/card/meta.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct Meta {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Timestamp` is never constructed
[INFO] [stderr]   --> src/card/meta.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub struct Timestamp { }
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `rollback` is never used
[INFO] [stderr]  --> src/feature.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub trait Feature {
[INFO] [stderr]   |           ------- method in this trait
[INFO] [stderr] 4 |     fn enable(&self, conn: &mut Connection);
[INFO] [stderr] 5 |     fn rollback(&self, conn: &mut Connection);
[INFO] [stderr]   |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `has` is never used
[INFO] [stderr]   --> src/feature.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn has(name: &str, conn: &Connection) -> bool {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `from_text` and `from_str` are never used
[INFO] [stderr]   --> src/hash.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl Hash {
[INFO] [stderr]    | --------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn from_text(slice: &str) -> Hash {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub fn from_str(slice: &str) -> Hash {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hexcharvalue` is never used
[INFO] [stderr]   --> src/hash.rs:90:4
[INFO] [stderr]    |
[INFO] [stderr] 90 | fn hexcharvalue(hi: u8, lo: u8) -> u8 {
[INFO] [stderr]    |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hexslice` is never used
[INFO] [stderr]    --> src/hash.rs:106:4
[INFO] [stderr]     |
[INFO] [stderr] 106 | fn hexslice(slice: &str) -> [u8; Sha256_size] {
[INFO] [stderr]     |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:35:21
[INFO] [stderr]    |
[INFO] [stderr] 35 |                     zktag::zktag(timeline_file, &args);
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 35 |                     let _ = zktag::zktag(timeline_file, &args);
[INFO] [stderr]    |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: constant `Sha256_size` should have an upper case name
[INFO] [stderr]  --> src/hash.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const Sha256_size: usize = 32;
[INFO] [stderr]   |       ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]   |
[INFO] [stderr] 8 - const Sha256_size: usize = 32;
[INFO] [stderr] 8 + const SHA256_SIZE: usize = 32;
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/zktag.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |         cmd.call_once(());
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 41 |         let _ = cmd.call_once(());
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-zk` (bin "zk" test) generated 54 warnings (run `cargo fix --bin "zk" -p rust-zk --tests` to apply 30 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/zk-acee6b7536424394)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test card::face::test::test_negative ... ok
[INFO] [stdout] test varg::test::test_negative ... ok
[INFO] [stdout] test varg::test1::test_argument_read ... ok
[INFO] [stdout] test varg::test1::test_no_timeline ... ok
[INFO] [stdout] test card::face::test::test_create ... ok
[INFO] [stdout] test varg::test::test_positive1 ... ok
[INFO] [stdout] test card::face::test::test_number ... ok
[INFO] [stdout] test card::face::test::test_location_in ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- card::face::test::test_location_in stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'card::face::test::test_location_in' (26) panicked at src/card/face.rs:230:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: "./foo/bar/123a"
[INFO] [stdout]  right: "./foo/bar/124a"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64191a312c42 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64191a312c42 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::trace_unsynchronized::<std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64191a312c42 - std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64191a312c42 - <<std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[585f66e14d78f9ba]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64191a3275aa - <core[585f66e14d78f9ba]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64191a3275aa - core[585f66e14d78f9ba]::fmt::write
[INFO] [stdout]    6:     0x64191a317af6 - std[3f03f8b59f91bef1]::io::default_write_fmt::<alloc[15e7b27aba85d2e2]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x64191a317af6 - <alloc[15e7b27aba85d2e2]::vec::Vec<u8> as std[3f03f8b59f91bef1]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x64191a2f13af - <std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64191a2f13af - std[3f03f8b59f91bef1]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64191a30af79 - std[3f03f8b59f91bef1]::panicking::default_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64191a2a401e - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x64191a2a401e - test[30224e0cb089acd2]::test_main_with_exit_callback::<test[30224e0cb089acd2]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x64191a30b132 - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x64191a30b132 - std[3f03f8b59f91bef1]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64191a2f1468 - std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64191a2e6629 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_end_short_backtrace::<std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64191a2f22bd - __rustc[caa99d26c7bae192]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64191a327cbc - core[585f66e14d78f9ba]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64191a327b73 - core[585f66e14d78f9ba]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x64191a2948e3 - core[585f66e14d78f9ba]::panicking::assert_failed::<std[3f03f8b59f91bef1]::path::PathBuf, std[3f03f8b59f91bef1]::path::PathBuf>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x64191a2930f5 - zk[743111b115fc21f]::card::face::test::test_location_in
[INFO] [stdout]                                at /opt/rustwide/workdir/src/card/face.rs:230:9
[INFO] [stdout]   22:     0x64191a28fcc7 - zk[743111b115fc21f]::card::face::test::test_location_in::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/card/face.rs:227:26
[INFO] [stdout]   23:     0x64191a298326 - <zk[743111b115fc21f]::card::face::test::test_location_in::{closure#0} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x64191a2983cb - <fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x64191a2983cb - test[30224e0cb089acd2]::__rust_begin_short_backtrace::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x64191a2a4c2a - test[30224e0cb089acd2]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x64191a2a4c2a - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x64191a2a4c2a - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x64191a2a4c2a - std[3f03f8b59f91bef1]::panicking::catch_unwind::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x64191a2a4c2a - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x64191a2a4c2a - test[30224e0cb089acd2]::run_test_in_process
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x64191a2a4c2a - test[30224e0cb089acd2]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x64191a29f0f4 - test[30224e0cb089acd2]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x64191a29f0f4 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_begin_short_backtrace::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x64191a2a7722 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x64191a2a7722 - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x64191a2a7722 - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x64191a2a7722 - std[3f03f8b59f91bef1]::panicking::catch_unwind::<(), core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x64191a2a7722 - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x64191a2a7722 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x64191a2a7722 - <std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x64191a3124ef - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn core[585f66e14d78f9ba]::ops::function::FnOnce<(), Output = ()> + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x64191a3124ef - <std[3f03f8b59f91bef1]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x781764e8faa4 - <unknown>
[INFO] [stdout]   45:     0x781764f1ca64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     card::face::test::test_location_in
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin zk`
[INFO] running `Command { std: "docker" "inspect" "ab460cda6b248dec3b8dca4728c74310b6dea2321f527131fcb8d72e7050aa43", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab460cda6b248dec3b8dca4728c74310b6dea2321f527131fcb8d72e7050aa43", kill_on_drop: false }`
[INFO] [stdout] ab460cda6b248dec3b8dca4728c74310b6dea2321f527131fcb8d72e7050aa43
