[INFO] fetching crate krate_info 0.1.1... [INFO] checking krate_info-0.1.1 against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] extracting crate krate_info 0.1.1 into /workspace/builds/worker-4-tc1/source [INFO] validating manifest of crates.io crate krate_info 0.1.1 on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate krate_info 0.1.1 [INFO] finished tweaking crates.io crate krate_info 0.1.1 [INFO] tweaked toml for crates.io crate krate_info 0.1.1 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate crates.io crate krate_info 0.1.1 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" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded crates_io_api v0.8.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 41bfd55ac9520ae410c23b0b37c96ac44a7ce228d29a17984e837e5e462fff8b [INFO] running `Command { std: "docker" "start" "-a" "41bfd55ac9520ae410c23b0b37c96ac44a7ce228d29a17984e837e5e462fff8b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "41bfd55ac9520ae410c23b0b37c96ac44a7ce228d29a17984e837e5e462fff8b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "41bfd55ac9520ae410c23b0b37c96ac44a7ce228d29a17984e837e5e462fff8b", kill_on_drop: false }` [INFO] [stdout] 41bfd55ac9520ae410c23b0b37c96ac44a7ce228d29a17984e837e5e462fff8b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5cf4007034c5c98f1c33872254d84aaa2905c62c3a228f381d781b4d6e1f9a4e [INFO] running `Command { std: "docker" "start" "-a" "5cf4007034c5c98f1c33872254d84aaa2905c62c3a228f381d781b4d6e1f9a4e", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.67 [INFO] [stderr] Compiling libc v0.2.148 [INFO] [stderr] Checking pin-project-lite v0.2.13 [INFO] [stderr] Compiling futures-core v0.3.28 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Checking once_cell v1.18.0 [INFO] [stderr] Compiling pkg-config v0.3.27 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Checking bytes v1.5.0 [INFO] [stderr] Compiling futures-channel v0.3.28 [INFO] [stderr] Checking futures-sink v0.3.28 [INFO] [stderr] Checking itoa v1.0.9 [INFO] [stderr] Compiling futures-task v0.3.28 [INFO] [stderr] Compiling futures-util v0.3.28 [INFO] [stderr] Checking memchr v2.6.3 [INFO] [stderr] Checking futures-io v0.3.28 [INFO] [stderr] Compiling serde v1.0.188 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking tracing-core v0.1.31 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling syn v2.0.37 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Compiling openssl v0.10.57 [INFO] [stderr] Checking socket2 v0.5.4 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking mio v0.8.8 [INFO] [stderr] Checking tracing v0.1.37 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking http v0.2.9 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Checking hashbrown v0.12.3 [INFO] [stderr] Checking bitflags v2.4.0 [INFO] [stderr] Checking tinyvec v1.6.0 [INFO] [stderr] Checking tokio v1.32.0 [INFO] [stderr] Compiling httparse v1.8.0 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Checking try-lock v0.2.4 [INFO] [stderr] Checking percent-encoding v2.3.0 [INFO] [stderr] Checking form_urlencoded v1.2.0 [INFO] [stderr] Checking unicode-normalization v0.1.22 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking http-body v0.4.5 [INFO] [stderr] Checking socket2 v0.4.9 [INFO] [stderr] Compiling num-traits v0.2.16 [INFO] [stderr] Checking unicode-bidi v0.3.13 [INFO] [stderr] Compiling serde_json v1.0.107 [INFO] [stderr] Checking ryu v1.0.15 [INFO] [stderr] Compiling openssl-sys v0.9.93 [INFO] [stderr] Checking tower-service v0.3.2 [INFO] [stderr] Checking encoding_rs v0.8.33 [INFO] [stderr] Checking idna v0.4.0 [INFO] [stderr] Compiling semver v1.0.18 [INFO] [stderr] Checking base64 v0.21.4 [INFO] [stderr] Checking url v2.4.1 [INFO] [stderr] Checking ipnet v2.8.0 [INFO] [stderr] Compiling futures-macro v0.3.28 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling serde_derive v1.0.188 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking chrono v0.4.31 [INFO] [stderr] Checking serde_path_to_error v0.1.14 [INFO] [stderr] Checking tokio-util v0.7.8 [INFO] [stderr] Checking h2 v0.3.21 [INFO] [stderr] Checking futures-executor v0.3.28 [INFO] [stderr] Checking futures v0.3.28 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking hyper v0.14.27 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.20 [INFO] [stderr] Checking crates_io_api v0.8.1 [INFO] [stderr] Checking krate_info v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Level`, `error`, `info`, and `log_enabled` [INFO] [stdout] --> src/krates.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{debug, error, info, log_enabled, Level}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap` and `error::Error` [INFO] [stdout] --> src/krates.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | collections::{HashMap, HashSet}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 6 | error::Error, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Level`, `error`, `info`, and `log_enabled` [INFO] [stdout] --> src/krates.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{debug, error, info, log_enabled, Level}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap` and `error::Error` [INFO] [stdout] --> src/krates.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | collections::{HashMap, HashSet}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 6 | error::Error, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/lib.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | k.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 69 | let _ = k.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | self.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 78 | let _ = self.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | self.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 103 | let _ = self.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/krates.rs:126:36 [INFO] [stdout] | [INFO] [stdout] 126 | let tarball_path = dest_dir.clone().join(format!("{:#}.tar.gz", self.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] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 126 - let tarball_path = dest_dir.clone().join(format!("{:#}.tar.gz", self.name)); [INFO] [stdout] 126 + let tarball_path = dest_dir.join(format!("{:#}.tar.gz", self.name)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | k.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 69 | let _ = k.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | self.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 78 | let _ = self.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | self.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 103 | let _ = self.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/krates.rs:126:36 [INFO] [stdout] | [INFO] [stdout] 126 | let tarball_path = dest_dir.clone().join(format!("{:#}.tar.gz", self.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] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 126 - let tarball_path = dest_dir.clone().join(format!("{:#}.tar.gz", self.name)); [INFO] [stdout] 126 + let tarball_path = dest_dir.join(format!("{:#}.tar.gz", self.name)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 7 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Level`, `error`, `info`, and `log_enabled` [INFO] [stdout] --> src/krates.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{debug, error, info, log_enabled, Level}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap` and `error::Error` [INFO] [stdout] --> src/krates.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | collections::{HashMap, HashSet}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 6 | error::Error, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Level`, `error`, `info`, and `log_enabled` [INFO] [stdout] --> src/krates.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{debug, error, info, log_enabled, Level}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap` and `error::Error` [INFO] [stdout] --> src/krates.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | collections::{HashMap, HashSet}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 6 | error::Error, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `owners` [INFO] [stdout] --> src/main.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | let owners = krate.get_crate_owners().unwrap(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_owners` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `metadata` [INFO] [stdout] --> src/main.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | let metadata = krate.get_krate_meta().unwrap(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/krates.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | NoMetadataError(crates_io_api::Error), [INFO] [stdout] | --------------- ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `KrateError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 33 | NoMetadataError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CursorError`, `DownloadError`, and `FileCreationError` are never constructed [INFO] [stdout] --> src/krates.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum KrateError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 30 | CursorError(std::io::Error), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 31 | DownloadError(reqwest::Error), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 32 | FileCreationError(std::io::Error), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KrateError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/krates.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl Krate { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn from_name(name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn new_with_remote_info(name: &str, version: Version) -> Krate { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn download(&mut self, dest_dir: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn get_features_raw(&self) -> &Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub fn get_download_url(&mut self) -> Result<&str, KrateError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn get_features(&mut self) -> Result<&Vec, KrateError> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn as_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | k.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 69 | let _ = k.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | self.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 78 | let _ = self.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | self.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 103 | let _ = self.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/krates.rs:126:36 [INFO] [stdout] | [INFO] [stdout] 126 | let tarball_path = dest_dir.clone().join(format!("{:#}.tar.gz", self.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] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 126 - let tarball_path = dest_dir.clone().join(format!("{:#}.tar.gz", self.name)); [INFO] [stdout] 126 + let tarball_path = dest_dir.join(format!("{:#}.tar.gz", self.name)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `owners` [INFO] [stdout] --> src/main.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | let owners = krate.get_crate_owners().unwrap(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_owners` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `metadata` [INFO] [stdout] --> src/main.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | let metadata = krate.get_krate_meta().unwrap(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/krates.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | NoMetadataError(crates_io_api::Error), [INFO] [stdout] | --------------- ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `KrateError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 33 | NoMetadataError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CursorError`, `DownloadError`, and `FileCreationError` are never constructed [INFO] [stdout] --> src/krates.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum KrateError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 30 | CursorError(std::io::Error), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 31 | DownloadError(reqwest::Error), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 32 | FileCreationError(std::io::Error), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KrateError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/krates.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl Krate { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn from_name(name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn new_with_remote_info(name: &str, version: Version) -> Krate { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn download(&mut self, dest_dir: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn get_features_raw(&self) -> &Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub fn get_download_url(&mut self) -> Result<&str, KrateError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn get_features(&mut self) -> Result<&Vec, KrateError> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn as_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | k.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 69 | let _ = k.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | self.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 78 | let _ = self.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 11 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/krates.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | self.fill_information_from_crates_api(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 103 | let _ = self.fill_information_from_crates_api(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/krates.rs:126:36 [INFO] [stdout] | [INFO] [stdout] 126 | let tarball_path = dest_dir.clone().join(format!("{:#}.tar.gz", self.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] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 126 - let tarball_path = dest_dir.clone().join(format!("{:#}.tar.gz", self.name)); [INFO] [stdout] 126 + let tarball_path = dest_dir.join(format!("{:#}.tar.gz", self.name)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 11 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.25s [INFO] running `Command { std: "docker" "inspect" "5cf4007034c5c98f1c33872254d84aaa2905c62c3a228f381d781b4d6e1f9a4e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5cf4007034c5c98f1c33872254d84aaa2905c62c3a228f381d781b4d6e1f9a4e", kill_on_drop: false }` [INFO] [stdout] 5cf4007034c5c98f1c33872254d84aaa2905c62c3a228f381d781b4d6e1f9a4e