[INFO] cloning repository https://github.com/Team-Akiraka/akiraka-cmd-tool
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Team-Akiraka/akiraka-cmd-tool" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTeam-Akiraka%2Fakiraka-cmd-tool", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTeam-Akiraka%2Fakiraka-cmd-tool'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cebbd587ffb2335b8f9e5eabcacaa3bc5839bf21
[INFO] checking Team-Akiraka/akiraka-cmd-tool against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTeam-Akiraka%2Fakiraka-cmd-tool" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Team-Akiraka/akiraka-cmd-tool
[INFO] finished tweaking git repo https://github.com/Team-Akiraka/akiraka-cmd-tool
[INFO] tweaked toml for git repo https://github.com/Team-Akiraka/akiraka-cmd-tool written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Team-Akiraka/akiraka-cmd-tool on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Team-Akiraka/akiraka-cmd-tool 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/linebender/druid.git`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded windres v0.2.2
[INFO] [stderr]   Downloaded quote v1.0.27
[INFO] [stderr]   Downloaded fluent-langneg v0.13.0
[INFO] [stderr]   Downloaded time v0.3.21
[INFO] [stderr]   Downloaded cpufeatures v0.2.7
[INFO] [stderr]   Downloaded system-deps v6.1.0
[INFO] [stderr]   Downloaded sysinfo v0.29.0
[INFO] [stderr]   Downloaded piet-direct2d v0.6.2
[INFO] [stderr]   Downloaded displaydoc v0.2.4
[INFO] [stderr]   Downloaded glib-sys v0.16.3
[INFO] [stderr]   Downloaded pangocairo v0.16.3
[INFO] [stderr]   Downloaded js-sys v0.3.62
[INFO] [stderr]   Downloaded field-offset v0.3.5
[INFO] [stderr]   Downloaded pangocairo-sys v0.16.3
[INFO] [stderr]   Downloaded security-framework-sys v2.9.0
[INFO] [stderr]   Downloaded glib-macros v0.16.8
[INFO] [stderr]   Downloaded cairo-rs v0.16.7
[INFO] [stderr]   Downloaded utf16_lit v2.0.2
[INFO] [stderr]   Downloaded gtk3-macros v0.16.3
[INFO] [stderr]   Downloaded type-map v0.4.0
[INFO] [stderr]   Downloaded self_cell v0.10.2
[INFO] [stderr]   Downloaded rust-embed-utils v7.5.0
[INFO] [stderr]   Downloaded gdk-pixbuf-sys v0.16.3
[INFO] [stderr]   Downloaded gdk-pixbuf v0.16.7
[INFO] [stderr]   Downloaded gdk-sys v0.16.0
[INFO] [stderr]   Downloaded gdk v0.16.2
[INFO] [stderr]   Downloaded atk-sys v0.16.0
[INFO] [stderr]   Downloaded atk v0.16.0
[INFO] [stderr]   Downloaded openssl-sys v0.9.87
[INFO] [stderr]   Downloaded unic-langid-impl v0.9.1
[INFO] [stderr]   Downloaded gio v0.16.7
[INFO] [stderr]   Downloaded gio-sys v0.16.3
[INFO] [stderr]   Downloaded kurbo v0.9.4
[INFO] [stderr]   Downloaded hyper v0.14.26
[INFO] [stderr]   Downloaded syn v2.0.15
[INFO] [stderr]   Downloaded serde_json v1.0.96
[INFO] [stderr]   Downloaded piet-common v0.6.2
[INFO] [stderr]   Downloaded fluent-syntax v0.11.0
[INFO] [stderr]   Downloaded bumpalo v3.12.2
[INFO] [stderr]   Downloaded winnow v0.4.6
[INFO] [stderr]   Downloaded h2 v0.3.19
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.85
[INFO] [stderr]   Downloaded gtk v0.16.2
[INFO] [stderr]   Downloaded glib v0.16.7
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.85
[INFO] [stderr]   Downloaded gobject-sys v0.16.3
[INFO] [stderr]   Downloaded libc v0.2.144
[INFO] [stderr]   Downloaded pango-sys v0.16.3
[INFO] [stderr]   Downloaded cfg-expr v0.15.1
[INFO] [stderr]   Downloaded piet-web v0.6.2
[INFO] [stderr]   Downloaded security-framework v2.9.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.85
[INFO] [stderr]   Downloaded gtk-sys v0.16.0
[INFO] [stderr]   Downloaded web-sys v0.3.62
[INFO] [stderr]   Downloaded find-winsdk v0.2.0
[INFO] [stderr]   Downloaded fluent-bundle v0.15.2
[INFO] [stderr]   Downloaded tokio v1.28.1
[INFO] [stderr]   Downloaded keyboard-types v0.6.2
[INFO] [stderr]   Downloaded pango v0.16.5
[INFO] [stderr]   Downloaded openssl v0.10.52
[INFO] [stderr]   Downloaded rust-embed v6.6.1
[INFO] [stderr]   Downloaded piet-cairo v0.6.2
[INFO] [stderr]   Downloaded tracing-attributes v0.1.24
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.85
[INFO] [stderr]   Downloaded zip v0.6.5
[INFO] [stderr]   Downloaded target-lexicon v0.12.7
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.85
[INFO] [stderr]   Downloaded winreg v0.5.1
[INFO] [stderr]   Downloaded intl-memoizer v0.5.1
[INFO] [stderr]   Downloaded tinystr v0.7.1
[INFO] [stderr]   Downloaded unic-langid v0.9.1
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.35
[INFO] [stderr]   Downloaded rust-embed-impl v6.5.0
[INFO] [stderr]   Downloaded cairo-sys-rs v0.16.3
[INFO] [stderr]   Downloaded serde_derive v1.0.163
[INFO] [stderr]   Downloaded concat-string v1.0.1
[INFO] [stderr]   Downloaded serde v1.0.163
[INFO] [stderr]   Downloaded linux-raw-sys v0.3.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2982f2cc77ed3bcacf5f229752344320db3a16f80b17e9393e0d24fbf3409258
[INFO] running `Command { std: "docker" "start" "-a" "2982f2cc77ed3bcacf5f229752344320db3a16f80b17e9393e0d24fbf3409258", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2982f2cc77ed3bcacf5f229752344320db3a16f80b17e9393e0d24fbf3409258", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2982f2cc77ed3bcacf5f229752344320db3a16f80b17e9393e0d24fbf3409258", kill_on_drop: false }`
[INFO] [stdout] 2982f2cc77ed3bcacf5f229752344320db3a16f80b17e9393e0d24fbf3409258
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5969ad985240f5d4402821cb2f2bdead15220a479a939767063816c89d49d309
[INFO] running `Command { std: "docker" "start" "-a" "5969ad985240f5d4402821cb2f2bdead15220a479a939767063816c89d49d309", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.144
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]    Compiling quote v1.0.27
[INFO] [stderr]    Compiling serde v1.0.163
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling winnow v0.4.6
[INFO] [stderr]    Compiling target-lexicon v0.12.7
[INFO] [stderr]    Compiling smallvec v1.10.0
[INFO] [stderr]     Checking once_cell v1.17.1
[INFO] [stderr]    Compiling slab v0.4.8
[INFO] [stderr]    Compiling futures-util v0.3.28
[INFO] [stderr]     Checking futures-io v0.3.28
[INFO] [stderr]    Compiling futures-channel v0.3.28
[INFO] [stderr]    Compiling anyhow v1.0.71
[INFO] [stderr]    Compiling thiserror v1.0.40
[INFO] [stderr]    Compiling memoffset v0.8.0
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling crossbeam-utils v0.8.15
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling gio v0.16.7
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.14
[INFO] [stderr]     Checking tracing-core v0.1.31
[INFO] [stderr]     Checking simd-adler32 v0.3.5
[INFO] [stderr]    Compiling semver v1.0.17
[INFO] [stderr]     Checking bytes v1.4.0
[INFO] [stderr]    Compiling typenum v1.16.0
[INFO] [stderr]    Compiling jobserver v0.1.26
[INFO] [stderr]     Checking num_cpus v1.15.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]    Compiling tokio v1.28.1
[INFO] [stderr]     Checking itoa v1.0.6
[INFO] [stderr]    Compiling cc v1.0.79
[INFO] [stderr]     Checking unic-char-range v0.9.0
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]     Checking unic-common v0.9.0
[INFO] [stderr]     Checking digest v0.10.6
[INFO] [stderr]     Checking unic-char-property v0.9.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]     Checking unic-ucd-version v0.9.0
[INFO] [stderr]    Compiling syn v2.0.15
[INFO] [stderr]    Compiling cfg-expr v0.15.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking socket2 v0.4.9
[INFO] [stderr]     Checking mio v0.8.6
[INFO] [stderr]     Checking cpufeatures v0.2.7
[INFO] [stderr]     Checking unic-ucd-bidi v0.9.0
[INFO] [stderr]     Checking arrayvec v0.7.2
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking matches v0.1.10
[INFO] [stderr]    Compiling openssl v0.10.52
[INFO] [stderr]     Checking http v0.2.9
[INFO] [stderr]     Checking miniz_oxide v0.7.1
[INFO] [stderr]     Checking unic-bidi v0.9.0
[INFO] [stderr]     Checking kurbo v0.9.4
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling field-offset v0.3.5
[INFO] [stderr]     Checking either v1.8.1
[INFO] [stderr]     Checking sha2 v0.10.6
[INFO] [stderr]     Checking getrandom v0.2.9
[INFO] [stderr]    Compiling gtk v0.16.2
[INFO] [stderr]     Checking flate2 v1.0.26
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking xi-unicode v0.3.0
[INFO] [stderr]    Compiling openssl-sys v0.9.87
[INFO] [stderr]    Compiling zstd-sys v2.0.8+zstd.1.5.5
[INFO] [stderr]    Compiling bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]     Checking piet v0.6.2
[INFO] [stderr]    Compiling walkdir v2.3.3
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking time v0.3.21
[INFO] [stderr]     Checking http-body v0.4.5
[INFO] [stderr]     Checking type-map v0.4.0
[INFO] [stderr]     Checking rayon v1.7.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]     Checking weezl v0.1.7
[INFO] [stderr]    Compiling serde_json v1.0.96
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking ryu v1.0.13
[INFO] [stderr]    Compiling druid-shell v0.8.3 (https://github.com/linebender/druid.git#04177239)
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]     Checking unicode-bidi v0.3.13
[INFO] [stderr]     Checking base64ct v1.6.0
[INFO] [stderr]    Compiling rust-embed-utils v7.5.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking miniz_oxide v0.6.2
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]     Checking password-hash v0.4.2
[INFO] [stderr]     Checking fdeflate v0.3.0
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]     Checking thread_local v1.1.7
[INFO] [stderr]     Checking keyboard-types v0.6.2
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking self_cell v0.10.2
[INFO] [stderr]     Checking bytemuck v1.13.1
[INFO] [stderr]     Checking half v2.2.1
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking gif v0.12.0
[INFO] [stderr]     Checking aes v0.7.5
[INFO] [stderr]     Checking png v0.17.8
[INFO] [stderr]     Checking pbkdf2 v0.11.0
[INFO] [stderr]    Compiling toml_datetime v0.6.1
[INFO] [stderr]    Compiling serde_spanned v0.6.1
[INFO] [stderr]     Checking url v2.3.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.17
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking sha1 v0.10.5
[INFO] [stderr]     Checking encoding_rs v0.8.32
[INFO] [stderr]    Compiling toml_edit v0.19.8
[INFO] [stderr]    Compiling akiraka-cmd v1.0.0-build-20230514 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking constant_time_eq v0.1.5
[INFO] [stderr]     Checking ipnet v2.7.2
[INFO] [stderr]     Checking base64 v0.21.0
[INFO] [stderr]     Checking bzip2 v0.4.4
[INFO] [stderr]     Checking jpeg-decoder v0.3.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking sysinfo v0.29.0
[INFO] [stderr]     Checking tiff v0.8.1
[INFO] [stderr]    Compiling druid-derive v0.5.1 (https://github.com/linebender/druid.git#04177239)
[INFO] [stderr]    Compiling rust-embed-impl v6.5.0
[INFO] [stderr]    Compiling toml v0.7.3
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking rust-embed v6.6.1
[INFO] [stderr]    Compiling system-deps v6.1.0
[INFO] [stderr]    Compiling futures-macro v0.3.28
[INFO] [stderr]    Compiling thiserror-impl v1.0.40
[INFO] [stderr]    Compiling tracing-attributes v0.1.24
[INFO] [stderr]    Compiling displaydoc v0.2.4
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.163
[INFO] [stderr]    Compiling glib-macros v0.16.8
[INFO] [stderr]    Compiling gtk3-macros v0.16.3
[INFO] [stderr]    Compiling glib-sys v0.16.3
[INFO] [stderr]    Compiling gobject-sys v0.16.3
[INFO] [stderr]    Compiling gio-sys v0.16.3
[INFO] [stderr]    Compiling cairo-sys-rs v0.16.3
[INFO] [stderr]    Compiling pango-sys v0.16.3
[INFO] [stderr]    Compiling atk-sys v0.16.0
[INFO] [stderr]    Compiling gdk-sys v0.16.0
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.16.3
[INFO] [stderr]     Checking tinystr v0.7.1
[INFO] [stderr]    Compiling pangocairo-sys v0.16.3
[INFO] [stderr]    Compiling gtk-sys v0.16.0
[INFO] [stderr]     Checking pin-project v1.1.0
[INFO] [stderr]     Checking unic-langid-impl v0.9.1
[INFO] [stderr]     Checking flume v0.10.14
[INFO] [stderr]     Checking unic-langid v0.9.1
[INFO] [stderr]     Checking fluent-langneg v0.13.0
[INFO] [stderr]     Checking intl_pluralrules v7.0.2
[INFO] [stderr]     Checking intl-memoizer v0.5.1
[INFO] [stderr]     Checking exr v1.6.3
[INFO] [stderr]     Checking tracing v0.1.37
[INFO] [stderr]     Checking fluent-syntax v0.11.0
[INFO] [stderr]     Checking tokio-util v0.7.8
[INFO] [stderr]     Checking fluent-bundle v0.15.2
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]     Checking zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]     Checking futures-executor v0.3.28
[INFO] [stderr]     Checking h2 v0.3.19
[INFO] [stderr]     Checking zip v0.6.5
[INFO] [stderr]     Checking glib v0.16.7
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking image v0.24.6
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking hyper v0.14.26
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.17
[INFO] [stderr]     Checking cairo-rs v0.16.7
[INFO] [stderr]     Checking atk v0.16.0
[INFO] [stderr]     Checking pango v0.16.5
[INFO] [stderr]     Checking gdk-pixbuf v0.16.7
[INFO] [stderr]     Checking pangocairo v0.16.3
[INFO] [stderr]     Checking gdk v0.16.2
[INFO] [stderr]     Checking piet-cairo v0.6.2
[INFO] [stderr]     Checking piet-common v0.6.2
[INFO] [stderr]     Checking druid v0.8.3 (https://github.com/linebender/druid.git#04177239)
[INFO] [stdout] warning: field `release_time` is never read
[INFO] [stdout]   --> src/core/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct VersionSource {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub release_time: String
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:42:78
[INFO] [stdout]    |
[INFO] [stdout] 42 | ...   let mut launcher_profiles = File::create(path.clone().join("launcher_profiles.json")).expect("Could not create Launcher Profil...
[INFO] [stdout]    |                                                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 42 -                                 let mut launcher_profiles = File::create(path.clone().join("launcher_profiles.json")).expect("Could not create Launcher Profiles!");
[INFO] [stdout] 42 +                                 let mut launcher_profiles = File::create(path.join("launcher_profiles.json")).expect("Could not create Launcher Profiles!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/main.rs:53:72
[INFO] [stdout]    |
[INFO] [stdout] 53 | ...                   println!("Game Directory changed: {}", DIR);
[INFO] [stdout]    |                                                              ^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/main.rs:60:69
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     unsafe { println!("Current Game directory: {}", DIR); }
[INFO] [stdout]    |                                                                     ^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:121:55
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 unsafe { install(source, String::from(&DIR), time_out, pool_size).expect("Error while installing Minecraft!"); }
[INFO] [stdout]     |                                                       ^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 unsafe { install(source, String::from(&raw const DIR), time_out, pool_size).expect("Error while installing Minecraft!"); }
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:127:49
[INFO] [stdout]     |
[INFO] [stdout] 127 |                     for i in read_dir(Path::new(&DIR).join("versions")).unwrap() {
[INFO] [stdout]     |                                                 ^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 127 |                     for i in read_dir(Path::new(&raw const DIR).join("versions")).unwrap() {
[INFO] [stdout]     |                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:147:59
[INFO] [stdout]     |
[INFO] [stdout] 147 |                         let x = launch(args[1], Path::new(&DIR), Path::new(args[2]));
[INFO] [stdout]     |                                                           ^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 147 |                         let x = launch(args[1], Path::new(&raw const DIR), Path::new(args[2]));
[INFO] [stdout]     |                                                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:39:44
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 create_dir_all(extract_path.clone().join(buf.name())).expect("Could not crate directory!");
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 39 -                 create_dir_all(extract_path.clone().join(buf.name())).expect("Could not crate directory!");
[INFO] [stdout] 39 +                 create_dir_all(extract_path.join(buf.name())).expect("Could not crate directory!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:41:57
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 let mut file = File::create(extract_path.clone().join(buf.name())).expect("Could not create extracted file!");
[INFO] [stdout]    |                                                         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 41 -                 let mut file = File::create(extract_path.clone().join(buf.name())).expect("Could not create extracted file!");
[INFO] [stdout] 41 +                 let mut file = File::create(extract_path.join(buf.name())).expect("Could not create extracted file!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:67:32
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let binding = versions_path.clone().join(String::from(&source.version_id) + ".json");
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 67 -     let binding = versions_path.clone().join(String::from(&source.version_id) + ".json");
[INFO] [stdout] 67 +     let binding = versions_path.join(String::from(&source.version_id) + ".json");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:69:32
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let binding = versions_path.clone().join("natives");
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 69 -     let binding = versions_path.clone().join("natives");
[INFO] [stdout] 69 +     let binding = versions_path.join("natives");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:88:32
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let binding = versions_path.clone().join(String::from(&source.version_id) + ".jar");
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 88 -     let binding = versions_path.clone().join(String::from(&source.version_id) + ".jar");
[INFO] [stdout] 88 +     let binding = versions_path.join(String::from(&source.version_id) + ".jar");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:115:41
[INFO] [stdout]     |
[INFO] [stdout] 115 |             let file_path = library_path.clone().join(library["downloads"]["artifact"]["path"].as_str().unwrap());
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 115 -             let file_path = library_path.clone().join(library["downloads"]["artifact"]["path"].as_str().unwrap());
[INFO] [stdout] 115 +             let file_path = library_path.join(library["downloads"]["artifact"]["path"].as_str().unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:118:49
[INFO] [stdout]     |
[INFO] [stdout] 118 |             let file = File::create(library_path.clone().join(library["downloads"]["artifact"]["path"].as_str().unwrap())).unwrap();
[INFO] [stdout]     |                                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 118 -             let file = File::create(library_path.clone().join(library["downloads"]["artifact"]["path"].as_str().unwrap())).unwrap();
[INFO] [stdout] 118 +             let file = File::create(library_path.join(library["downloads"]["artifact"]["path"].as_str().unwrap())).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:144:44
[INFO] [stdout]     |
[INFO] [stdout] 144 | ...   create_dir_all(library_path.clone().join(natives["path"].as_str().unwrap()).as_path().parent().unwrap()).expect("Could not cr...
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 144 -                 create_dir_all(library_path.clone().join(natives["path"].as_str().unwrap()).as_path().parent().unwrap()).expect("Could not create native directory!");
[INFO] [stdout] 144 +                 create_dir_all(library_path.join(natives["path"].as_str().unwrap()).as_path().parent().unwrap()).expect("Could not create native directory!");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:145:53
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...   let file = File::create(library_path.clone().join(natives["path"].as_str().unwrap()).as_path()).expect("Could not create nati...
[INFO] [stdout]     |                                           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 145 -                 let file = File::create(library_path.clone().join(natives["path"].as_str().unwrap()).as_path()).expect("Could not create native library!");
[INFO] [stdout] 145 +                 let file = File::create(library_path.join(natives["path"].as_str().unwrap()).as_path()).expect("Could not create native library!");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:154:30
[INFO] [stdout]     |
[INFO] [stdout] 154 |     let binding = assets_path.clone().join("indexes").join(String::from(asset_index["id"].as_str().unwrap()) + ".json");
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 154 -     let binding = assets_path.clone().join("indexes").join(String::from(asset_index["id"].as_str().unwrap()) + ".json");
[INFO] [stdout] 154 +     let binding = assets_path.join("indexes").join(String::from(asset_index["id"].as_str().unwrap()) + ".json");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:174:31
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let temp = assets_path.clone().join(format!("objects/{}", hash_short));
[INFO] [stdout]     |                               ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 174 -         let temp = assets_path.clone().join(format!("objects/{}", hash_short));
[INFO] [stdout] 174 +         let temp = assets_path.join(format!("objects/{}", hash_short));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:178:28
[INFO] [stdout]     |
[INFO] [stdout] 178 |         create_dir_all(path.clone()).expect("Could not create parent directories for Asset!");
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 178 -         create_dir_all(path.clone()).expect("Could not create parent directories for Asset!");
[INFO] [stdout] 178 +         create_dir_all(path).expect("Could not create parent directories for Asset!");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:33:19
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let temp = dir.clone().join("versions").join(name);
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 33 -     let temp = dir.clone().join("versions").join(name);
[INFO] [stdout] 33 +     let temp = dir.join("versions").join(name);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let temp = dir.clone().join("libraries");
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 39 -     let temp = dir.clone().join("libraries");
[INFO] [stdout] 39 +     let temp = dir.join("libraries");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:45:19
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let temp = dir.clone().join("assets");
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 45 -     let temp = dir.clone().join("assets");
[INFO] [stdout] 45 +     let temp = dir.join("assets");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:53:43
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut json = File::open(versions_dir.clone().join(format!("{}.json", name))).expect("Could not open JSON!");
[INFO] [stdout]    |                                           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 53 -     let mut json = File::open(versions_dir.clone().join(format!("{}.json", name))).expect("Could not open JSON!");
[INFO] [stdout] 53 +     let mut json = File::open(versions_dir.join(format!("{}.json", name))).expect("Could not open JSON!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:64:40
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let versions_dir = versions_dir.clone().parent().unwrap();
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 64 -         let versions_dir = versions_dir.clone().parent().unwrap();
[INFO] [stdout] 64 +         let versions_dir = versions_dir.parent().unwrap();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:67:39
[INFO] [stdout]    |
[INFO] [stdout] 67 |         for i in read_dir(versions_dir.clone()).unwrap() {
[INFO] [stdout]    |                                       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 67 -         for i in read_dir(versions_dir.clone()).unwrap() {
[INFO] [stdout] 67 +         for i in read_dir(versions_dir).unwrap() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:70:36
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let path = versions_dir.clone().join(name).join(format!("{}.json", name));
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 70 -             let path = versions_dir.clone().join(name).join(format!("{}.json", name));
[INFO] [stdout] 70 +             let path = versions_dir.join(name).join(format!("{}.json", name));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:73:55
[INFO] [stdout]    |
[INFO] [stdout] 73 | ...   let mut file = File::open(versions_dir.clone().join(name).join(format!("{}.json", name))).expect("Could not open file!");
[INFO] [stdout]    |                                             ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 73 -                 let mut file = File::open(versions_dir.clone().join(name).join(format!("{}.json", name))).expect("Could not open file!");
[INFO] [stdout] 73 +                 let mut file = File::open(versions_dir.join(name).join(format!("{}.json", name))).expect("Could not open file!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 95 |     if !dir.clone().join("assets/logging.xml").exists() {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 95 -     if !dir.clone().join("assets/logging.xml").exists() {
[INFO] [stdout] 95 +     if !dir.join("assets/logging.xml").exists() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:96:37
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut x = File::create(dir.clone().join("assets/logging.xml")).unwrap();
[INFO] [stdout]    |                                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 96 -         let mut x = File::create(dir.clone().join("assets/logging.xml")).unwrap();
[INFO] [stdout] 96 +         let mut x = File::create(dir.join("assets/logging.xml")).unwrap();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:140:64
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let arg = arg.replace("${assets_root}", to_absolute(dir.clone().join("assets").as_path()).to_str().unwrap());
[INFO] [stdout]     |                                                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 140 -         let arg = arg.replace("${assets_root}", to_absolute(dir.clone().join("assets").as_path()).to_str().unwrap());
[INFO] [stdout] 140 +         let arg = arg.replace("${assets_root}", to_absolute(dir.join("assets").as_path()).to_str().unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:141:64
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let arg = arg.replace("${game_assets}", to_absolute(dir.clone().join("assets").as_path()).to_str().unwrap());
[INFO] [stdout]     |                                                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 141 -         let arg = arg.replace("${game_assets}", to_absolute(dir.clone().join("assets").as_path()).to_str().unwrap());
[INFO] [stdout] 141 +         let arg = arg.replace("${game_assets}", to_absolute(dir.join("assets").as_path()).to_str().unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:163:78
[INFO] [stdout]     |
[INFO] [stdout] 163 |     arguments.push(format!("-Djava.library.path={}", to_absolute(versions_dir.clone().join("natives").as_path()).to_str().unwrap()));
[INFO] [stdout]     |                                                                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 163 -     arguments.push(format!("-Djava.library.path={}", to_absolute(versions_dir.clone().join("natives").as_path()).to_str().unwrap()));
[INFO] [stdout] 163 +     arguments.push(format!("-Djava.library.path={}", to_absolute(versions_dir.join("natives").as_path()).to_str().unwrap()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:237:46
[INFO] [stdout]     |
[INFO] [stdout] 237 | ...   classpath += to_absolute(versions_dir.clone().parent().unwrap().join(inherit_id.clone()).join(format!("{}.jar", inherit_id.cl...
[INFO] [stdout]     |                                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 237 -         classpath += to_absolute(versions_dir.clone().parent().unwrap().join(inherit_id.clone()).join(format!("{}.jar", inherit_id.clone())).as_path()).to_str().unwrap();
[INFO] [stdout] 237 +         classpath += to_absolute(versions_dir.parent().unwrap().join(inherit_id.clone()).join(format!("{}.jar", inherit_id.clone())).as_path()).to_str().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:255:41
[INFO] [stdout]     |
[INFO] [stdout] 255 |                 classpath += library_dir.clone().join(i["downloads"]["artifact"]["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 255 -                 classpath += library_dir.clone().join(i["downloads"]["artifact"]["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout] 255 +                 classpath += library_dir.join(i["downloads"]["artifact"]["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:271:45
[INFO] [stdout]     |
[INFO] [stdout] 271 |                     classpath += library_dir.clone().join(natives["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 271 -                     classpath += library_dir.clone().join(natives["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout] 271 +                     classpath += library_dir.join(natives["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:276:37
[INFO] [stdout]     |
[INFO] [stdout] 276 |             classpath += library_dir.clone().join(name_to_path(String::from(i["name"].as_str().unwrap()))).to_str().unwrap();
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 276 -             classpath += library_dir.clone().join(name_to_path(String::from(i["name"].as_str().unwrap()))).to_str().unwrap();
[INFO] [stdout] 276 +             classpath += library_dir.join(name_to_path(String::from(i["name"].as_str().unwrap()))).to_str().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `release_time` is never read
[INFO] [stdout]   --> src/core/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct VersionSource {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub release_time: String
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:42:78
[INFO] [stdout]    |
[INFO] [stdout] 42 | ...   let mut launcher_profiles = File::create(path.clone().join("launcher_profiles.json")).expect("Could not create Launcher Profil...
[INFO] [stdout]    |                                                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 42 -                                 let mut launcher_profiles = File::create(path.clone().join("launcher_profiles.json")).expect("Could not create Launcher Profiles!");
[INFO] [stdout] 42 +                                 let mut launcher_profiles = File::create(path.join("launcher_profiles.json")).expect("Could not create Launcher Profiles!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/main.rs:53:72
[INFO] [stdout]    |
[INFO] [stdout] 53 | ...                   println!("Game Directory changed: {}", DIR);
[INFO] [stdout]    |                                                              ^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/main.rs:60:69
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     unsafe { println!("Current Game directory: {}", DIR); }
[INFO] [stdout]    |                                                                     ^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:121:55
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 unsafe { install(source, String::from(&DIR), time_out, pool_size).expect("Error while installing Minecraft!"); }
[INFO] [stdout]     |                                                       ^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 121 |                 unsafe { install(source, String::from(&raw const DIR), time_out, pool_size).expect("Error while installing Minecraft!"); }
[INFO] [stdout]     |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:127:49
[INFO] [stdout]     |
[INFO] [stdout] 127 |                     for i in read_dir(Path::new(&DIR).join("versions")).unwrap() {
[INFO] [stdout]     |                                                 ^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 127 |                     for i in read_dir(Path::new(&raw const DIR).join("versions")).unwrap() {
[INFO] [stdout]     |                                                  +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/main.rs:147:59
[INFO] [stdout]     |
[INFO] [stdout] 147 |                         let x = launch(args[1], Path::new(&DIR), Path::new(args[2]));
[INFO] [stdout]     |                                                           ^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 147 |                         let x = launch(args[1], Path::new(&raw const DIR), Path::new(args[2]));
[INFO] [stdout]     |                                                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:39:44
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 create_dir_all(extract_path.clone().join(buf.name())).expect("Could not crate directory!");
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 39 -                 create_dir_all(extract_path.clone().join(buf.name())).expect("Could not crate directory!");
[INFO] [stdout] 39 +                 create_dir_all(extract_path.join(buf.name())).expect("Could not crate directory!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:41:57
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 let mut file = File::create(extract_path.clone().join(buf.name())).expect("Could not create extracted file!");
[INFO] [stdout]    |                                                         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 41 -                 let mut file = File::create(extract_path.clone().join(buf.name())).expect("Could not create extracted file!");
[INFO] [stdout] 41 +                 let mut file = File::create(extract_path.join(buf.name())).expect("Could not create extracted file!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:67:32
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let binding = versions_path.clone().join(String::from(&source.version_id) + ".json");
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 67 -     let binding = versions_path.clone().join(String::from(&source.version_id) + ".json");
[INFO] [stdout] 67 +     let binding = versions_path.join(String::from(&source.version_id) + ".json");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:69:32
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let binding = versions_path.clone().join("natives");
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 69 -     let binding = versions_path.clone().join("natives");
[INFO] [stdout] 69 +     let binding = versions_path.join("natives");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/install.rs:88:32
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let binding = versions_path.clone().join(String::from(&source.version_id) + ".jar");
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 88 -     let binding = versions_path.clone().join(String::from(&source.version_id) + ".jar");
[INFO] [stdout] 88 +     let binding = versions_path.join(String::from(&source.version_id) + ".jar");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:115:41
[INFO] [stdout]     |
[INFO] [stdout] 115 |             let file_path = library_path.clone().join(library["downloads"]["artifact"]["path"].as_str().unwrap());
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 115 -             let file_path = library_path.clone().join(library["downloads"]["artifact"]["path"].as_str().unwrap());
[INFO] [stdout] 115 +             let file_path = library_path.join(library["downloads"]["artifact"]["path"].as_str().unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:118:49
[INFO] [stdout]     |
[INFO] [stdout] 118 |             let file = File::create(library_path.clone().join(library["downloads"]["artifact"]["path"].as_str().unwrap())).unwrap();
[INFO] [stdout]     |                                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 118 -             let file = File::create(library_path.clone().join(library["downloads"]["artifact"]["path"].as_str().unwrap())).unwrap();
[INFO] [stdout] 118 +             let file = File::create(library_path.join(library["downloads"]["artifact"]["path"].as_str().unwrap())).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:144:44
[INFO] [stdout]     |
[INFO] [stdout] 144 | ...   create_dir_all(library_path.clone().join(natives["path"].as_str().unwrap()).as_path().parent().unwrap()).expect("Could not cr...
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 144 -                 create_dir_all(library_path.clone().join(natives["path"].as_str().unwrap()).as_path().parent().unwrap()).expect("Could not create native directory!");
[INFO] [stdout] 144 +                 create_dir_all(library_path.join(natives["path"].as_str().unwrap()).as_path().parent().unwrap()).expect("Could not create native directory!");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:145:53
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...   let file = File::create(library_path.clone().join(natives["path"].as_str().unwrap()).as_path()).expect("Could not create nati...
[INFO] [stdout]     |                                           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 145 -                 let file = File::create(library_path.clone().join(natives["path"].as_str().unwrap()).as_path()).expect("Could not create native library!");
[INFO] [stdout] 145 +                 let file = File::create(library_path.join(natives["path"].as_str().unwrap()).as_path()).expect("Could not create native library!");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:154:30
[INFO] [stdout]     |
[INFO] [stdout] 154 |     let binding = assets_path.clone().join("indexes").join(String::from(asset_index["id"].as_str().unwrap()) + ".json");
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 154 -     let binding = assets_path.clone().join("indexes").join(String::from(asset_index["id"].as_str().unwrap()) + ".json");
[INFO] [stdout] 154 +     let binding = assets_path.join("indexes").join(String::from(asset_index["id"].as_str().unwrap()) + ".json");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:174:31
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let temp = assets_path.clone().join(format!("objects/{}", hash_short));
[INFO] [stdout]     |                               ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 174 -         let temp = assets_path.clone().join(format!("objects/{}", hash_short));
[INFO] [stdout] 174 +         let temp = assets_path.join(format!("objects/{}", hash_short));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/install.rs:178:28
[INFO] [stdout]     |
[INFO] [stdout] 178 |         create_dir_all(path.clone()).expect("Could not create parent directories for Asset!");
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 178 -         create_dir_all(path.clone()).expect("Could not create parent directories for Asset!");
[INFO] [stdout] 178 +         create_dir_all(path).expect("Could not create parent directories for Asset!");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:33:19
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let temp = dir.clone().join("versions").join(name);
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 33 -     let temp = dir.clone().join("versions").join(name);
[INFO] [stdout] 33 +     let temp = dir.join("versions").join(name);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let temp = dir.clone().join("libraries");
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 39 -     let temp = dir.clone().join("libraries");
[INFO] [stdout] 39 +     let temp = dir.join("libraries");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:45:19
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let temp = dir.clone().join("assets");
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 45 -     let temp = dir.clone().join("assets");
[INFO] [stdout] 45 +     let temp = dir.join("assets");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:53:43
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut json = File::open(versions_dir.clone().join(format!("{}.json", name))).expect("Could not open JSON!");
[INFO] [stdout]    |                                           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 53 -     let mut json = File::open(versions_dir.clone().join(format!("{}.json", name))).expect("Could not open JSON!");
[INFO] [stdout] 53 +     let mut json = File::open(versions_dir.join(format!("{}.json", name))).expect("Could not open JSON!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:64:40
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let versions_dir = versions_dir.clone().parent().unwrap();
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 64 -         let versions_dir = versions_dir.clone().parent().unwrap();
[INFO] [stdout] 64 +         let versions_dir = versions_dir.parent().unwrap();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:67:39
[INFO] [stdout]    |
[INFO] [stdout] 67 |         for i in read_dir(versions_dir.clone()).unwrap() {
[INFO] [stdout]    |                                       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 67 -         for i in read_dir(versions_dir.clone()).unwrap() {
[INFO] [stdout] 67 +         for i in read_dir(versions_dir).unwrap() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:70:36
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let path = versions_dir.clone().join(name).join(format!("{}.json", name));
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 70 -             let path = versions_dir.clone().join(name).join(format!("{}.json", name));
[INFO] [stdout] 70 +             let path = versions_dir.join(name).join(format!("{}.json", name));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:73:55
[INFO] [stdout]    |
[INFO] [stdout] 73 | ...   let mut file = File::open(versions_dir.clone().join(name).join(format!("{}.json", name))).expect("Could not open file!");
[INFO] [stdout]    |                                             ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 73 -                 let mut file = File::open(versions_dir.clone().join(name).join(format!("{}.json", name))).expect("Could not open file!");
[INFO] [stdout] 73 +                 let mut file = File::open(versions_dir.join(name).join(format!("{}.json", name))).expect("Could not open file!");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 95 |     if !dir.clone().join("assets/logging.xml").exists() {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 95 -     if !dir.clone().join("assets/logging.xml").exists() {
[INFO] [stdout] 95 +     if !dir.join("assets/logging.xml").exists() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/core/launcher.rs:96:37
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut x = File::create(dir.clone().join("assets/logging.xml")).unwrap();
[INFO] [stdout]    |                                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 96 -         let mut x = File::create(dir.clone().join("assets/logging.xml")).unwrap();
[INFO] [stdout] 96 +         let mut x = File::create(dir.join("assets/logging.xml")).unwrap();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:140:64
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let arg = arg.replace("${assets_root}", to_absolute(dir.clone().join("assets").as_path()).to_str().unwrap());
[INFO] [stdout]     |                                                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 140 -         let arg = arg.replace("${assets_root}", to_absolute(dir.clone().join("assets").as_path()).to_str().unwrap());
[INFO] [stdout] 140 +         let arg = arg.replace("${assets_root}", to_absolute(dir.join("assets").as_path()).to_str().unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:141:64
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let arg = arg.replace("${game_assets}", to_absolute(dir.clone().join("assets").as_path()).to_str().unwrap());
[INFO] [stdout]     |                                                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 141 -         let arg = arg.replace("${game_assets}", to_absolute(dir.clone().join("assets").as_path()).to_str().unwrap());
[INFO] [stdout] 141 +         let arg = arg.replace("${game_assets}", to_absolute(dir.join("assets").as_path()).to_str().unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:163:78
[INFO] [stdout]     |
[INFO] [stdout] 163 |     arguments.push(format!("-Djava.library.path={}", to_absolute(versions_dir.clone().join("natives").as_path()).to_str().unwrap()));
[INFO] [stdout]     |                                                                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 163 -     arguments.push(format!("-Djava.library.path={}", to_absolute(versions_dir.clone().join("natives").as_path()).to_str().unwrap()));
[INFO] [stdout] 163 +     arguments.push(format!("-Djava.library.path={}", to_absolute(versions_dir.join("natives").as_path()).to_str().unwrap()));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:237:46
[INFO] [stdout]     |
[INFO] [stdout] 237 | ...   classpath += to_absolute(versions_dir.clone().parent().unwrap().join(inherit_id.clone()).join(format!("{}.jar", inherit_id.cl...
[INFO] [stdout]     |                                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 237 -         classpath += to_absolute(versions_dir.clone().parent().unwrap().join(inherit_id.clone()).join(format!("{}.jar", inherit_id.clone())).as_path()).to_str().unwrap();
[INFO] [stdout] 237 +         classpath += to_absolute(versions_dir.parent().unwrap().join(inherit_id.clone()).join(format!("{}.jar", inherit_id.clone())).as_path()).to_str().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:255:41
[INFO] [stdout]     |
[INFO] [stdout] 255 |                 classpath += library_dir.clone().join(i["downloads"]["artifact"]["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 255 -                 classpath += library_dir.clone().join(i["downloads"]["artifact"]["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout] 255 +                 classpath += library_dir.join(i["downloads"]["artifact"]["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:271:45
[INFO] [stdout]     |
[INFO] [stdout] 271 |                     classpath += library_dir.clone().join(natives["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 271 -                     classpath += library_dir.clone().join(natives["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout] 271 +                     classpath += library_dir.join(natives["path"].as_str().unwrap()).to_str().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/core/launcher.rs:276:37
[INFO] [stdout]     |
[INFO] [stdout] 276 |             classpath += library_dir.clone().join(name_to_path(String::from(i["name"].as_str().unwrap()))).to_str().unwrap();
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 276 -             classpath += library_dir.clone().join(name_to_path(String::from(i["name"].as_str().unwrap()))).to_str().unwrap();
[INFO] [stdout] 276 +             classpath += library_dir.join(name_to_path(String::from(i["name"].as_str().unwrap()))).to_str().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 31s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: openssl v0.10.52
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 7`
[INFO] running `Command { std: "docker" "inspect" "5969ad985240f5d4402821cb2f2bdead15220a479a939767063816c89d49d309", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5969ad985240f5d4402821cb2f2bdead15220a479a939767063816c89d49d309", kill_on_drop: false }`
[INFO] [stdout] 5969ad985240f5d4402821cb2f2bdead15220a479a939767063816c89d49d309
