[INFO] fetching crate twin-commander 0.1.0... [INFO] testing twin-commander-0.1.0 against beta-2025-09-21 for beta-1.91-3 [INFO] extracting crate twin-commander 0.1.0 into /workspace/builds/worker-5-tc2/source [INFO] started tweaking crates.io crate twin-commander 0.1.0 [INFO] finished tweaking crates.io crate twin-commander 0.1.0 [INFO] tweaked toml for crates.io crate twin-commander 0.1.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate twin-commander 0.1.0 on toolchain beta-2025-09-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate twin-commander 0.1.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" "+beta-2025-09-21" "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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d9ad7f34e8b84166aff83d521185746c681a13c14c5636d6893f46fb2296c214 [INFO] running `Command { std: "docker" "start" "-a" "d9ad7f34e8b84166aff83d521185746c681a13c14c5636d6893f46fb2296c214", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d9ad7f34e8b84166aff83d521185746c681a13c14c5636d6893f46fb2296c214", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d9ad7f34e8b84166aff83d521185746c681a13c14c5636d6893f46fb2296c214", kill_on_drop: false }` [INFO] [stdout] d9ad7f34e8b84166aff83d521185746c681a13c14c5636d6893f46fb2296c214 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0f15ac456cfdaf355b0034c497ceb1154a67fc1f885cb03857a860affe59eb8c [INFO] running `Command { std: "docker" "start" "-a" "0f15ac456cfdaf355b0034c497ceb1154a67fc1f885cb03857a860affe59eb8c", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.51 [INFO] [stderr] Compiling unicode-ident v1.0.7 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling serde_derive v1.0.152 [INFO] [stderr] Compiling serde v1.0.152 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling indexmap v1.9.2 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling libm v0.2.6 [INFO] [stderr] Compiling winnow v0.3.4 [INFO] [stderr] Compiling unicode-width v0.1.10 [INFO] [stderr] Compiling iana-time-zone v0.1.53 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling unicode-segmentation v1.10.1 [INFO] [stderr] Compiling dirs-sys v0.3.7 [INFO] [stderr] Compiling termion v1.5.6 [INFO] [stderr] Compiling termion v2.0.3 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling dirs v4.0.0 [INFO] [stderr] Compiling tui v0.19.0 [INFO] [stderr] Compiling tui-input v0.8.0 [INFO] [stderr] Compiling quote v1.0.23 [INFO] [stderr] Compiling humansize v2.1.3 [INFO] [stderr] Compiling chrono v0.4.23 [INFO] [stderr] Compiling toml_datetime v0.6.1 [INFO] [stderr] Compiling serde_spanned v0.6.1 [INFO] [stderr] Compiling toml_edit v0.19.4 [INFO] [stderr] Compiling toml v0.7.2 [INFO] [stderr] Compiling twin-commander v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `self::panel::*` [INFO] [stdout] --> src/ui/widgets/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use self::panel::*; [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: `self::text_file_viewer::*` [INFO] [stdout] --> src/ui/widgets/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use self::text_file_viewer::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::widgets::*` [INFO] [stdout] --> src/ui/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use self::widgets::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/dialog/mkdir.rs:100:19 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn widget(&self) -> Paragraph { [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] 100 | pub fn widget(&self) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/dialog/mkdir.rs:112:22 [INFO] [stdout] | [INFO] [stdout] 112 | fn display_input(&self) -> Paragraph { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 112 | fn display_input(&self) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/ui/user_interface.rs:70:63 [INFO] [stdout] | [INFO] [stdout] 70 | let left_table_config = config.left_table_config().clone(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `TableConfiguration` does not implement `Clone`, so calling `clone` on `&TableConfiguration` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 70 - let left_table_config = config.left_table_config().clone(); [INFO] [stdout] 70 + let left_table_config = config.left_table_config(); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `TableConfiguration`, implement `Clone` for it [INFO] [stdout] --> src/core/config.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 + #[derive(Clone)] [INFO] [stdout] 24 | pub struct TableConfiguration { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/ui/user_interface.rs:71:65 [INFO] [stdout] | [INFO] [stdout] 71 | let right_table_config = config.right_table_config().clone(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `TableConfiguration` does not implement `Clone`, so calling `clone` on `&TableConfiguration` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 71 - let right_table_config = config.right_table_config().clone(); [INFO] [stdout] 71 + let right_table_config = config.right_table_config(); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `TableConfiguration`, implement `Clone` for it [INFO] [stdout] --> src/core/config.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 + #[derive(Clone)] [INFO] [stdout] 24 | pub struct TableConfiguration { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/ui/user_interface.rs:72:66 [INFO] [stdout] | [INFO] [stdout] 72 | let mut left_panel = TableView::new(left_table_config.clone(), &config); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `TableConfiguration` does not implement `Clone`, so calling `clone` on `&TableConfiguration` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 72 - let mut left_panel = TableView::new(left_table_config.clone(), &config); [INFO] [stdout] 72 + let mut left_panel = TableView::new(left_table_config, &config); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `TableConfiguration`, implement `Clone` for it [INFO] [stdout] --> src/core/config.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 + #[derive(Clone)] [INFO] [stdout] 24 | pub struct TableConfiguration { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.92s [INFO] running `Command { std: "docker" "inspect" "0f15ac456cfdaf355b0034c497ceb1154a67fc1f885cb03857a860affe59eb8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0f15ac456cfdaf355b0034c497ceb1154a67fc1f885cb03857a860affe59eb8c", kill_on_drop: false }` [INFO] [stdout] 0f15ac456cfdaf355b0034c497ceb1154a67fc1f885cb03857a860affe59eb8c [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dfd69b1636decd810a8a0a87faafb9bb40fa011033630621f2a90bcd4d12aab3 [INFO] running `Command { std: "docker" "start" "-a" "dfd69b1636decd810a8a0a87faafb9bb40fa011033630621f2a90bcd4d12aab3", kill_on_drop: false }` [INFO] [stderr] Compiling twin-commander v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `self::panel::*` [INFO] [stdout] --> src/ui/widgets/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use self::panel::*; [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: `self::text_file_viewer::*` [INFO] [stdout] --> src/ui/widgets/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use self::text_file_viewer::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::widgets::*` [INFO] [stdout] --> src/ui/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use self::widgets::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/dialog/mkdir.rs:100:19 [INFO] [stdout] | [INFO] [stdout] 100 | pub fn widget(&self) -> Paragraph { [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] 100 | pub fn widget(&self) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui/dialog/mkdir.rs:112:22 [INFO] [stdout] | [INFO] [stdout] 112 | fn display_input(&self) -> Paragraph { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 112 | fn display_input(&self) -> Paragraph<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/ui/user_interface.rs:70:63 [INFO] [stdout] | [INFO] [stdout] 70 | let left_table_config = config.left_table_config().clone(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `TableConfiguration` does not implement `Clone`, so calling `clone` on `&TableConfiguration` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 70 - let left_table_config = config.left_table_config().clone(); [INFO] [stdout] 70 + let left_table_config = config.left_table_config(); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `TableConfiguration`, implement `Clone` for it [INFO] [stdout] --> src/core/config.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 + #[derive(Clone)] [INFO] [stdout] 24 | pub struct TableConfiguration { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/ui/user_interface.rs:71:65 [INFO] [stdout] | [INFO] [stdout] 71 | let right_table_config = config.right_table_config().clone(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `TableConfiguration` does not implement `Clone`, so calling `clone` on `&TableConfiguration` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 71 - let right_table_config = config.right_table_config().clone(); [INFO] [stdout] 71 + let right_table_config = config.right_table_config(); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `TableConfiguration`, implement `Clone` for it [INFO] [stdout] --> src/core/config.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 + #[derive(Clone)] [INFO] [stdout] 24 | pub struct TableConfiguration { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/ui/user_interface.rs:72:66 [INFO] [stdout] | [INFO] [stdout] 72 | let mut left_panel = TableView::new(left_table_config.clone(), &config); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `TableConfiguration` does not implement `Clone`, so calling `clone` on `&TableConfiguration` copies the reference, which does not do anything and can be removed [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 72 - let mut left_panel = TableView::new(left_table_config.clone(), &config); [INFO] [stdout] 72 + let mut left_panel = TableView::new(left_table_config, &config); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `TableConfiguration`, implement `Clone` for it [INFO] [stdout] --> src/core/config.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 + #[derive(Clone)] [INFO] [stdout] 24 | pub struct TableConfiguration { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.24s [INFO] running `Command { std: "docker" "inspect" "dfd69b1636decd810a8a0a87faafb9bb40fa011033630621f2a90bcd4d12aab3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dfd69b1636decd810a8a0a87faafb9bb40fa011033630621f2a90bcd4d12aab3", kill_on_drop: false }` [INFO] [stdout] dfd69b1636decd810a8a0a87faafb9bb40fa011033630621f2a90bcd4d12aab3 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0ed07e22238ab6dde7f5c3cac48d9641e26b45eac962f76dbe061c2d301b5305 [INFO] running `Command { std: "docker" "start" "-a" "0ed07e22238ab6dde7f5c3cac48d9641e26b45eac962f76dbe061c2d301b5305", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `self::panel::*` [INFO] [stderr] --> src/ui/widgets/mod.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | pub use self::panel::*; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::text_file_viewer::*` [INFO] [stderr] --> src/ui/widgets/mod.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub use self::text_file_viewer::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::widgets::*` [INFO] [stderr] --> src/ui/mod.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | pub use self::widgets::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ui/dialog/mkdir.rs:100:19 [INFO] [stderr] | [INFO] [stderr] 100 | pub fn widget(&self) -> Paragraph { [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] 100 | pub fn widget(&self) -> Paragraph<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ui/dialog/mkdir.rs:112:22 [INFO] [stderr] | [INFO] [stderr] 112 | fn display_input(&self) -> Paragraph { [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] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 112 | fn display_input(&self) -> Paragraph<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stderr] --> src/ui/user_interface.rs:70:63 [INFO] [stderr] | [INFO] [stderr] 70 | let left_table_config = config.left_table_config().clone(); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the type `TableConfiguration` does not implement `Clone`, so calling `clone` on `&TableConfiguration` copies the reference, which does not do anything and can be removed [INFO] [stderr] = note: `#[warn(noop_method_call)]` on by default [INFO] [stderr] help: remove this redundant call [INFO] [stderr] | [INFO] [stderr] 70 - let left_table_config = config.left_table_config().clone(); [INFO] [stderr] 70 + let left_table_config = config.left_table_config(); [INFO] [stderr] | [INFO] [stderr] help: if you meant to clone `TableConfiguration`, implement `Clone` for it [INFO] [stderr] --> src/core/config.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 + #[derive(Clone)] [INFO] [stderr] 24 | pub struct TableConfiguration { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stderr] --> src/ui/user_interface.rs:71:65 [INFO] [stderr] | [INFO] [stderr] 71 | let right_table_config = config.right_table_config().clone(); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the type `TableConfiguration` does not implement `Clone`, so calling `clone` on `&TableConfiguration` copies the reference, which does not do anything and can be removed [INFO] [stderr] help: remove this redundant call [INFO] [stderr] | [INFO] [stderr] 71 - let right_table_config = config.right_table_config().clone(); [INFO] [stderr] 71 + let right_table_config = config.right_table_config(); [INFO] [stderr] | [INFO] [stderr] help: if you meant to clone `TableConfiguration`, implement `Clone` for it [INFO] [stderr] --> src/core/config.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 + #[derive(Clone)] [INFO] [stderr] 24 | pub struct TableConfiguration { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stderr] --> src/ui/user_interface.rs:72:66 [INFO] [stderr] | [INFO] [stderr] 72 | let mut left_panel = TableView::new(left_table_config.clone(), &config); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the type `TableConfiguration` does not implement `Clone`, so calling `clone` on `&TableConfiguration` copies the reference, which does not do anything and can be removed [INFO] [stderr] help: remove this redundant call [INFO] [stderr] | [INFO] [stderr] 72 - let mut left_panel = TableView::new(left_table_config.clone(), &config); [INFO] [stderr] 72 + let mut left_panel = TableView::new(left_table_config, &config); [INFO] [stderr] | [INFO] [stderr] help: if you meant to clone `TableConfiguration`, implement `Clone` for it [INFO] [stderr] --> src/core/config.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 + #[derive(Clone)] [INFO] [stderr] 24 | pub struct TableConfiguration { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `twin-commander` (bin "twin-commander" test) generated 8 warnings (run `cargo fix --bin "twin-commander" --tests` to apply 8 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/twin_commander-8ab2ff2011e4c905) [INFO] [stdout] [INFO] [stdout] running 33 tests [INFO] [stdout] test core::config::test::test_table_configuration_default ... ok [INFO] [stdout] test core::tests::test_calculate_progress_percentage ... ok [INFO] [stdout] test core::tests::test_calculate_progress_percentage_with_zero_should_not_panic ... ok [INFO] [stdout] test ui::dialog::help::tests::test_handle_key_enter ... ok [INFO] [stdout] test ui::dialog::help::tests::test_handle_key_f1 ... ok [INFO] [stdout] test ui::dialog::help::tests::test_handle_key_esc ... ok [INFO] [stdout] test ui::dialog::help::tests::test_handle_key_other ... ok [INFO] [stdout] test ui::dialog::help::tests::test_new_help_dialog ... ok [INFO] [stdout] test ui::table::table_sort::test::test_direction_from_usize ... ok [INFO] [stdout] test ui::table::table_sort::test::test_direction_to_usize ... ok [INFO] [stdout] test ui::table::table_sort::test::test_from_string_on_sort_direction_asc ... ok [INFO] [stdout] test ui::table::table_sort::test::test_from_string_on_sort_direction_default ... ok [INFO] [stdout] test ui::table::table_sort::test::test_from_string_on_sort_direction_desc ... ok [INFO] [stdout] test ui::table::table_sort::test::test_from_string_on_sort_predicate_default ... ok [INFO] [stdout] test ui::table::table_sort::test::test_from_string_on_sort_predicate_last_modified ... ok [INFO] [stdout] test ui::table::table_sort::test::test_from_string_on_sort_predicate_name ... ok [INFO] [stdout] test ui::table::table_sort::test::test_from_string_on_sort_predicate_size ... ok [INFO] [stdout] test ui::table::table_sort::test::test_into_string_on_sort_direction ... ok [INFO] [stdout] test ui::table::table_sort::test::test_into_string_on_sort_predicate ... ok [INFO] [stdout] test ui::table::table_sort::test::test_predicate_default ... ok [INFO] [stdout] test ui::table::table_sort::test::test_predicate_from_usize ... ok [INFO] [stdout] test ui::table::table_sort::test::test_predicate_to_usize ... ok [INFO] [stdout] test ui::table::table_sort::test::test_sort_by_last_modified_asc ... ok [INFO] [stdout] test ui::table::table_sort::test::test_sort_by_last_modified_desc ... ok [INFO] [stdout] test ui::table::table_sort::test::test_sort_by_name_asc ... ok [INFO] [stdout] test ui::table::table_sort::test::test_sort_by_name_desc ... ok [INFO] [stdout] test ui::table::table_sort::test::test_sort_by_size_asc ... ok [INFO] [stdout] test ui::table::table_sort::test::test_sort_by_size_desc ... ok [INFO] [stdout] test ui::table::table_sort::test::test_sort_direction_default ... ok [INFO] [stdout] test core::config::test::test_configuration_default ... ok [INFO] [stdout] test ui::table::table_sort::test::test_sort_direction_reverse ... ok [INFO] [stdout] test ui::table::table_sort::test::test_sorter_default ... ok [INFO] [stdout] test ui::test::test_fixed_height_centered_rect ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0ed07e22238ab6dde7f5c3cac48d9641e26b45eac962f76dbe061c2d301b5305", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0ed07e22238ab6dde7f5c3cac48d9641e26b45eac962f76dbe061c2d301b5305", kill_on_drop: false }` [INFO] [stdout] 0ed07e22238ab6dde7f5c3cac48d9641e26b45eac962f76dbe061c2d301b5305