[INFO] cloning repository https://github.com/pfif/cho
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pfif/cho" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpfif%2Fcho", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpfif%2Fcho'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2abbe86836f09f1ebf2991db06f502d3d4fe5850
[INFO] checking pfif/cho against 8006091eb71ae7d9e9bccb66c6122c9d68af4466 for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpfif%2Fcho" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pfif/cho
[INFO] finished tweaking git repo https://github.com/pfif/cho
[INFO] tweaked toml for git repo https://github.com/pfif/cho written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pfif/cho on toolchain 8006091eb71ae7d9e9bccb66c6122c9d68af4466
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8006091eb71ae7d9e9bccb66c6122c9d68af4466" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pfif/cho 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" "+8006091eb71ae7d9e9bccb66c6122c9d68af4466" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded mockall v0.11.4
[INFO] [stderr]   Downloaded mockall_double v0.3.1
[INFO] [stderr]   Downloaded predicates v2.1.5
[INFO] [stderr]   Downloaded mockall_derive v0.11.4
[INFO] [stderr]   Downloaded comfy-table v7.2.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 02d4a2f3c7ba3b143bbb7823138d170d2af2fbd45ac53adbadb4775ff3250e6f
[INFO] running `Command { std: "docker" "start" "02d4a2f3c7ba3b143bbb7823138d170d2af2fbd45ac53adbadb4775ff3250e6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "02d4a2f3c7ba3b143bbb7823138d170d2af2fbd45ac53adbadb4775ff3250e6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "02d4a2f3c7ba3b143bbb7823138d170d2af2fbd45ac53adbadb4775ff3250e6f" "/opt/rustwide/cargo-home/bin/cargo" "+8006091eb71ae7d9e9bccb66c6122c9d68af4466" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "02d4a2f3c7ba3b143bbb7823138d170d2af2fbd45ac53adbadb4775ff3250e6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "02d4a2f3c7ba3b143bbb7823138d170d2af2fbd45ac53adbadb4775ff3250e6f" "/opt/rustwide/cargo-home/bin/cargo" "+8006091eb71ae7d9e9bccb66c6122c9d68af4466" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking zerocopy v0.8.52
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]    Compiling rust_decimal v1.42.1
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling cho v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking fragile v2.1.0
[INFO] [stderr]    Compiling rust_decimal_macros v1.40.0
[INFO] [stderr]    Compiling mockall_double v0.3.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking comfy-table v7.2.2
[INFO] [stderr]     Checking regex v1.12.4
[INFO] [stderr]     Checking predicates v2.1.5
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]    Compiling mockall_derive v0.11.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stdout] warning: unused import: `Vault`
[INFO] [stdout]  --> src/cli/mod.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::vault::{Vault, VaultImpl, VaultReadable};
[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: `serde::Deserialize`
[INFO] [stdout]  --> src/cli/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/cli/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `derive_builder::Builder`
[INFO] [stdout]  --> src/ignored_transaction.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use derive_builder::Builder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/period/interface.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{Datelike, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/vault.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/vault.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TempDir` and `tempdir`
[INFO] [stdout]  --> src/vault.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tempfile::{tempdir, TempDir};
[INFO] [stdout]   |                ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]   --> src/remaining_operation/core_types.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::Add;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `derive_builder::Builder`
[INFO] [stdout]  --> src/predicted_income.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use derive_builder::Builder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Add`
[INFO] [stdout]  --> src/buckets/aggregated_amounts.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Add, Sub};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RawAmount`
[INFO] [stdout]    --> src/buckets/aggregated_amounts.rs:105:26
[INFO] [stdout]     |
[INFO] [stdout] 105 |     use crate::amounts::{RawAmount};
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/buckets/aggregated_amounts.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IllustrationValue`
[INFO] [stdout]   --> src/buckets/mod.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 |     GroupBuilder, IllustrationValue, Operand, OperandBuilder,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/buckets/mod.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 (target_amount - aggregated_amounts_before_period.deposited()),
[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] 242 -                 (target_amount - aggregated_amounts_before_period.deposited()),
[INFO] [stdout] 242 +                 target_amount - aggregated_amounts_before_period.deposited(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DivAssign`
[INFO] [stdout]  --> src/amounts.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::{Add, Div, DivAssign, Sub};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::Decimal`
[INFO] [stdout]   --> src/amounts.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     use rust_decimal::Decimal;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PeriodsConfiguration`
[INFO] [stdout]  --> src/chrono_stack.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::period::{Period, PeriodsConfiguration};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clap::builder::Str`
[INFO] [stdout]  --> src/chrono_stack.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use clap::builder::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/chrono_stack.rs:42:33
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 position(|item| (item.0 >= period.start_date)).
[INFO] [stdout]    |                                 ^                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 42 -                 position(|item| (item.0 >= period.start_date)).
[INFO] [stdout] 42 +                 position(|item| item.0 >= period.start_date).
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::amounts::exchange_rates::ExchangeRates`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::amounts::exchange_rates::ExchangeRates;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::amounts::RawAmount`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::amounts::RawAmount;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CalendarMonthPeriodConfiguration`, `Period`, and `PeriodsConfiguration`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::period::{CalendarMonthPeriodConfiguration, Period, PeriodsConfiguration};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GroupBuilder` and `OperandBuilder`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::remaining_operation::core_types::{GroupBuilder, OperandBuilder};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDate`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::NaiveDate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Visitor`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::de::{Error, Visitor};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Deserializer`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Deserializer};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserializer`
[INFO] [stdout]  --> src/predicted_transaction/template/mod.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Deserializer};
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Visitor`
[INFO] [stdout]  --> src/predicted_transaction/template/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::de::{Error, Visitor};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `formatter`
[INFO] [stdout]    --> src/period/interface.rs:108:33
[INFO] [stdout]     |
[INFO] [stdout] 108 |             fn expecting(&self, formatter: &mut Formatter) -> std::fmt::Result {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_formatter`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Action` is more private than the item `AggregatedAmounts::apply`
[INFO] [stdout]    --> src/buckets/aggregated_amounts.rs:31:5
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn apply(&mut self, action: &Action) -> Result<(), String> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `AggregatedAmounts::apply` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Action` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/buckets/mod.rs:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | enum Action {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/accounts.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub trait QueriableAccount {
[INFO] [stdout]    |           ---------------- method in this trait
[INFO] [stdout] 34 |     fn amount_at(&self, date: &NaiveDate) -> Result<FoundAmount, String>;
[INFO] [stdout] 35 |     fn name(&self) -> &String;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `operands` are never used
[INFO] [stdout]    --> src/remaining_operation/core_types.rs:227:16
[INFO] [stdout]     |
[INFO] [stdout] 170 |     impl Group {
[INFO] [stdout]     |     ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 227 |         pub fn name(&self) -> &String {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |         pub fn operands(&self) -> &Vec<Operand> {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Predicted` is never constructed
[INFO] [stdout]  --> src/remaining_operation/operand_builders_helpers/timeline.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum TimelineOperandEnd {
[INFO] [stdout]   |          ------------------ variant in this enum
[INFO] [stdout] 6 |     Current(Amount),
[INFO] [stdout] 7 |     Predicted(Amount),
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking mockall v0.11.4
[INFO] [stdout] warning: unused import: `Vault`
[INFO] [stdout]  --> src/cli/mod.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::vault::{Vault, VaultImpl, VaultReadable};
[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: `serde::Deserialize`
[INFO] [stdout]  --> src/cli/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/cli/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/period/interface.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{Datelike, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]   --> src/remaining_operation/core_types.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::Add;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Add`
[INFO] [stdout]  --> src/buckets/aggregated_amounts.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Add, Sub};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/buckets/aggregated_amounts.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         ;
[INFO] [stdout]     |         ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/buckets/mod.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 (target_amount - aggregated_amounts_before_period.deposited()),
[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] 242 -                 (target_amount - aggregated_amounts_before_period.deposited()),
[INFO] [stdout] 242 +                 target_amount - aggregated_amounts_before_period.deposited(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/buckets/mod.rs:965:29
[INFO] [stdout]     |
[INFO] [stdout] 965 | ...                   (|ex| BucketAtDate {
[INFO] [stdout]     |                       ^
[INFO] [stdout] ...
[INFO] [stdout] 973 | ...                   }),
[INFO] [stdout]     |                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 965 ~                             |ex| BucketAtDate {
[INFO] [stdout] 966 |                                 recommended_or_actual_change: ex.yen("25000"),
[INFO] [stdout] ...
[INFO] [stdout] 972 |                                 total: ex.yen("25000"),
[INFO] [stdout] 973 ~                             },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/buckets/mod.rs:1416:29
[INFO] [stdout]      |
[INFO] [stdout] 1416 | ...                   (|ex| BucketAtDate {
[INFO] [stdout]      |                       ^
[INFO] [stdout] ...
[INFO] [stdout] 1424 | ...                   }),
[INFO] [stdout]      |                        ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1416 ~                             |ex| BucketAtDate {
[INFO] [stdout] 1417 |                                 recommended_or_actual_change: ex.yen("20000"),
[INFO] [stdout]  ...
[INFO] [stdout] 1423 |                                 total: ex.yen("20000"),
[INFO] [stdout] 1424 ~                             },
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/buckets/mod.rs:1839:29
[INFO] [stdout]      |
[INFO] [stdout] 1839 | ...                   (|ex| BucketAtDate {
[INFO] [stdout]      |                       ^
[INFO] [stdout] ...
[INFO] [stdout] 1847 | ...                   }),
[INFO] [stdout]      |                        ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1839 ~                             |ex| BucketAtDate {
[INFO] [stdout] 1840 |                                 recommended_or_actual_change: ex.yen("20000"),
[INFO] [stdout]  ...
[INFO] [stdout] 1846 |                                 total: ex.yen("20000"),
[INFO] [stdout] 1847 ~                             },
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DivAssign`
[INFO] [stdout]  --> src/amounts.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::{Add, Div, DivAssign, Sub};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PeriodsConfiguration`
[INFO] [stdout]  --> src/chrono_stack.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::period::{Period, PeriodsConfiguration};
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clap::builder::Str`
[INFO] [stdout]  --> src/chrono_stack.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use clap::builder::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/chrono_stack.rs:42:33
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 position(|item| (item.0 >= period.start_date)).
[INFO] [stdout]    |                                 ^                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 42 -                 position(|item| (item.0 >= period.start_date)).
[INFO] [stdout] 42 +                 position(|item| item.0 >= period.start_date).
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CalendarMonthPeriodConfiguration`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::period::{CalendarMonthPeriodConfiguration, Period, PeriodsConfiguration};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GroupBuilder` and `OperandBuilder`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::remaining_operation::core_types::{GroupBuilder, OperandBuilder};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Visitor`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::de::{Error, Visitor};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Deserializer`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Deserializer};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/predicted_transaction/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserializer`
[INFO] [stdout]  --> src/predicted_transaction/template/mod.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Deserialize, Deserializer};
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Visitor`
[INFO] [stdout]  --> src/predicted_transaction/template/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::de::{Error, Visitor};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/predicted_transaction/template/mod.rs:381:10
[INFO] [stdout]     |
[INFO] [stdout] 381 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GroupBuilder`
[INFO] [stdout]    --> src/remaining_operation/core_types.rs:698:13
[INFO] [stdout]     |
[INFO] [stdout] 698 |             GroupBuilder, OperandBuilder, RemainingOperation, RemainingOperationScreenGroup,
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OperandBuilder`
[INFO] [stdout]    --> src/remaining_operation/core_types.rs:698:27
[INFO] [stdout]     |
[INFO] [stdout] 698 |             GroupBuilder, OperandBuilder, RemainingOperation, RemainingOperationScreenGroup,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `date`
[INFO] [stdout]   --> src/cli/tests.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let date = NaiveDate::from_ymd_opt(2026,5, 9).expect("Can create date");
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/period/calendar_month_period.rs:496:17
[INFO] [stdout]     |
[INFO] [stdout] 496 |             let config = CalendarMonthPeriodConfiguration {};
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/period/calendar_month_period.rs:617:17
[INFO] [stdout]     |
[INFO] [stdout] 617 |             let config = CalendarMonthPeriodConfiguration {};
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `CalendarMonthPeriodConfiguration`
[INFO] [stdout]   --> src/period/interface.rs:72:17
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 CalendarMonthPeriodConfiguration => {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_CalendarMonthPeriodConfiguration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `formatter`
[INFO] [stdout]    --> src/period/interface.rs:108:33
[INFO] [stdout]     |
[INFO] [stdout] 108 |             fn expecting(&self, formatter: &mut Formatter) -> std::fmt::Result {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_formatter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/buckets/mod.rs:338:17
[INFO] [stdout]     |
[INFO] [stdout] 338 |                 mut self,
[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/buckets/mod.rs:349:79
[INFO] [stdout]     |
[INFO] [stdout] 349 |             pub fn target_set_last_period_one_hundred_thousand_in_five_months(mut self) -> Self {
[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/buckets/mod.rs:359:80
[INFO] [stdout]     |
[INFO] [stdout] 359 |             pub fn target_set_many_periods_ago_twelve_hundred_in_twelve_months(mut self) -> Self {
[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/buckets/mod.rs:383:81
[INFO] [stdout]     |
[INFO] [stdout] 383 |             pub fn expect_bucket_no_commits_one_hundred_thousand_in_four_months(mut self) -> Self {
[INFO] [stdout]     |                                                                                 ----^^^^
[INFO] [stdout]     |                                                                                 |
[INFO] [stdout]     |                                                                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `periods_configuration`
[INFO] [stdout]    --> src/predicted_transaction/template/mod.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let periods_configuration = CalendarMonthPeriodConfiguration {};
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_periods_configuration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `buckets::Action` is more private than the item `aggregated_amounts::AggregatedAmounts::apply`
[INFO] [stdout]    --> src/buckets/aggregated_amounts.rs:31:5
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn apply(&mut self, action: &Action) -> Result<(), String> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `aggregated_amounts::AggregatedAmounts::apply` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `buckets::Action` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/buckets/mod.rs:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | enum Action {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/accounts.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub trait QueriableAccount {
[INFO] [stdout]    |           ---------------- method in this trait
[INFO] [stdout] 34 |     fn amount_at(&self, date: &NaiveDate) -> Result<FoundAmount, String>;
[INFO] [stdout] 35 |     fn name(&self) -> &String;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tes` is never constructed
[INFO] [stdout]    --> src/period/calendar_month_period.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 |     struct Tes {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `operands` are never used
[INFO] [stdout]    --> src/remaining_operation/core_types.rs:227:16
[INFO] [stdout]     |
[INFO] [stdout] 170 |     impl Group {
[INFO] [stdout]     |     ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 227 |         pub fn name(&self) -> &String {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |         pub fn operands(&self) -> &Vec<Operand> {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Predicted` is never constructed
[INFO] [stdout]  --> src/remaining_operation/operand_builders_helpers/timeline.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum TimelineOperandEnd {
[INFO] [stdout]   |          ------------------ variant in this enum
[INFO] [stdout] 6 |     Current(Amount),
[INFO] [stdout] 7 |     Predicted(Amount),
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `CalendarMonthPeriodConfiguration` should have a snake case name
[INFO] [stdout]   --> src/period/interface.rs:72:17
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 CalendarMonthPeriodConfiguration => {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `calendar_month_period_configuration`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `mockall_double`
[INFO] [stderr]  --> Cargo.toml:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | mockall_double = "0.3.0"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `mockall_double`
[INFO] [stderr] warning: unused dependency `rand`
[INFO] [stderr]  --> Cargo.toml:5:1
[INFO] [stderr]   |
[INFO] [stderr] 5 | rand = "0.8.5"
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `rand`
[INFO] [stderr] warning: `cho` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.88s
[INFO] running `Command { std: "docker" "inspect" "02d4a2f3c7ba3b143bbb7823138d170d2af2fbd45ac53adbadb4775ff3250e6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "02d4a2f3c7ba3b143bbb7823138d170d2af2fbd45ac53adbadb4775ff3250e6f", kill_on_drop: false }`
[INFO] [stdout] 02d4a2f3c7ba3b143bbb7823138d170d2af2fbd45ac53adbadb4775ff3250e6f
