[INFO] cloning repository https://github.com/matt-barker/AmiPartED
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/matt-barker/AmiPartED" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatt-barker%2FAmiPartED", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatt-barker%2FAmiPartED'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 95a9c1c3d0736cee7b5a1ab4bea159c17a6b9b2d
[INFO] testing matt-barker/AmiPartED against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatt-barker%2FAmiPartED" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/matt-barker/AmiPartED
[INFO] finished tweaking git repo https://github.com/matt-barker/AmiPartED
[INFO] tweaked toml for git repo https://github.com/matt-barker/AmiPartED written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/matt-barker/AmiPartED on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/matt-barker/AmiPartED 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" "+1.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21
[INFO] running `Command { std: "docker" "start" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21", 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" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling target-lexicon v0.13.5
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling version-compare v0.2.1
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling bitflags v2.12.1
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling gio v0.20.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling cfg-expr v0.20.8
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling toml_edit v0.25.12+spec-1.1.0
[INFO] [stderr]    Compiling system-deps v7.0.8
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling glib-sys v0.20.10
[INFO] [stderr]    Compiling gobject-sys v0.20.10
[INFO] [stderr]    Compiling gio-sys v0.20.10
[INFO] [stderr]    Compiling cairo-sys-rs v0.20.10
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.20.10
[INFO] [stderr]    Compiling pango-sys v0.20.10
[INFO] [stderr]    Compiling gdk4-sys v0.9.6
[INFO] [stderr]    Compiling graphene-sys v0.20.10
[INFO] [stderr]    Compiling gsk4-sys v0.9.6
[INFO] [stderr]    Compiling gtk4-sys v0.9.6
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling glib-macros v0.20.12
[INFO] [stderr]    Compiling gtk4-macros v0.9.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling glib v0.20.12
[INFO] [stderr]    Compiling cairo-rs v0.20.12
[INFO] [stderr]    Compiling graphene-rs v0.20.10
[INFO] [stderr]    Compiling gdk-pixbuf v0.20.10
[INFO] [stderr]    Compiling pango v0.20.12
[INFO] [stderr]    Compiling gdk4 v0.9.6
[INFO] [stderr]    Compiling gsk4 v0.9.6
[INFO] [stderr]    Compiling gtk4 v0.9.7
[INFO] [stderr]    Compiling amiparted v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `IDNAME_PART`
[INFO] [stdout]  --> src/rdb/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     IDNAME_PART, RDB_LOCATION_LIMIT,
[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: `Duration`
[INFO] [stdout]   --> src/fs/pfs3.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::time::{Duration, UNIX_EPOCH};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:29:33
[INFO] [stdout]    |
[INFO] [stdout] 29 |       action!("open-image", true, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  _________________________________^
[INFO] [stdout] 30 | |         action_open_image(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 31 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:33:32
[INFO] [stdout]    |
[INFO] [stdout] 33 |       action!("new-image", true, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ________________________________^
[INFO] [stdout] 34 | |         action_new_image(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 35 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:37:37
[INFO] [stdout]    |
[INFO] [stdout] 37 |       action!("new-partition", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 38 | |         dialogs::show_new_partition(&widgets.window, &state, &widgets);
[INFO] [stdout] 39 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:41:40
[INFO] [stdout]    |
[INFO] [stdout] 41 |       action!("resize-partition", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ________________________________________^
[INFO] [stdout] 42 | |         let high = {
[INFO] [stdout] 43 | |             let s = state.borrow();
[INFO] [stdout] 44 | |             s.active_partition
[INFO] [stdout] ...  |
[INFO] [stdout] 49 | |         dialogs::show_resize_partition(&widgets.window, &state, &widgets);
[INFO] [stdout] 50 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:52:40
[INFO] [stdout]    |
[INFO] [stdout] 52 |       action!("delete-partition", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ________________________________________^
[INFO] [stdout] 53 | |         state.borrow_mut().action_delete_partition();
[INFO] [stdout] 54 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 55 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 56 | |         }
[INFO] [stdout] 57 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 58 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:60:35
[INFO] [stdout]    |
[INFO] [stdout] 60 |       action!("import-file", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ___________________________________^
[INFO] [stdout] 61 | |         action_import_file(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 62 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:64:35
[INFO] [stdout]    |
[INFO] [stdout] 64 |       action!("export-file", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ___________________________________^
[INFO] [stdout] 65 | |         action_export_file(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 66 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |       action!("new-directory", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 69 | |         let w = widgets.clone();
[INFO] [stdout] 70 | |         let s = Rc::clone(&state);
[INFO] [stdout] 71 | |         dialogs::show_input_dialog(
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | |         );
[INFO] [stdout] 84 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:86:36
[INFO] [stdout]    |
[INFO] [stdout] 86 |       action!("delete-entry", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 87 | |         state.borrow_mut().action_delete_entry();
[INFO] [stdout] 88 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 89 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 90 | |         }
[INFO] [stdout] 91 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 92 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/actions.rs:118:30
[INFO] [stdout]     |
[INFO] [stdout] 118 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 119 | |         match dialog.open_future(Some(&widgets.window)).await {
[INFO] [stdout] 120 | |             Ok(file) => {
[INFO] [stdout] 121 | |                 if let Some(path) = file.path() {
[INFO] [stdout] ...   |
[INFO] [stdout] 134 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/actions.rs:152:30
[INFO] [stdout]     |
[INFO] [stdout] 152 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 153 | |         match dialog.save_future(Some(&widgets.window)).await {
[INFO] [stdout] 154 | |             Ok(file) => {
[INFO] [stdout] 155 | |                 if let Some(path) = file.path() {
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/actions.rs:195:30
[INFO] [stdout]     |
[INFO] [stdout] 195 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 196 | |         match dialog.open_future(Some(&widgets.window)).await {
[INFO] [stdout] 197 | |             Ok(file) => {
[INFO] [stdout] 198 | |                 if let Some(path) = file.path() {
[INFO] [stdout] ...   |
[INFO] [stdout] 235 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/actions.rs:259:30
[INFO] [stdout]     |
[INFO] [stdout] 259 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 260 | |         match dialog.save_future(Some(&widgets.window)).await {
[INFO] [stdout] 261 | |             Ok(dest_file) => {
[INFO] [stdout] 262 | |                 if let Some(dest) = dest_file.path() {
[INFO] [stdout] ...   |
[INFO] [stdout] 292 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gio`
[INFO] [stdout]  --> src/gui/dialogs.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Box as GtkBox, gio, glib,
[INFO] [stdout]   |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/dialogs.rs:68:32
[INFO] [stdout]    |
[INFO] [stdout] 68 |     cancel_btn.connect_clicked(clone!(@weak win => move |_| win.close()));
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/dialogs.rs:70:28
[INFO] [stdout]    |
[INFO] [stdout] 70 |       ok_btn.connect_clicked(clone!(@strong on_confirm, @weak win, @weak entry => move |_| {
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 71 | |         let text = entry.text().to_string();
[INFO] [stdout] 72 | |         on_confirm(text);
[INFO] [stdout] 73 | |         win.close();
[INFO] [stdout] 74 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/dialogs.rs:76:28
[INFO] [stdout]    |
[INFO] [stdout] 76 |       entry.connect_activate(clone!(@strong on_confirm, @weak win, @weak entry => move |_| {
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 77 | |         let text = entry.text().to_string();
[INFO] [stdout] 78 | |         on_confirm(text);
[INFO] [stdout] 79 | |         win.close();
[INFO] [stdout] 80 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/dialogs.rs:161:32
[INFO] [stdout]     |
[INFO] [stdout] 161 |     cancel_btn.connect_clicked(clone!(@weak win => move |_| win.close()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/dialogs.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 164 | /         clone!(@weak win, @weak name_entry, @weak low_entry, @weak high_entry,
[INFO] [stdout] 165 | |                @weak dos_combo, @weak boot_entry,
[INFO] [stdout] 166 | |                @strong state, @strong widgets => move |_| {
[INFO] [stdout] ...   |
[INFO] [stdout] 184 | |         }),
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/dialogs.rs:238:32
[INFO] [stdout]     |
[INFO] [stdout] 238 |     cancel_btn.connect_clicked(clone!(@weak win => move |_| win.close()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/dialogs.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 | /         clone!(@weak win, @weak entry,
[INFO] [stdout] 242 | |                @strong state, @strong widgets => move |_| {
[INFO] [stdout] 243 | |             state.borrow_mut().resize_high_cyl = entry.text().to_string();
[INFO] [stdout] 244 | |             state.borrow_mut().action_resize_partition();
[INFO] [stdout] ...   |
[INFO] [stdout] 251 | |         }),
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:164:34
[INFO] [stdout]     |
[INFO] [stdout] 164 |     quit_action.connect_activate(clone!(@weak app => move |_, _| app.quit()));
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:474:41
[INFO] [stdout]     |
[INFO] [stdout] 474 |       partition_list.connect_row_selected(clone!(@strong state, @strong widgets => move |_, row| {
[INFO] [stdout]     |  _________________________________________^
[INFO] [stdout] 475 | |         if widgets.refreshing.get() { return; }
[INFO] [stdout] 476 | |         let Some(row) = row else { return };
[INFO] [stdout] 477 | |         let idx = row.index() as usize;
[INFO] [stdout] ...   |
[INFO] [stdout] 482 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 483 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:486:34
[INFO] [stdout]     |
[INFO] [stdout] 486 |       new_part_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 487 | |         dialogs::show_new_partition(&widgets.window, &state, &widgets);
[INFO] [stdout] 488 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:490:32
[INFO] [stdout]     |
[INFO] [stdout] 490 |       resize_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 491 | |         let high = state.borrow().active_partition
[INFO] [stdout] 492 | |             .and_then(|i| state.borrow().rdb.as_ref().map(|r| r.partitions[i].high_cyl.to_string()))
[INFO] [stdout] 493 | |             .unwrap_or_default();
[INFO] [stdout] 494 | |         state.borrow_mut().resize_high_cyl = high;
[INFO] [stdout] 495 | |         dialogs::show_resize_partition(&widgets.window, &state, &widgets);
[INFO] [stdout] 496 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:498:32
[INFO] [stdout]     |
[INFO] [stdout] 498 |       delete_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 499 | |         state.borrow_mut().action_delete_partition();
[INFO] [stdout] 500 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 501 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 502 | |         }
[INFO] [stdout] 503 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 504 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:506:34
[INFO] [stdout]     |
[INFO] [stdout] 506 |       save_rdb_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 507 | |         state.borrow_mut().action_save_rdb();
[INFO] [stdout] 508 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 509 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 510 | |         }
[INFO] [stdout] 511 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 512 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:515:28
[INFO] [stdout]     |
[INFO] [stdout] 515 |       up_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 516 | |         state.borrow_mut().navigate_up();
[INFO] [stdout] 517 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 518 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 519 | |         }
[INFO] [stdout] 520 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 521 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:523:32
[INFO] [stdout]     |
[INFO] [stdout] 523 |       import_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 524 | |         actions::action_import_file(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 525 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:527:32
[INFO] [stdout]     |
[INFO] [stdout] 527 |       export_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 528 | |         actions::action_export_file(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 529 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:531:33
[INFO] [stdout]     |
[INFO] [stdout] 531 |       new_dir_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout] 532 | |         let w = widgets.clone();
[INFO] [stdout] 533 | |         let s = Rc::clone(&state);
[INFO] [stdout] 534 | |         dialogs::show_input_dialog(
[INFO] [stdout] ...   |
[INFO] [stdout] 546 | |         );
[INFO] [stdout] 547 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:550:37
[INFO] [stdout]     |
[INFO] [stdout] 550 |       file_list.connect_row_activated(clone!(@strong state, @strong widgets => move |_, row| {
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 551 | |         let idx = row.index() as usize;
[INFO] [stdout] 552 | |         let entry = state.borrow().dir_entries.get(idx).cloned();
[INFO] [stdout] 553 | |         if let Some(entry) = entry {
[INFO] [stdout] ...   |
[INFO] [stdout] 562 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:564:36
[INFO] [stdout]     |
[INFO] [stdout] 564 |       file_list.connect_row_selected(clone!(@strong state, @strong widgets => move |_, row| {
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 565 | |         if widgets.refreshing.get() { return; }
[INFO] [stdout] 566 | |         state.borrow_mut().selected_entry = row.map(|r| r.index() as usize);
[INFO] [stdout] 567 | |         let has_sel = state.borrow().selected_entry.is_some();
[INFO] [stdout] ...   |
[INFO] [stdout] 580 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `gtk4::ComboBoxText`: Since 4.10
[INFO] [stdout]  --> src/gui/dialogs.rs:6:39
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Align, ApplicationWindow, Button, ComboBoxText, Entry,
[INFO] [stdout]   |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `gtk4::ComboBoxText`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:126:21
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let dos_combo = ComboBoxText::new();
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `gtk4::ComboBoxText::new`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:126:35
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let dos_combo = ComboBoxText::new();
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::ComboBoxText::append_text`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:128:19
[INFO] [stdout]     |
[INFO] [stdout] 128 |         dos_combo.append_text(t);
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::ComboBoxExtManual::set_active`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:130:15
[INFO] [stdout]     |
[INFO] [stdout] 130 |     dos_combo.set_active(Some(1)); // FFS default
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::ComboBoxText::active_text`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:172:49
[INFO] [stdout]     |
[INFO] [stdout] 172 |                 s.new_part_dos_type = dos_combo.active_text()
[INFO] [stdout]     |                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileSystem`
[INFO] [stdout]  --> src/gui/actions.rs:8:47
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::fs::{ofs_ffs::OfsFs, pfs3::Pfs3Fs, FileSystem};
[INFO] [stdout]   |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cyl_blocks`
[INFO] [stdout]   --> src/rdb/mod.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let cyl_blocks = self.cyl_blocks();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cyl_blocks`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sector_size` is never used
[INFO] [stdout]   --> src/disk/mod.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait DiskAccess: Send + Sync {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn sector_size(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_block` is never used
[INFO] [stdout]   --> src/disk/mod.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn read_block(disk: &mut dyn DiskAccess, lba: u64) -> Result<[u8; 512]> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_block` is never used
[INFO] [stdout]   --> src/disk/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn write_block(disk: &mut dyn DiskAccess, lba: u64, buf: &[u8; 512]) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size_bytes` and `removable` are never read
[INFO] [stdout]   --> src/disk/physical.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DriveInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub size_bytes: u64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     pub removable: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DriveInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhysicalDisk` is never constructed
[INFO] [stdout]   --> src/disk/physical.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct PhysicalDisk {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `open` is never used
[INFO] [stdout]   --> src/disk/physical.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl PhysicalDisk {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 22 |     pub fn open(info: &DriveInfo, writable: bool) -> Result<Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `filesystems` is never read
[INFO] [stdout]   --> src/rdb/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct RdbDisk {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub filesystems: Vec<FileSysHeaderBlock>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RdbDisk` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDNAME_LSEG` is never used
[INFO] [stdout]  --> src/rdb/blocks.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const IDNAME_LSEG: u32 = 0x4C534547; // "LSEG"
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDNAME_BADB` is never used
[INFO] [stdout]  --> src/rdb/blocks.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const IDNAME_BADB: u32 = 0x42414442; // "BADB"
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `controller_vendor`, `controller_product`, and `controller_revision` are never read
[INFO] [stdout]   --> src/rdb/blocks.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct RigidDiskBlock {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub controller_vendor: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 78 |     pub controller_product: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 79 |     pub controller_revision: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RigidDiskBlock` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dos_type_str` is never used
[INFO] [stdout]    --> src/rdb/blocks.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl PartitionBlock {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn dos_type_str(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/rdb/blocks.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct FileSysHeaderBlock {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout] 287 |     pub lba: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 288 |     pub next: u32,
[INFO] [stdout] 289 |     pub flags: u32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 290 |     pub dos_type: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 291 |     pub version: u32,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 292 |     pub patch_flags: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 293 |     pub dev_node_type: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 294 |     pub task: u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 295 |     pub lock: u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 296 |     pub handler: u32,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 297 |     pub stack_size: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 298 |     pub priority: i32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 299 |     pub startup: u32,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 300 |     pub seg_list_blk: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 301 |     pub global_vec: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FileSysHeaderBlock` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `modified` is never read
[INFO] [stdout]   --> src/fs/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct DirEntry {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub modified: Option<SystemTime>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DirEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flush` is never used
[INFO] [stdout]   --> src/fs/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait FileSystem: Send + Sync {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn flush(&mut self) -> Result<()>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `action_open_physical` is never used
[INFO] [stdout]    --> src/gui/actions.rs:328:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | impl AppState {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn action_open_physical(&mut self, drive: &DriveInfo, writable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 56s
[INFO] running `Command { std: "docker" "inspect" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling amiparted v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `IDNAME_PART`
[INFO] [stdout]  --> src/rdb/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     IDNAME_PART, RDB_LOCATION_LIMIT,
[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: `Duration`
[INFO] [stdout]   --> src/fs/pfs3.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::time::{Duration, UNIX_EPOCH};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:29:33
[INFO] [stdout]    |
[INFO] [stdout] 29 |       action!("open-image", true, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  _________________________________^
[INFO] [stdout] 30 | |         action_open_image(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 31 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:33:32
[INFO] [stdout]    |
[INFO] [stdout] 33 |       action!("new-image", true, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ________________________________^
[INFO] [stdout] 34 | |         action_new_image(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 35 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:37:37
[INFO] [stdout]    |
[INFO] [stdout] 37 |       action!("new-partition", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 38 | |         dialogs::show_new_partition(&widgets.window, &state, &widgets);
[INFO] [stdout] 39 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:41:40
[INFO] [stdout]    |
[INFO] [stdout] 41 |       action!("resize-partition", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ________________________________________^
[INFO] [stdout] 42 | |         let high = {
[INFO] [stdout] 43 | |             let s = state.borrow();
[INFO] [stdout] 44 | |             s.active_partition
[INFO] [stdout] ...  |
[INFO] [stdout] 49 | |         dialogs::show_resize_partition(&widgets.window, &state, &widgets);
[INFO] [stdout] 50 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:52:40
[INFO] [stdout]    |
[INFO] [stdout] 52 |       action!("delete-partition", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ________________________________________^
[INFO] [stdout] 53 | |         state.borrow_mut().action_delete_partition();
[INFO] [stdout] 54 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 55 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 56 | |         }
[INFO] [stdout] 57 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 58 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:60:35
[INFO] [stdout]    |
[INFO] [stdout] 60 |       action!("import-file", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ___________________________________^
[INFO] [stdout] 61 | |         action_import_file(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 62 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:64:35
[INFO] [stdout]    |
[INFO] [stdout] 64 |       action!("export-file", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ___________________________________^
[INFO] [stdout] 65 | |         action_export_file(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 66 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |       action!("new-directory", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 69 | |         let w = widgets.clone();
[INFO] [stdout] 70 | |         let s = Rc::clone(&state);
[INFO] [stdout] 71 | |         dialogs::show_input_dialog(
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | |         );
[INFO] [stdout] 84 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/actions.rs:86:36
[INFO] [stdout]    |
[INFO] [stdout] 86 |       action!("delete-entry", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 87 | |         state.borrow_mut().action_delete_entry();
[INFO] [stdout] 88 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 89 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 90 | |         }
[INFO] [stdout] 91 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 92 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/actions.rs:118:30
[INFO] [stdout]     |
[INFO] [stdout] 118 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 119 | |         match dialog.open_future(Some(&widgets.window)).await {
[INFO] [stdout] 120 | |             Ok(file) => {
[INFO] [stdout] 121 | |                 if let Some(path) = file.path() {
[INFO] [stdout] ...   |
[INFO] [stdout] 134 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/actions.rs:152:30
[INFO] [stdout]     |
[INFO] [stdout] 152 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 153 | |         match dialog.save_future(Some(&widgets.window)).await {
[INFO] [stdout] 154 | |             Ok(file) => {
[INFO] [stdout] 155 | |                 if let Some(path) = file.path() {
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/actions.rs:195:30
[INFO] [stdout]     |
[INFO] [stdout] 195 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 196 | |         match dialog.open_future(Some(&widgets.window)).await {
[INFO] [stdout] 197 | |             Ok(file) => {
[INFO] [stdout] 198 | |                 if let Some(path) = file.path() {
[INFO] [stdout] ...   |
[INFO] [stdout] 235 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/actions.rs:259:30
[INFO] [stdout]     |
[INFO] [stdout] 259 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 260 | |         match dialog.save_future(Some(&widgets.window)).await {
[INFO] [stdout] 261 | |             Ok(dest_file) => {
[INFO] [stdout] 262 | |                 if let Some(dest) = dest_file.path() {
[INFO] [stdout] ...   |
[INFO] [stdout] 292 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gio`
[INFO] [stdout]  --> src/gui/dialogs.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Box as GtkBox, gio, glib,
[INFO] [stdout]   |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/dialogs.rs:68:32
[INFO] [stdout]    |
[INFO] [stdout] 68 |     cancel_btn.connect_clicked(clone!(@weak win => move |_| win.close()));
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/dialogs.rs:70:28
[INFO] [stdout]    |
[INFO] [stdout] 70 |       ok_btn.connect_clicked(clone!(@strong on_confirm, @weak win, @weak entry => move |_| {
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 71 | |         let text = entry.text().to_string();
[INFO] [stdout] 72 | |         on_confirm(text);
[INFO] [stdout] 73 | |         win.close();
[INFO] [stdout] 74 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]   --> src/gui/dialogs.rs:76:28
[INFO] [stdout]    |
[INFO] [stdout] 76 |       entry.connect_activate(clone!(@strong on_confirm, @weak win, @weak entry => move |_| {
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 77 | |         let text = entry.text().to_string();
[INFO] [stdout] 78 | |         on_confirm(text);
[INFO] [stdout] 79 | |         win.close();
[INFO] [stdout] 80 | |     }));
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/dialogs.rs:161:32
[INFO] [stdout]     |
[INFO] [stdout] 161 |     cancel_btn.connect_clicked(clone!(@weak win => move |_| win.close()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/dialogs.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 164 | /         clone!(@weak win, @weak name_entry, @weak low_entry, @weak high_entry,
[INFO] [stdout] 165 | |                @weak dos_combo, @weak boot_entry,
[INFO] [stdout] 166 | |                @strong state, @strong widgets => move |_| {
[INFO] [stdout] ...   |
[INFO] [stdout] 184 | |         }),
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/dialogs.rs:238:32
[INFO] [stdout]     |
[INFO] [stdout] 238 |     cancel_btn.connect_clicked(clone!(@weak win => move |_| win.close()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/dialogs.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 | /         clone!(@weak win, @weak entry,
[INFO] [stdout] 242 | |                @strong state, @strong widgets => move |_| {
[INFO] [stdout] 243 | |             state.borrow_mut().resize_high_cyl = entry.text().to_string();
[INFO] [stdout] 244 | |             state.borrow_mut().action_resize_partition();
[INFO] [stdout] ...   |
[INFO] [stdout] 251 | |         }),
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:164:34
[INFO] [stdout]     |
[INFO] [stdout] 164 |     quit_action.connect_activate(clone!(@weak app => move |_, _| app.quit()));
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:474:41
[INFO] [stdout]     |
[INFO] [stdout] 474 |       partition_list.connect_row_selected(clone!(@strong state, @strong widgets => move |_, row| {
[INFO] [stdout]     |  _________________________________________^
[INFO] [stdout] 475 | |         if widgets.refreshing.get() { return; }
[INFO] [stdout] 476 | |         let Some(row) = row else { return };
[INFO] [stdout] 477 | |         let idx = row.index() as usize;
[INFO] [stdout] ...   |
[INFO] [stdout] 482 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 483 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:486:34
[INFO] [stdout]     |
[INFO] [stdout] 486 |       new_part_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 487 | |         dialogs::show_new_partition(&widgets.window, &state, &widgets);
[INFO] [stdout] 488 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:490:32
[INFO] [stdout]     |
[INFO] [stdout] 490 |       resize_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 491 | |         let high = state.borrow().active_partition
[INFO] [stdout] 492 | |             .and_then(|i| state.borrow().rdb.as_ref().map(|r| r.partitions[i].high_cyl.to_string()))
[INFO] [stdout] 493 | |             .unwrap_or_default();
[INFO] [stdout] 494 | |         state.borrow_mut().resize_high_cyl = high;
[INFO] [stdout] 495 | |         dialogs::show_resize_partition(&widgets.window, &state, &widgets);
[INFO] [stdout] 496 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:498:32
[INFO] [stdout]     |
[INFO] [stdout] 498 |       delete_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 499 | |         state.borrow_mut().action_delete_partition();
[INFO] [stdout] 500 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 501 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 502 | |         }
[INFO] [stdout] 503 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 504 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:506:34
[INFO] [stdout]     |
[INFO] [stdout] 506 |       save_rdb_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 507 | |         state.borrow_mut().action_save_rdb();
[INFO] [stdout] 508 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 509 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 510 | |         }
[INFO] [stdout] 511 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 512 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:515:28
[INFO] [stdout]     |
[INFO] [stdout] 515 |       up_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ____________________________^
[INFO] [stdout] 516 | |         state.borrow_mut().navigate_up();
[INFO] [stdout] 517 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stdout] 518 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stdout] 519 | |         }
[INFO] [stdout] 520 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stdout] 521 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:523:32
[INFO] [stdout]     |
[INFO] [stdout] 523 |       import_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 524 | |         actions::action_import_file(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 525 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:527:32
[INFO] [stdout]     |
[INFO] [stdout] 527 |       export_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 528 | |         actions::action_export_file(Rc::clone(&state), widgets.clone());
[INFO] [stdout] 529 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:531:33
[INFO] [stdout]     |
[INFO] [stdout] 531 |       new_dir_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout] 532 | |         let w = widgets.clone();
[INFO] [stdout] 533 | |         let s = Rc::clone(&state);
[INFO] [stdout] 534 | |         dialogs::show_input_dialog(
[INFO] [stdout] ...   |
[INFO] [stdout] 546 | |         );
[INFO] [stdout] 547 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:550:37
[INFO] [stdout]     |
[INFO] [stdout] 550 |       file_list.connect_row_activated(clone!(@strong state, @strong widgets => move |_, row| {
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 551 | |         let idx = row.index() as usize;
[INFO] [stdout] 552 | |         let entry = state.borrow().dir_entries.get(idx).cloned();
[INFO] [stdout] 553 | |         if let Some(entry) = entry {
[INFO] [stdout] ...   |
[INFO] [stdout] 562 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]    --> src/gui/mod.rs:564:36
[INFO] [stdout]     |
[INFO] [stdout] 564 |       file_list.connect_row_selected(clone!(@strong state, @strong widgets => move |_, row| {
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 565 | |         if widgets.refreshing.get() { return; }
[INFO] [stdout] 566 | |         state.borrow_mut().selected_entry = row.map(|r| r.index() as usize);
[INFO] [stdout] 567 | |         let has_sel = state.borrow().selected_entry.is_some();
[INFO] [stdout] ...   |
[INFO] [stdout] 580 | |     }));
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `gtk4::ComboBoxText`: Since 4.10
[INFO] [stdout]  --> src/gui/dialogs.rs:6:39
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Align, ApplicationWindow, Button, ComboBoxText, Entry,
[INFO] [stdout]   |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `gtk4::ComboBoxText`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:126:21
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let dos_combo = ComboBoxText::new();
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `gtk4::ComboBoxText::new`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:126:35
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let dos_combo = ComboBoxText::new();
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::ComboBoxText::append_text`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:128:19
[INFO] [stdout]     |
[INFO] [stdout] 128 |         dos_combo.append_text(t);
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::ComboBoxExtManual::set_active`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:130:15
[INFO] [stdout]     |
[INFO] [stdout] 130 |     dos_combo.set_active(Some(1)); // FFS default
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::ComboBoxText::active_text`: Since 4.10
[INFO] [stdout]    --> src/gui/dialogs.rs:172:49
[INFO] [stdout]     |
[INFO] [stdout] 172 |                 s.new_part_dos_type = dos_combo.active_text()
[INFO] [stdout]     |                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileSystem`
[INFO] [stdout]  --> src/gui/actions.rs:8:47
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::fs::{ofs_ffs::OfsFs, pfs3::Pfs3Fs, FileSystem};
[INFO] [stdout]   |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cyl_blocks`
[INFO] [stdout]   --> src/rdb/mod.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let cyl_blocks = self.cyl_blocks();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cyl_blocks`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sector_size` is never used
[INFO] [stdout]   --> src/disk/mod.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait DiskAccess: Send + Sync {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn sector_size(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_block` is never used
[INFO] [stdout]   --> src/disk/mod.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn read_block(disk: &mut dyn DiskAccess, lba: u64) -> Result<[u8; 512]> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_block` is never used
[INFO] [stdout]   --> src/disk/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn write_block(disk: &mut dyn DiskAccess, lba: u64, buf: &[u8; 512]) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size_bytes` and `removable` are never read
[INFO] [stdout]   --> src/disk/physical.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DriveInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub size_bytes: u64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     pub removable: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DriveInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhysicalDisk` is never constructed
[INFO] [stdout]   --> src/disk/physical.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct PhysicalDisk {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `open` is never used
[INFO] [stdout]   --> src/disk/physical.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl PhysicalDisk {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 22 |     pub fn open(info: &DriveInfo, writable: bool) -> Result<Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `filesystems` is never read
[INFO] [stdout]   --> src/rdb/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct RdbDisk {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub filesystems: Vec<FileSysHeaderBlock>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RdbDisk` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDNAME_LSEG` is never used
[INFO] [stdout]  --> src/rdb/blocks.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const IDNAME_LSEG: u32 = 0x4C534547; // "LSEG"
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDNAME_BADB` is never used
[INFO] [stdout]  --> src/rdb/blocks.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const IDNAME_BADB: u32 = 0x42414442; // "BADB"
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `controller_vendor`, `controller_product`, and `controller_revision` are never read
[INFO] [stdout]   --> src/rdb/blocks.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct RigidDiskBlock {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub controller_vendor: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 78 |     pub controller_product: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 79 |     pub controller_revision: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RigidDiskBlock` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dos_type_str` is never used
[INFO] [stdout]    --> src/rdb/blocks.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl PartitionBlock {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn dos_type_str(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/rdb/blocks.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct FileSysHeaderBlock {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout] 287 |     pub lba: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 288 |     pub next: u32,
[INFO] [stdout] 289 |     pub flags: u32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 290 |     pub dos_type: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 291 |     pub version: u32,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 292 |     pub patch_flags: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 293 |     pub dev_node_type: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 294 |     pub task: u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 295 |     pub lock: u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 296 |     pub handler: u32,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 297 |     pub stack_size: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 298 |     pub priority: i32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 299 |     pub startup: u32,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 300 |     pub seg_list_blk: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 301 |     pub global_vec: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FileSysHeaderBlock` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `modified` is never read
[INFO] [stdout]   --> src/fs/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct DirEntry {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub modified: Option<SystemTime>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DirEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flush` is never used
[INFO] [stdout]   --> src/fs/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait FileSystem: Send + Sync {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn flush(&mut self) -> Result<()>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `action_open_physical` is never used
[INFO] [stdout]    --> src/gui/actions.rs:328:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | impl AppState {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn action_open_physical(&mut self, drive: &DriveInfo, writable: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 12.09s
[INFO] running `Command { std: "docker" "inspect" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `IDNAME_PART`
[INFO] [stderr]  --> src/rdb/mod.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     IDNAME_PART, RDB_LOCATION_LIMIT,
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]   --> src/fs/pfs3.rs:23:17
[INFO] [stderr]    |
[INFO] [stderr] 23 | use std::time::{Duration, UNIX_EPOCH};
[INFO] [stderr]    |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/actions.rs:29:33
[INFO] [stderr]    |
[INFO] [stderr] 29 |       action!("open-image", true, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stderr]    |  _________________________________^
[INFO] [stderr] 30 | |         action_open_image(Rc::clone(&state), widgets.clone());
[INFO] [stderr] 31 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/actions.rs:33:32
[INFO] [stderr]    |
[INFO] [stderr] 33 |       action!("new-image", true, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stderr]    |  ________________________________^
[INFO] [stderr] 34 | |         action_new_image(Rc::clone(&state), widgets.clone());
[INFO] [stderr] 35 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/actions.rs:37:37
[INFO] [stderr]    |
[INFO] [stderr] 37 |       action!("new-partition", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stderr]    |  _____________________________________^
[INFO] [stderr] 38 | |         dialogs::show_new_partition(&widgets.window, &state, &widgets);
[INFO] [stderr] 39 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/actions.rs:41:40
[INFO] [stderr]    |
[INFO] [stderr] 41 |       action!("resize-partition", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stderr]    |  ________________________________________^
[INFO] [stderr] 42 | |         let high = {
[INFO] [stderr] 43 | |             let s = state.borrow();
[INFO] [stderr] 44 | |             s.active_partition
[INFO] [stderr] ...  |
[INFO] [stderr] 49 | |         dialogs::show_resize_partition(&widgets.window, &state, &widgets);
[INFO] [stderr] 50 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/actions.rs:52:40
[INFO] [stderr]    |
[INFO] [stderr] 52 |       action!("delete-partition", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stderr]    |  ________________________________________^
[INFO] [stderr] 53 | |         state.borrow_mut().action_delete_partition();
[INFO] [stderr] 54 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stderr] 55 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stderr] 56 | |         }
[INFO] [stderr] 57 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stderr] 58 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/actions.rs:60:35
[INFO] [stderr]    |
[INFO] [stderr] 60 |       action!("import-file", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stderr]    |  ___________________________________^
[INFO] [stderr] 61 | |         action_import_file(Rc::clone(&state), widgets.clone());
[INFO] [stderr] 62 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/actions.rs:64:35
[INFO] [stderr]    |
[INFO] [stderr] 64 |       action!("export-file", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stderr]    |  ___________________________________^
[INFO] [stderr] 65 | |         action_export_file(Rc::clone(&state), widgets.clone());
[INFO] [stderr] 66 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/actions.rs:68:37
[INFO] [stderr]    |
[INFO] [stderr] 68 |       action!("new-directory", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stderr]    |  _____________________________________^
[INFO] [stderr] 69 | |         let w = widgets.clone();
[INFO] [stderr] 70 | |         let s = Rc::clone(&state);
[INFO] [stderr] 71 | |         dialogs::show_input_dialog(
[INFO] [stderr] ...  |
[INFO] [stderr] 83 | |         );
[INFO] [stderr] 84 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/actions.rs:86:36
[INFO] [stderr]    |
[INFO] [stderr] 86 |       action!("delete-entry", false, clone!(@strong state, @strong widgets => move |_, _| {
[INFO] [stderr]    |  ____________________________________^
[INFO] [stderr] 87 | |         state.borrow_mut().action_delete_entry();
[INFO] [stderr] 88 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stderr] 89 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stderr] 90 | |         }
[INFO] [stderr] 91 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stderr] 92 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/actions.rs:118:30
[INFO] [stderr]     |
[INFO] [stderr] 118 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stderr]     |  ______________________________^
[INFO] [stderr] 119 | |         match dialog.open_future(Some(&widgets.window)).await {
[INFO] [stderr] 120 | |             Ok(file) => {
[INFO] [stderr] 121 | |                 if let Some(path) = file.path() {
[INFO] [stderr] ...   |
[INFO] [stderr] 134 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/actions.rs:152:30
[INFO] [stderr]     |
[INFO] [stderr] 152 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stderr]     |  ______________________________^
[INFO] [stderr] 153 | |         match dialog.save_future(Some(&widgets.window)).await {
[INFO] [stderr] 154 | |             Ok(file) => {
[INFO] [stderr] 155 | |                 if let Some(path) = file.path() {
[INFO] [stderr] ...   |
[INFO] [stderr] 187 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/actions.rs:195:30
[INFO] [stderr]     |
[INFO] [stderr] 195 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stderr]     |  ______________________________^
[INFO] [stderr] 196 | |         match dialog.open_future(Some(&widgets.window)).await {
[INFO] [stderr] 197 | |             Ok(file) => {
[INFO] [stderr] 198 | |                 if let Some(path) = file.path() {
[INFO] [stderr] ...   |
[INFO] [stderr] 235 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/actions.rs:259:30
[INFO] [stderr]     |
[INFO] [stderr] 259 |       glib::spawn_future_local(clone!(@strong state, @strong widgets => async move {
[INFO] [stderr]     |  ______________________________^
[INFO] [stderr] 260 | |         match dialog.save_future(Some(&widgets.window)).await {
[INFO] [stderr] 261 | |             Ok(dest_file) => {
[INFO] [stderr] 262 | |                 if let Some(dest) = dest_file.path() {
[INFO] [stderr] ...   |
[INFO] [stderr] 292 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `gio`
[INFO] [stderr]  --> src/gui/dialogs.rs:8:20
[INFO] [stderr]   |
[INFO] [stderr] 8 |     Box as GtkBox, gio, glib,
[INFO] [stderr]   |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/dialogs.rs:68:32
[INFO] [stderr]    |
[INFO] [stderr] 68 |     cancel_btn.connect_clicked(clone!(@weak win => move |_| win.close()));
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/dialogs.rs:70:28
[INFO] [stderr]    |
[INFO] [stderr] 70 |       ok_btn.connect_clicked(clone!(@strong on_confirm, @weak win, @weak entry => move |_| {
[INFO] [stderr]    |  ____________________________^
[INFO] [stderr] 71 | |         let text = entry.text().to_string();
[INFO] [stderr] 72 | |         on_confirm(text);
[INFO] [stderr] 73 | |         win.close();
[INFO] [stderr] 74 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]   --> src/gui/dialogs.rs:76:28
[INFO] [stderr]    |
[INFO] [stderr] 76 |       entry.connect_activate(clone!(@strong on_confirm, @weak win, @weak entry => move |_| {
[INFO] [stderr]    |  ____________________________^
[INFO] [stderr] 77 | |         let text = entry.text().to_string();
[INFO] [stderr] 78 | |         on_confirm(text);
[INFO] [stderr] 79 | |         win.close();
[INFO] [stderr] 80 | |     }));
[INFO] [stderr]    | |______^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout] 
[INFO] [stderr]    --> src/gui/dialogs.rs:161:32
[INFO] [stdout] running 0 tests
[INFO] [stderr]     |
[INFO] [stdout] 
[INFO] [stderr] 161 |     cancel_btn.connect_clicked(clone!(@weak win => move |_| win.close()));
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/dialogs.rs:164:9
[INFO] [stderr]     |
[INFO] [stderr] 164 | /         clone!(@weak win, @weak name_entry, @weak low_entry, @weak high_entry,
[INFO] [stderr] 165 | |                @weak dos_combo, @weak boot_entry,
[INFO] [stderr] 166 | |                @strong state, @strong widgets => move |_| {
[INFO] [stderr] ...   |
[INFO] [stderr] 184 | |         }),
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/dialogs.rs:238:32
[INFO] [stderr]     |
[INFO] [stderr] 238 |     cancel_btn.connect_clicked(clone!(@weak win => move |_| win.close()));
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/dialogs.rs:241:9
[INFO] [stderr]     |
[INFO] [stderr] 241 | /         clone!(@weak win, @weak entry,
[INFO] [stderr] 242 | |                @strong state, @strong widgets => move |_| {
[INFO] [stderr] 243 | |             state.borrow_mut().resize_high_cyl = entry.text().to_string();
[INFO] [stderr] 244 | |             state.borrow_mut().action_resize_partition();
[INFO] [stderr] ...   |
[INFO] [stderr] 251 | |         }),
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:164:34
[INFO] [stderr]     |
[INFO] [stderr] 164 |     quit_action.connect_activate(clone!(@weak app => move |_, _| app.quit()));
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:474:41
[INFO] [stderr]     |
[INFO] [stderr] 474 |       partition_list.connect_row_selected(clone!(@strong state, @strong widgets => move |_, row| {
[INFO] [stderr]     |  _________________________________________^
[INFO] [stderr] 475 | |         if widgets.refreshing.get() { return; }
[INFO] [stderr] 476 | |         let Some(row) = row else { return };
[INFO] [stderr] 477 | |         let idx = row.index() as usize;
[INFO] [stderr] ...   |
[INFO] [stderr] 482 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stderr] 483 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:486:34
[INFO] [stderr]     |
[INFO] [stderr] 486 |       new_part_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stderr]     |  __________________________________^
[INFO] [stderr] 487 | |         dialogs::show_new_partition(&widgets.window, &state, &widgets);
[INFO] [stderr] 488 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:490:32
[INFO] [stderr]     |
[INFO] [stderr] 490 |       resize_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stderr]     |  ________________________________^
[INFO] [stderr] 491 | |         let high = state.borrow().active_partition
[INFO] [stderr] 492 | |             .and_then(|i| state.borrow().rdb.as_ref().map(|r| r.partitions[i].high_cyl.to_string()))
[INFO] [stderr] 493 | |             .unwrap_or_default();
[INFO] [stderr] 494 | |         state.borrow_mut().resize_high_cyl = high;
[INFO] [stderr] 495 | |         dialogs::show_resize_partition(&widgets.window, &state, &widgets);
[INFO] [stderr] 496 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:498:32
[INFO] [stderr]     |
[INFO] [stderr] 498 |       delete_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stderr]     |  ________________________________^
[INFO] [stderr] 499 | |         state.borrow_mut().action_delete_partition();
[INFO] [stderr] 500 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stderr] 501 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stderr] 502 | |         }
[INFO] [stderr] 503 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stderr] 504 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:506:34
[INFO] [stderr]     |
[INFO] [stderr] 506 |       save_rdb_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stderr]     |  __________________________________^
[INFO] [stderr] 507 | |         state.borrow_mut().action_save_rdb();
[INFO] [stderr] 508 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stderr] 509 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stderr] 510 | |         }
[INFO] [stderr] 511 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stderr] 512 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:515:28
[INFO] [stderr]     |
[INFO] [stderr] 515 |       up_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stderr]     |  ____________________________^
[INFO] [stderr] 516 | |         state.borrow_mut().navigate_up();
[INFO] [stderr] 517 | |         if let Some(err) = state.borrow_mut().take_error() {
[INFO] [stderr] 518 | |             dialogs::show_error(&widgets.window, &err);
[INFO] [stderr] 519 | |         }
[INFO] [stderr] 520 | |         refresh_ui(&state.borrow(), &widgets);
[INFO] [stderr] 521 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:523:32
[INFO] [stderr]     |
[INFO] [stderr] 523 |       import_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stderr]     |  ________________________________^
[INFO] [stderr] 524 | |         actions::action_import_file(Rc::clone(&state), widgets.clone());
[INFO] [stderr] 525 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:527:32
[INFO] [stderr]     |
[INFO] [stderr] 527 |       export_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stderr]     |  ________________________________^
[INFO] [stderr] 528 | |         actions::action_export_file(Rc::clone(&state), widgets.clone());
[INFO] [stderr] 529 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:531:33
[INFO] [stderr]     |
[INFO] [stderr] 531 |       new_dir_btn.connect_clicked(clone!(@strong state, @strong widgets => move |_| {
[INFO] [stderr]     |  _________________________________^
[INFO] [stderr] 532 | |         let w = widgets.clone();
[INFO] [stderr] 533 | |         let s = Rc::clone(&state);
[INFO] [stderr] 534 | |         dialogs::show_input_dialog(
[INFO] [stderr] ...   |
[INFO] [stderr] 546 | |         );
[INFO] [stderr] 547 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:550:37
[INFO] [stderr]     |
[INFO] [stderr] 550 |       file_list.connect_row_activated(clone!(@strong state, @strong widgets => move |_, row| {
[INFO] [stderr]     |  _____________________________________^
[INFO] [stderr] 551 | |         let idx = row.index() as usize;
[INFO] [stderr] 552 | |         let entry = state.borrow().dir_entries.get(idx).cloned();
[INFO] [stderr] 553 | |         if let Some(entry) = entry {
[INFO] [stderr] ...   |
[INFO] [stderr] 562 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stderr]    --> src/gui/mod.rs:564:36
[INFO] [stderr]     |
[INFO] [stderr] 564 |       file_list.connect_row_selected(clone!(@strong state, @strong widgets => move |_, row| {
[INFO] [stderr]     |  ____________________________________^
[INFO] [stderr] 565 | |         if widgets.refreshing.get() { return; }
[INFO] [stderr] 566 | |         state.borrow_mut().selected_entry = row.map(|r| r.index() as usize);
[INFO] [stderr] 567 | |         let has_sel = state.borrow().selected_entry.is_some();
[INFO] [stderr] ...   |
[INFO] [stderr] 580 | |     }));
[INFO] [stderr]     | |______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated struct `gtk4::ComboBoxText`: Since 4.10
[INFO] [stderr]  --> src/gui/dialogs.rs:6:39
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Align, ApplicationWindow, Button, ComboBoxText, Entry,
[INFO] [stderr]   |                                       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated struct `gtk4::ComboBoxText`: Since 4.10
[INFO] [stderr]    --> src/gui/dialogs.rs:126:21
[INFO] [stderr]     |
[INFO] [stderr] 126 |     let dos_combo = ComboBoxText::new();
[INFO] [stderr]     |                     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `gtk4::ComboBoxText::new`: Since 4.10
[INFO] [stderr]    --> src/gui/dialogs.rs:126:35
[INFO] [stderr]     |
[INFO] [stderr] 126 |     let dos_combo = ComboBoxText::new();
[INFO] [stderr]     |                                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `gtk4::ComboBoxText::append_text`: Since 4.10
[INFO] [stderr]    --> src/gui/dialogs.rs:128:19
[INFO] [stderr]     |
[INFO] [stderr] 128 |         dos_combo.append_text(t);
[INFO] [stderr]     |                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `gtk4::prelude::ComboBoxExtManual::set_active`: Since 4.10
[INFO] [stderr]    --> src/gui/dialogs.rs:130:15
[INFO] [stderr]     |
[INFO] [stderr] 130 |     dos_combo.set_active(Some(1)); // FFS default
[INFO] [stderr]     |               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `gtk4::ComboBoxText::active_text`: Since 4.10
[INFO] [stderr]    --> src/gui/dialogs.rs:172:49
[INFO] [stderr]     |
[INFO] [stderr] 172 |                 s.new_part_dos_type = dos_combo.active_text()
[INFO] [stderr]     |                                                 ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FileSystem`
[INFO] [stderr]  --> src/gui/actions.rs:8:47
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::fs::{ofs_ffs::OfsFs, pfs3::Pfs3Fs, FileSystem};
[INFO] [stderr]   |                                               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cyl_blocks`
[INFO] [stderr]   --> src/rdb/mod.rs:61:13
[INFO] [stderr]    |
[INFO] [stderr] 61 |         let cyl_blocks = self.cyl_blocks();
[INFO] [stderr]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cyl_blocks`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `sector_size` is never used
[INFO] [stderr]   --> src/disk/mod.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub trait DiskAccess: Send + Sync {
[INFO] [stderr]    |           ---------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 13 |     fn sector_size(&self) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_block` is never used
[INFO] [stderr]   --> src/disk/mod.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn read_block(disk: &mut dyn DiskAccess, lba: u64) -> Result<[u8; 512]> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_block` is never used
[INFO] [stderr]   --> src/disk/mod.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub fn write_block(disk: &mut dyn DiskAccess, lba: u64, buf: &[u8; 512]) -> Result<()> {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `size_bytes` and `removable` are never read
[INFO] [stderr]   --> src/disk/physical.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | pub struct DriveInfo {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 11 |     pub size_bytes: u64,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 12 |     pub removable: bool,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DriveInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PhysicalDisk` is never constructed
[INFO] [stderr]   --> src/disk/physical.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct PhysicalDisk {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `open` is never used
[INFO] [stderr]   --> src/disk/physical.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl PhysicalDisk {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] 22 |     pub fn open(info: &DriveInfo, writable: bool) -> Result<Self> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `filesystems` is never read
[INFO] [stderr]   --> src/rdb/mod.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct RdbDisk {
[INFO] [stderr]    |            ------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 14 |     pub filesystems: Vec<FileSysHeaderBlock>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RdbDisk` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IDNAME_LSEG` is never used
[INFO] [stderr]  --> src/rdb/blocks.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const IDNAME_LSEG: u32 = 0x4C534547; // "LSEG"
[INFO] [stderr]   |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IDNAME_BADB` is never used
[INFO] [stderr]  --> src/rdb/blocks.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const IDNAME_BADB: u32 = 0x42414442; // "BADB"
[INFO] [stderr]   |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `controller_vendor`, `controller_product`, and `controller_revision` are never read
[INFO] [stderr]   --> src/rdb/blocks.rs:77:9
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub struct RigidDiskBlock {
[INFO] [stderr]    |            -------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 77 |     pub controller_vendor: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 78 |     pub controller_product: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 79 |     pub controller_revision: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RigidDiskBlock` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `dos_type_str` is never used
[INFO] [stderr]    --> src/rdb/blocks.rs:264:12
[INFO] [stderr]     |
[INFO] [stderr] 192 | impl PartitionBlock {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 264 |     pub fn dos_type_str(&self) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]    --> src/rdb/blocks.rs:287:9
[INFO] [stderr]     |
[INFO] [stderr] 286 | pub struct FileSysHeaderBlock {
[INFO] [stderr]     |            ------------------ fields in this struct
[INFO] [stderr] 287 |     pub lba: u64,
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 288 |     pub next: u32,
[INFO] [stderr] 289 |     pub flags: u32,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 290 |     pub dos_type: u32,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 291 |     pub version: u32,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 292 |     pub patch_flags: u32,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr] 293 |     pub dev_node_type: u32,
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 294 |     pub task: u32,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] 295 |     pub lock: u32,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] 296 |     pub handler: u32,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 297 |     pub stack_size: u32,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 298 |     pub priority: i32,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 299 |     pub startup: u32,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 300 |     pub seg_list_blk: u32,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] 301 |     pub global_vec: u32,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `FileSysHeaderBlock` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `modified` is never read
[INFO] [stderr]   --> src/fs/mod.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct DirEntry {
[INFO] [stderr]    |            -------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 13 |     pub modified: Option<SystemTime>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DirEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `flush` is never used
[INFO] [stderr]   --> src/fs/mod.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub trait FileSystem: Send + Sync {
[INFO] [stderr]    |           ---------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 27 |     fn flush(&mut self) -> Result<()>;
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `action_open_physical` is never used
[INFO] [stderr]    --> src/gui/actions.rs:328:12
[INFO] [stderr]     |
[INFO] [stderr] 297 | impl AppState {
[INFO] [stderr]     | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 328 |     pub fn action_open_physical(&mut self, drive: &DriveInfo, writable: bool) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `amiparted` (bin "amiparted" test) generated 58 warnings (run `cargo fix --bin "amiparted" -p amiparted --tests` to apply 4 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/amiparted-17c47ed79d3fe8fe)
[INFO] running `Command { std: "docker" "inspect" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21", kill_on_drop: false }`
[INFO] [stdout] a965322b8ea937907cf014f0beb98f28393c9184626ec2c4868509f428e8fa21
