[INFO] fetching crate triforge 0.2.0...
[INFO] testing triforge-0.2.0 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate triforge 0.2.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate triforge 0.2.0
[INFO] finished tweaking crates.io crate triforge 0.2.0
[INFO] tweaked toml for crates.io crate triforge 0.2.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate triforge 0.2.0 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate triforge 0.2.0 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 20cc37fd650523db24e157301a296b13f9bb04dd1900742d3b63dcea72ba793c
[INFO] running `Command { std: "docker" "start" "-a" "20cc37fd650523db24e157301a296b13f9bb04dd1900742d3b63dcea72ba793c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "20cc37fd650523db24e157301a296b13f9bb04dd1900742d3b63dcea72ba793c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20cc37fd650523db24e157301a296b13f9bb04dd1900742d3b63dcea72ba793c", kill_on_drop: false }`
[INFO] [stdout] 20cc37fd650523db24e157301a296b13f9bb04dd1900742d3b63dcea72ba793c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] aac04cef514058b90179c070325207fd9198cb42ce1b02938e097a53dfca8d08
[INFO] running `Command { std: "docker" "start" "-a" "aac04cef514058b90179c070325207fd9198cb42ce1b02938e097a53dfca8d08", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling find-msvc-tools v0.1.4
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling openssl v0.10.74
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling iri-string v0.7.9
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling rustls-pki-types v1.13.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling cc v1.2.44
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling rtoolbox v0.0.3
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling clap_builder v4.5.51
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling rpassword v7.4.0
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling flate2 v1.1.5
[INFO] [stderr]    Compiling openssl-sys v0.9.110
[INFO] [stderr]    Compiling libz-sys v1.1.22
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libgit2-sys v0.16.2+1.7.2
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling clap v4.5.51
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling git2 v0.18.3
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling hyper-util v0.1.17
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.24
[INFO] [stderr]    Compiling triforge v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]  --> src/commands/commit.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::BTreeMap;
[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: `PathBuf`
[INFO] [stdout]  --> src/native_git/objects.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::tree::TreeBuilder`
[INFO] [stdout]  --> src/native_git/repository.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::tree::TreeBuilder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::commit::CommitBuilder`
[INFO] [stdout]   --> src/native_git/repository.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::commit::CommitBuilder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/native_git/hash.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `refs::Refs`
[INFO] [stdout]   --> src/native_git/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use refs::Refs;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all`
[INFO] [stdout]  --> src/commands/commit.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn execute(message: &str, all: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                               ^^^ help: if this is intentional, prefix it with an underscore: `_all`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/commands/log.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     for i in 0..limit {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]  --> src/commands/diff.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(from: Option<String>, to: Option<String>, name_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]  --> src/commands/diff.rs:4:38
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(from: Option<String>, to: Option<String>, name_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name_only`
[INFO] [stdout]  --> src/commands/diff.rs:4:58
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(from: Option<String>, to: Option<String>, name_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_name_only`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `branch`
[INFO] [stdout]  --> src/commands/merge.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(branch: &str, ff_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ff_only`
[INFO] [stdout]  --> src/commands/merge.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(branch: &str, ff_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ff_only`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix`
[INFO] [stdout]  --> src/commands/verify.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(fix: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                ^^^ help: if this is intentional, prefix it with an underscore: `_fix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/native_git/commit.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mut lines = content.lines();
[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: field `count` is never read
[INFO] [stdout]   --> src/api.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct ListObjectsResponse {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 39 |     pub objects: Vec<String>,
[INFO] [stdout] 40 |     pub count: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ListObjectsResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/api.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct UserInfo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 66 |     pub id: i64,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadObjectResponse` is never constructed
[INFO] [stdout]   --> src/api.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct UploadObjectResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]    --> src/api.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct ForkResponse {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 111 |     pub forked_hash: String,
[INFO] [stdout] 112 |     pub message: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ForkResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add` is never used
[INFO] [stdout]  --> src/commands/tag.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub async fn add(hash: &str, tags: Vec<String>) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list` is never used
[INFO] [stdout]   --> src/commands/tag.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub async fn list(hash: Option<String>) -> anyhow::Result<()> {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search` is never used
[INFO] [stdout]   --> src/commands/tag.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub async fn search(tag: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TriforgeError` is never used
[INFO] [stdout]  --> src/errors.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum TriforgeError {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_repo` is never used
[INFO] [stdout]   --> src/git.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn init_repo() -> Result<Repository> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open` is never used
[INFO] [stdout]   --> src/native_git/mod.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn open<P: AsRef<Path>>(path: P) -> Result<Repository> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `add_tree`, `add_executable`, and `parse` are never used
[INFO] [stdout]   --> src/native_git/tree.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl TreeBuilder {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn add_tree(&mut self, name: String, hash: String) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn add_executable(&mut self, name: String, hash: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn parse(obj: &GitObject) -> Result<Vec<TreeEntry>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `author` and `committer` are never used
[INFO] [stdout]   --> src/native_git/commit.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl CommitBuilder {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn author(mut self, author: String) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn committer(mut self, committer: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tree` is never read
[INFO] [stdout]    --> src/native_git/commit.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ParsedCommit {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 110 |     pub tree: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_hash` is never used
[INFO] [stdout]   --> src/native_git/hash.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn verify_hash(data: &[u8], expected: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/git.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_head_commit(repo: &Repository) -> Result<git2::Commit> {
[INFO] [stdout]    |                              ^^^^^^^^^^^            ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_head_commit(repo: &Repository) -> Result<git2::Commit<'_>> {
[INFO] [stdout]    |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s
[INFO] running `Command { std: "docker" "inspect" "aac04cef514058b90179c070325207fd9198cb42ce1b02938e097a53dfca8d08", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aac04cef514058b90179c070325207fd9198cb42ce1b02938e097a53dfca8d08", kill_on_drop: false }`
[INFO] [stdout] aac04cef514058b90179c070325207fd9198cb42ce1b02938e097a53dfca8d08
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 307083c7233138f38ff202ccedb44af1e701e59d6be4994f6bac0008fb9199aa
[INFO] running `Command { std: "docker" "start" "-a" "307083c7233138f38ff202ccedb44af1e701e59d6be4994f6bac0008fb9199aa", kill_on_drop: false }`
[INFO] [stderr]    Compiling triforge v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]  --> src/commands/commit.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::BTreeMap;
[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: `PathBuf`
[INFO] [stdout]  --> src/native_git/objects.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::tree::TreeBuilder`
[INFO] [stdout]  --> src/native_git/repository.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::tree::TreeBuilder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::commit::CommitBuilder`
[INFO] [stdout]   --> src/native_git/repository.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::commit::CommitBuilder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/native_git/hash.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `refs::Refs`
[INFO] [stdout]   --> src/native_git/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use refs::Refs;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all`
[INFO] [stdout]  --> src/commands/commit.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn execute(message: &str, all: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                               ^^^ help: if this is intentional, prefix it with an underscore: `_all`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/commands/log.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     for i in 0..limit {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]  --> src/commands/diff.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(from: Option<String>, to: Option<String>, name_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]  --> src/commands/diff.rs:4:38
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(from: Option<String>, to: Option<String>, name_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name_only`
[INFO] [stdout]  --> src/commands/diff.rs:4:58
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(from: Option<String>, to: Option<String>, name_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_name_only`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `branch`
[INFO] [stdout]  --> src/commands/merge.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(branch: &str, ff_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ff_only`
[INFO] [stdout]  --> src/commands/merge.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(branch: &str, ff_only: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ff_only`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix`
[INFO] [stdout]  --> src/commands/verify.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn execute(fix: bool) -> anyhow::Result<()> {
[INFO] [stdout]   |                ^^^ help: if this is intentional, prefix it with an underscore: `_fix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/native_git/commit.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mut lines = content.lines();
[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: field `count` is never read
[INFO] [stdout]   --> src/api.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct ListObjectsResponse {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 39 |     pub objects: Vec<String>,
[INFO] [stdout] 40 |     pub count: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ListObjectsResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/api.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct UserInfo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 66 |     pub id: i64,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadObjectResponse` is never constructed
[INFO] [stdout]   --> src/api.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct UploadObjectResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]    --> src/api.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct ForkResponse {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 111 |     pub forked_hash: String,
[INFO] [stdout] 112 |     pub message: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ForkResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add` is never used
[INFO] [stdout]  --> src/commands/tag.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub async fn add(hash: &str, tags: Vec<String>) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list` is never used
[INFO] [stdout]   --> src/commands/tag.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub async fn list(hash: Option<String>) -> anyhow::Result<()> {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search` is never used
[INFO] [stdout]   --> src/commands/tag.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub async fn search(tag: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TriforgeError` is never used
[INFO] [stdout]  --> src/errors.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum TriforgeError {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_repo` is never used
[INFO] [stdout]   --> src/git.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn init_repo() -> Result<Repository> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open` is never used
[INFO] [stdout]   --> src/native_git/mod.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn open<P: AsRef<Path>>(path: P) -> Result<Repository> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `add_tree`, `add_executable`, and `parse` are never used
[INFO] [stdout]   --> src/native_git/tree.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl TreeBuilder {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn add_tree(&mut self, name: String, hash: String) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn add_executable(&mut self, name: String, hash: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn parse(obj: &GitObject) -> Result<Vec<TreeEntry>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `author` and `committer` are never used
[INFO] [stdout]   --> src/native_git/commit.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl CommitBuilder {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn author(mut self, author: String) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn committer(mut self, committer: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tree` is never read
[INFO] [stdout]    --> src/native_git/commit.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ParsedCommit {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 110 |     pub tree: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_hash` is never used
[INFO] [stdout]   --> src/native_git/hash.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn verify_hash(data: &[u8], expected: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/git.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_head_commit(repo: &Repository) -> Result<git2::Commit> {
[INFO] [stdout]    |                              ^^^^^^^^^^^            ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_head_commit(repo: &Repository) -> Result<git2::Commit<'_>> {
[INFO] [stdout]    |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.54s
[INFO] running `Command { std: "docker" "inspect" "307083c7233138f38ff202ccedb44af1e701e59d6be4994f6bac0008fb9199aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "307083c7233138f38ff202ccedb44af1e701e59d6be4994f6bac0008fb9199aa", kill_on_drop: false }`
[INFO] [stdout] 307083c7233138f38ff202ccedb44af1e701e59d6be4994f6bac0008fb9199aa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 47c836da94ad789be1a1ae46e363e8172f13d31442e3221b544de2e38e98a033
[INFO] running `Command { std: "docker" "start" "-a" "47c836da94ad789be1a1ae46e363e8172f13d31442e3221b544de2e38e98a033", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::collections::BTreeMap`
[INFO] [stderr]  --> src/commands/commit.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::collections::BTreeMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `PathBuf`
[INFO] [stderr]  --> src/native_git/objects.rs:3:23
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::path::{Path, PathBuf};
[INFO] [stderr]   |                       ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::tree::TreeBuilder`
[INFO] [stderr]  --> src/native_git/repository.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use super::tree::TreeBuilder;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::commit::CommitBuilder`
[INFO] [stderr]   --> src/native_git/repository.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use super::commit::CommitBuilder;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `anyhow::Result`
[INFO] [stderr]  --> src/native_git/hash.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use anyhow::Result;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `refs::Refs`
[INFO] [stderr]   --> src/native_git/mod.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub use refs::Refs;
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `all`
[INFO] [stderr]  --> src/commands/commit.rs:7:31
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn execute(message: &str, all: bool) -> anyhow::Result<()> {
[INFO] [stderr]   |                               ^^^ help: if this is intentional, prefix it with an underscore: `_all`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/commands/log.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |     for i in 0..limit {
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `from`
[INFO] [stderr]  --> src/commands/diff.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn execute(from: Option<String>, to: Option<String>, name_only: bool) -> anyhow::Result<()> {
[INFO] [stderr]   |                ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `to`
[INFO] [stderr]  --> src/commands/diff.rs:4:38
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn execute(from: Option<String>, to: Option<String>, name_only: bool) -> anyhow::Result<()> {
[INFO] [stderr]   |                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name_only`
[INFO] [stderr]  --> src/commands/diff.rs:4:58
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn execute(from: Option<String>, to: Option<String>, name_only: bool) -> anyhow::Result<()> {
[INFO] [stderr]   |                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_name_only`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `branch`
[INFO] [stderr]  --> src/commands/merge.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn execute(branch: &str, ff_only: bool) -> anyhow::Result<()> {
[INFO] [stderr]   |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ff_only`
[INFO] [stderr]  --> src/commands/merge.rs:4:30
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn execute(branch: &str, ff_only: bool) -> anyhow::Result<()> {
[INFO] [stderr]   |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ff_only`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fix`
[INFO] [stderr]  --> src/commands/verify.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn execute(fix: bool) -> anyhow::Result<()> {
[INFO] [stderr]   |                ^^^ help: if this is intentional, prefix it with an underscore: `_fix`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/native_git/commit.rs:74:13
[INFO] [stderr]    |
[INFO] [stderr] 74 |         let mut lines = content.lines();
[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: field `count` is never read
[INFO] [stderr]   --> src/api.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub struct ListObjectsResponse {
[INFO] [stderr]    |            ------------------- field in this struct
[INFO] [stderr] 39 |     pub objects: Vec<String>,
[INFO] [stderr] 40 |     pub count: usize,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ListObjectsResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `id` is never read
[INFO] [stderr]   --> src/api.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 65 | pub struct UserInfo {
[INFO] [stderr]    |            -------- field in this struct
[INFO] [stderr] 66 |     pub id: i64,
[INFO] [stderr]    |         ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `UserInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UploadObjectResponse` is never constructed
[INFO] [stderr]   --> src/api.rs:81:12
[INFO] [stderr]    |
[INFO] [stderr] 81 | pub struct UploadObjectResponse {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `message` is never read
[INFO] [stderr]    --> src/api.rs:112:9
[INFO] [stderr]     |
[INFO] [stderr] 110 | pub struct ForkResponse {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] 111 |     pub forked_hash: String,
[INFO] [stderr] 112 |     pub message: String,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ForkResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `add` is never used
[INFO] [stderr]  --> src/commands/tag.rs:5:14
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub async fn add(hash: &str, tags: Vec<String>) -> anyhow::Result<()> {
[INFO] [stderr]   |              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `list` is never used
[INFO] [stderr]   --> src/commands/tag.rs:21:14
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub async fn list(hash: Option<String>) -> anyhow::Result<()> {
[INFO] [stderr]    |              ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `search` is never used
[INFO] [stderr]   --> src/commands/tag.rs:54:14
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub async fn search(tag: &str) -> anyhow::Result<()> {
[INFO] [stderr]    |              ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `TriforgeError` is never used
[INFO] [stderr]  --> src/errors.rs:5:10
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum TriforgeError {
[INFO] [stderr]   |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `init_repo` is never used
[INFO] [stderr]   --> src/git.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn init_repo() -> Result<Repository> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `open` is never used
[INFO] [stderr]   --> src/native_git/mod.rs:25:8
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub fn open<P: AsRef<Path>>(path: P) -> Result<Repository> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `add_tree`, `add_executable`, and `parse` are never used
[INFO] [stderr]   --> src/native_git/tree.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl TreeBuilder {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn add_tree(&mut self, name: String, hash: String) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn add_executable(&mut self, name: String, hash: String) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     pub fn parse(obj: &GitObject) -> Result<Vec<TreeEntry>> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `author` and `committer` are never used
[INFO] [stderr]   --> src/native_git/commit.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl CommitBuilder {
[INFO] [stderr]    | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub fn author(mut self, author: String) -> Self {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn committer(mut self, committer: String) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `tree` is never read
[INFO] [stderr]    --> src/native_git/commit.rs:110:9
[INFO] [stderr]     |
[INFO] [stderr] 109 | pub struct ParsedCommit {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] 110 |     pub tree: String,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ParsedCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `verify_hash` is never used
[INFO] [stderr]   --> src/native_git/hash.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn verify_hash(data: &[u8], expected: &str) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/git.rs:47:30
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub fn get_head_commit(repo: &Repository) -> Result<git2::Commit> {
[INFO] [stderr]    |                              ^^^^^^^^^^^            ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub fn get_head_commit(repo: &Repository) -> Result<git2::Commit<'_>> {
[INFO] [stderr]    |                                                                 ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `triforge` (bin "triforge" test) generated 30 warnings (run `cargo fix --bin "triforge" -p triforge --tests` to apply 16 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.30s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/triforge-f981c1fc367639fd)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "47c836da94ad789be1a1ae46e363e8172f13d31442e3221b544de2e38e98a033", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "47c836da94ad789be1a1ae46e363e8172f13d31442e3221b544de2e38e98a033", kill_on_drop: false }`
[INFO] [stdout] 47c836da94ad789be1a1ae46e363e8172f13d31442e3221b544de2e38e98a033
