[INFO] fetching crate gix-hash 0.23.0... [INFO] testing gix-hash-0.23.0 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate gix-hash 0.23.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate gix-hash 0.23.0 [INFO] finished tweaking crates.io crate gix-hash 0.23.0 [INFO] tweaked toml for crates.io crate gix-hash 0.23.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate gix-hash 0.23.0 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate gix-hash 0.23.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded gix-features v0.46.2 [INFO] [stderr] Downloaded prodash v31.0.0 [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b6e15fb3e3e14b5363cf4a8ac1ebe96ec9dce5e10f051a04b5ef9bc565b17834 [INFO] running `Command { std: "docker" "start" "-a" "b6e15fb3e3e14b5363cf4a8ac1ebe96ec9dce5e10f051a04b5ef9bc565b17834", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b6e15fb3e3e14b5363cf4a8ac1ebe96ec9dce5e10f051a04b5ef9bc565b17834", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b6e15fb3e3e14b5363cf4a8ac1ebe96ec9dce5e10f051a04b5ef9bc565b17834", kill_on_drop: false }` [INFO] [stdout] b6e15fb3e3e14b5363cf4a8ac1ebe96ec9dce5e10f051a04b5ef9bc565b17834 [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8105d0b122d12d01e5d62f79c386337e8f2a90b2b612d8655cc0970462323e97 [INFO] running `Command { std: "docker" "start" "-a" "8105d0b122d12d01e5d62f79c386337e8f2a90b2b612d8655cc0970462323e97", kill_on_drop: false }` [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling heapless v0.8.0 [INFO] [stderr] Compiling gix-trace v0.1.18 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling hash32 v0.3.1 [INFO] [stderr] Compiling prodash v31.0.0 [INFO] [stderr] Compiling faster-hex v0.10.0 [INFO] [stderr] Compiling gix-features v0.46.2 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling gix-hash v0.23.0 (/opt/rustwide/workdir) [INFO] [stdout] error: Please set either the `sha1` or the `sha256` feature flag [INFO] [stdout] --> src/lib.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | compile_error!("Please set either the `sha1` or the `sha256` feature flag"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0665]: `#[derive(Default)]` on enum with no `#[default]` [INFO] [stdout] --> src/lib.rs:74:10 [INFO] [stdout] | [INFO] [stdout] 74 | #[derive(Default, PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone, Copy)] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | / pub enum Kind { [INFO] [stdout] 78 | | /// The SHA1 hash with 160 bits. [INFO] [stdout] 79 | | #[cfg_attr(feature = "sha1", default)] [INFO] [stdout] 80 | | #[cfg(feature = "sha1")] [INFO] [stdout] ... | [INFO] [stdout] 85 | | Sha256 = 2, [INFO] [stdout] 86 | | } [INFO] [stdout] | |_- this enum needs a unit variant marked with `#[default]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/kind.rs:66:31 [INFO] [stdout] | [INFO] [stdout] 66 | pub const fn longest() -> Self { [INFO] [stdout] | ------- ^^^^ expected `Kind`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/oid.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | / match self.kind() { [INFO] [stdout] 65 | | #[cfg(feature = "sha1")] [INFO] [stdout] 66 | | Kind::Sha1 => "Sha1", [INFO] [stdout] 67 | | #[cfg(feature = "sha256")] [INFO] [stdout] 68 | | Kind::Sha256 => "Sha256", [INFO] [stdout] 69 | | }, [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____________unreachable expression [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/object_id.rs:281:9 [INFO] [stdout] | [INFO] [stdout] 275 | / match self { [INFO] [stdout] 276 | | #[cfg(feature = "sha1")] [INFO] [stdout] 277 | | ObjectId::Sha1(_hash) => f.write_str("Sha1(")?, [INFO] [stdout] 278 | | #[cfg(feature = "sha256")] [INFO] [stdout] 279 | | ObjectId::Sha256(_) => f.write_str("Sha256(")?, [INFO] [stdout] 280 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 281 | / for b in self.as_bytes() { [INFO] [stdout] 282 | | write!(f, "{b:02x}")?; [INFO] [stdout] 283 | | } [INFO] [stdout] | |_________^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable call [INFO] [stdout] --> src/kind.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | Ok(match value { [INFO] [stdout] | _________^^_- [INFO] [stdout] | | | [INFO] [stdout] | | unreachable call [INFO] [stdout] 16 | | #[cfg(feature = "sha1")] [INFO] [stdout] 17 | | 1 => Kind::Sha1, [INFO] [stdout] 18 | | #[cfg(feature = "sha256")] [INFO] [stdout] 19 | | 2 => Kind::Sha256, [INFO] [stdout] 20 | | unknown => return Err(unknown), [INFO] [stdout] 21 | | }) [INFO] [stdout] | |_________- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable call [INFO] [stdout] --> src/kind.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | Ok(match s { [INFO] [stdout] | _________^^_- [INFO] [stdout] | | | [INFO] [stdout] | | unreachable call [INFO] [stdout] 30 | | #[cfg(feature = "sha1")] [INFO] [stdout] 31 | | "sha1" | "SHA1" | "SHA-1" => Kind::Sha1, [INFO] [stdout] 32 | | #[cfg(feature = "sha256")] [INFO] [stdout] 33 | | "sha256" | "SHA256" | "SHA-256" => Kind::Sha256, [INFO] [stdout] 34 | | other => return Err(other.into()), [INFO] [stdout] 35 | | }) [INFO] [stdout] | |_________- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/kind.rs:53:32 [INFO] [stdout] | [INFO] [stdout] 53 | pub const fn shortest() -> Self { [INFO] [stdout] | -------- ^^^^ expected `Kind`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable call [INFO] [stdout] --> src/kind.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | Some(match hex_len { [INFO] [stdout] | _________^^^^_- [INFO] [stdout] | | | [INFO] [stdout] | | unreachable call [INFO] [stdout] 117 | | #[cfg(feature = "sha1")] [INFO] [stdout] 118 | | 0..=SIZE_OF_SHA1_HEX_DIGEST => Kind::Sha1, [INFO] [stdout] 119 | | #[cfg(feature = "sha256")] [INFO] [stdout] 120 | | 0..=SIZE_OF_SHA256_HEX_DIGEST => Kind::Sha256, [INFO] [stdout] 121 | | _ => return None, [INFO] [stdout] 122 | | }) [INFO] [stdout] | |_________- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/kind.rs:180:27 [INFO] [stdout] | [INFO] [stdout] 180 | pub const fn all() -> &'static [Self] { [INFO] [stdout] | --- ^^^^^^^^^^^^^^^ expected `&[Kind]`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&'static [Kind]` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/oid.rs:64:19 [INFO] [stdout] | [INFO] [stdout] 64 | match self.kind() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | unreachable expression [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/oid.rs:64:19 [INFO] [stdout] | [INFO] [stdout] 64 | match self.kind() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/oid.rs:185:15 [INFO] [stdout] | [INFO] [stdout] 185 | match self.kind() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | unreachable expression [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/oid.rs:185:15 [INFO] [stdout] | [INFO] [stdout] 185 | match self.kind() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/oid.rs:196:15 [INFO] [stdout] | [INFO] [stdout] 196 | match self.kind() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | unreachable expression [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/oid.rs:196:15 [INFO] [stdout] | [INFO] [stdout] 196 | match self.kind() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/oid.rs:207:15 [INFO] [stdout] | [INFO] [stdout] 207 | match self.kind() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | unreachable expression [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/oid.rs:207:15 [INFO] [stdout] | [INFO] [stdout] 207 | match self.kind() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&mut hasher::_impl::Hasher` is non-empty [INFO] [stdout] --> src/hasher.rs:52:19 [INFO] [stdout] | [INFO] [stdout] 52 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `hasher::_impl::Hasher` defined here [INFO] [stdout] --> src/hasher.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum Hasher { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = note: the matched value is of type `&mut hasher::_impl::Hasher` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 52 ~ match self { [INFO] [stdout] 53 + _ => todo!(), [INFO] [stdout] 54 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/io.rs:49:69 [INFO] [stdout] | [INFO] [stdout] 49 | bytes_with_hasher(read, num_bytes_from_start, hasher(kind), progress, should_interrupt) [INFO] [stdout] | ------------ ^^^^^^^^ unreachable expression [INFO] [stdout] | | [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `hasher::_impl::Hasher`, which is uninhabited [INFO] [stdout] --> src/io.rs:49:55 [INFO] [stdout] | [INFO] [stdout] 49 | bytes_with_hasher(read, num_bytes_from_start, hasher(kind), progress, should_interrupt) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `progress` [INFO] [stdout] --> src/io.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | progress: &mut dyn gix_features::progress::Progress, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_progress` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `should_interrupt` [INFO] [stdout] --> src/io.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | should_interrupt: &std::sync::atomic::AtomicBool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_should_interrupt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/io.rs:82:18 [INFO] [stdout] | [INFO] [stdout] 82 | let id = hasher.try_finalize()?; [INFO] [stdout] | ---------------------^ [INFO] [stdout] | | [INFO] [stdout] | unreachable expression [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Result`, which is uninhabited [INFO] [stdout] --> src/io.rs:82:18 [INFO] [stdout] | [INFO] [stdout] 82 | let id = hasher.try_finalize()?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> src/io.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let start = std::time::Instant::now(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/io.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | let id = hasher.try_finalize()?; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/io.rs:115:20 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn new(inner: T, object_hash: crate::Kind) -> Self { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty [INFO] [stdout] --> src/object_id.rs:117:15 [INFO] [stdout] | [INFO] [stdout] 117 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `ObjectId` defined here [INFO] [stdout] --> src/object_id.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum ObjectId { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: the matched value is of type `&ObjectId` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 117 ~ match self { [INFO] [stdout] 118 + _ => todo!(), [INFO] [stdout] 119 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty [INFO] [stdout] --> src/object_id.rs:127:15 [INFO] [stdout] | [INFO] [stdout] 127 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `ObjectId` defined here [INFO] [stdout] --> src/object_id.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum ObjectId { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: the matched value is of type `&ObjectId` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 127 ~ match self { [INFO] [stdout] 128 + _ => todo!(), [INFO] [stdout] 129 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&mut ObjectId` is non-empty [INFO] [stdout] --> src/object_id.rs:137:15 [INFO] [stdout] | [INFO] [stdout] 137 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `ObjectId` defined here [INFO] [stdout] --> src/object_id.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum ObjectId { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: the matched value is of type `&mut ObjectId` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 137 ~ match self { [INFO] [stdout] 138 + _ => todo!(), [INFO] [stdout] 139 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty [INFO] [stdout] --> src/object_id.rs:183:15 [INFO] [stdout] | [INFO] [stdout] 183 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `ObjectId` defined here [INFO] [stdout] --> src/object_id.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum ObjectId { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: the matched value is of type `&ObjectId` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 183 ~ match self { [INFO] [stdout] 184 + _ => todo!(), [INFO] [stdout] 185 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/object_id.rs:194:18 [INFO] [stdout] | [INFO] [stdout] 194 | self == &Self::empty_blob(self.kind()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-----------^ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/object_id.rs:194:35 [INFO] [stdout] | [INFO] [stdout] 194 | self == &Self::empty_blob(self.kind()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/object_id.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | self == &Self::empty_blob(self.kind()) [INFO] [stdout] | ^----------------------------- [INFO] [stdout] | || [INFO] [stdout] | |any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited [INFO] [stdout] --> src/object_id.rs:194:18 [INFO] [stdout] | [INFO] [stdout] 194 | self == &Self::empty_blob(self.kind()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/object_id.rs:200:18 [INFO] [stdout] | [INFO] [stdout] 200 | self == &Self::empty_tree(self.kind()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-----------^ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/object_id.rs:200:35 [INFO] [stdout] | [INFO] [stdout] 200 | self == &Self::empty_tree(self.kind()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/object_id.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 200 | self == &Self::empty_tree(self.kind()) [INFO] [stdout] | ^----------------------------- [INFO] [stdout] | || [INFO] [stdout] | |any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited [INFO] [stdout] --> src/object_id.rs:200:18 [INFO] [stdout] | [INFO] [stdout] 200 | self == &Self::empty_tree(self.kind()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty [INFO] [stdout] --> src/object_id.rs:275:15 [INFO] [stdout] | [INFO] [stdout] 275 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `ObjectId` defined here [INFO] [stdout] --> src/object_id.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum ObjectId { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: the matched value is of type `&ObjectId` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 275 ~ match self { [INFO] [stdout] 276 + _ => todo!(), [INFO] [stdout] 277 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/object_id.rs:317:9 [INFO] [stdout] | [INFO] [stdout] 317 | Ok(oid::try_from_bytes(bytes)?.into()) [INFO] [stdout] | ^^^----------------------------------^ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited [INFO] [stdout] --> src/object_id.rs:317:12 [INFO] [stdout] | [INFO] [stdout] 317 | Ok(oid::try_from_bytes(bytes)?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/prefix.rs:29:93 [INFO] [stdout] | [INFO] [stdout] 29 | #[error("An id cannot be larger than {} chars in hex, but {hex_len} was requested", crate::Kind::longest().len_in_hex())] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | unreachable expression [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/prefix.rs:29:93 [INFO] [stdout] | [INFO] [stdout] 29 | #[error("An id cannot be larger than {} chars in hex, but {hex_len} was requested", crate::Kind::longest().len_in_hex())] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/prefix.rs:45:22 [INFO] [stdout] | [INFO] [stdout] 45 | if hex_len > id.kind().len_in_hex() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | unreachable expression [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/prefix.rs:45:22 [INFO] [stdout] | [INFO] [stdout] 45 | if hex_len > id.kind().len_in_hex() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/prefix.rs:48:17 [INFO] [stdout] | [INFO] [stdout] 47 | object_kind: id.kind(), [INFO] [stdout] | --------- any code following this expression is unreachable [INFO] [stdout] 48 | hex_len, [INFO] [stdout] | ^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/prefix.rs:47:30 [INFO] [stdout] | [INFO] [stdout] 47 | object_kind: id.kind(), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/prefix.rs:53:30 [INFO] [stdout] | [INFO] [stdout] 53 | let mut prefix = ObjectId::null(id.kind()); [INFO] [stdout] | ^^^^^^^^^^^^^^^---------^ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `Kind`, which is uninhabited [INFO] [stdout] --> src/prefix.rs:53:45 [INFO] [stdout] | [INFO] [stdout] 53 | let mut prefix = ObjectId::null(id.kind()); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable definition [INFO] [stdout] --> src/prefix.rs:53:17 [INFO] [stdout] | [INFO] [stdout] 53 | let mut prefix = ObjectId::null(id.kind()); [INFO] [stdout] | ^^^^^^^^^^ ------------------------- any code following this expression is unreachable [INFO] [stdout] | | [INFO] [stdout] | unreachable definition [INFO] [stdout] | [INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited [INFO] [stdout] --> src/prefix.rs:53:30 [INFO] [stdout] | [INFO] [stdout] 53 | let mut prefix = ObjectId::null(id.kind()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/verify.rs:23:27 [INFO] [stdout] | [INFO] [stdout] 22 | actual: self.to_owned(), [INFO] [stdout] | --------------- any code following this expression is unreachable [INFO] [stdout] 23 | expected: expected.to_owned(), [INFO] [stdout] | ^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited [INFO] [stdout] --> src/verify.rs:22:25 [INFO] [stdout] | [INFO] [stdout] 22 | actual: self.to_owned(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/verify.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | Err(Error { [INFO] [stdout] | _________________^ [INFO] [stdout] 22 | | actual: self.to_owned(), [INFO] [stdout] 23 | | expected: expected.to_owned(), [INFO] [stdout] | | ------------------- any code following this expression is unreachable [INFO] [stdout] 24 | | }) [INFO] [stdout] | |_____________^ unreachable expression [INFO] [stdout] | [INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited [INFO] [stdout] --> src/verify.rs:23:27 [INFO] [stdout] | [INFO] [stdout] 23 | expected: expected.to_owned(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty [INFO] [stdout] --> src/kind.rs:41:15 [INFO] [stdout] | [INFO] [stdout] 41 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Kind` defined here [INFO] [stdout] --> src/lib.rs:77:10 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum Kind { [INFO] [stdout] | ^^^^ [INFO] [stdout] = note: the matched value is of type `&Kind` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 41 ~ match self { [INFO] [stdout] 42 + _ => todo!(), [INFO] [stdout] 43 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty [INFO] [stdout] --> src/kind.rs:92:15 [INFO] [stdout] | [INFO] [stdout] 92 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Kind` defined here [INFO] [stdout] --> src/lib.rs:77:10 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum Kind { [INFO] [stdout] | ^^^^ [INFO] [stdout] = note: the matched value is of type `&Kind` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 92 ~ match self { [INFO] [stdout] 93 + _ => todo!(), [INFO] [stdout] 94 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty [INFO] [stdout] --> src/kind.rs:103:15 [INFO] [stdout] | [INFO] [stdout] 103 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Kind` defined here [INFO] [stdout] --> src/lib.rs:77:10 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum Kind { [INFO] [stdout] | ^^^^ [INFO] [stdout] = note: the matched value is of type `&Kind` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 103 ~ match self { [INFO] [stdout] 104 + _ => todo!(), [INFO] [stdout] 105 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty [INFO] [stdout] --> src/kind.rs:147:15 [INFO] [stdout] | [INFO] [stdout] 147 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Kind` defined here [INFO] [stdout] --> src/lib.rs:77:10 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum Kind { [INFO] [stdout] | ^^^^ [INFO] [stdout] = note: the matched value is of type `&Kind` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 147 ~ match self { [INFO] [stdout] 148 + _ => todo!(), [INFO] [stdout] 149 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty [INFO] [stdout] --> src/kind.rs:158:15 [INFO] [stdout] | [INFO] [stdout] 158 | match self { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Kind` defined here [INFO] [stdout] --> src/lib.rs:77:10 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum Kind { [INFO] [stdout] | ^^^^ [INFO] [stdout] = note: the matched value is of type `&Kind` [INFO] [stdout] = note: references are always considered inhabited [INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown [INFO] [stdout] | [INFO] [stdout] 158 ~ match self { [INFO] [stdout] 159 + _ => todo!(), [INFO] [stdout] 160 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0004, E0308, E0665. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0004`. [INFO] [stdout] [INFO] [stderr] error: could not compile `gix-hash` (lib) due to 16 previous errors; 28 warnings emitted [INFO] running `Command { std: "docker" "inspect" "8105d0b122d12d01e5d62f79c386337e8f2a90b2b612d8655cc0970462323e97", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8105d0b122d12d01e5d62f79c386337e8f2a90b2b612d8655cc0970462323e97", kill_on_drop: false }` [INFO] [stdout] 8105d0b122d12d01e5d62f79c386337e8f2a90b2b612d8655cc0970462323e97