[INFO] cloning repository https://github.com/mikeleppane/Crust-of-Rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mikeleppane/Crust-of-Rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmikeleppane%2FCrust-of-Rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmikeleppane%2FCrust-of-Rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b4e5a00ce068794a2fef0b86a454ab48e44f4764 [INFO] checking mikeleppane/Crust-of-Rust against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmikeleppane%2FCrust-of-Rust" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/mikeleppane/Crust-of-Rust on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/mikeleppane/Crust-of-Rust [INFO] finished tweaking git repo https://github.com/mikeleppane/Crust-of-Rust [INFO] tweaked toml for git repo https://github.com/mikeleppane/Crust-of-Rust written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/mikeleppane/Crust-of-Rust 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] dcddc6d8a3d9ffdc79f0d80f76bebcd6f1ee12322d32aadf12f21bf60ee6c2b8 [INFO] running `Command { std: "docker" "start" "-a" "dcddc6d8a3d9ffdc79f0d80f76bebcd6f1ee12322d32aadf12f21bf60ee6c2b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dcddc6d8a3d9ffdc79f0d80f76bebcd6f1ee12322d32aadf12f21bf60ee6c2b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dcddc6d8a3d9ffdc79f0d80f76bebcd6f1ee12322d32aadf12f21bf60ee6c2b8", kill_on_drop: false }` [INFO] [stdout] dcddc6d8a3d9ffdc79f0d80f76bebcd6f1ee12322d32aadf12f21bf60ee6c2b8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8d7e3a1e58a67e82fd3f90df6923f2c103709e04f6b9e89b56eed7d92d90af41 [INFO] running `Command { std: "docker" "start" "-a" "8d7e3a1e58a67e82fd3f90df6923f2c103709e04f6b9e89b56eed7d92d90af41", kill_on_drop: false }` [INFO] [stderr] Checking diff v0.1.13 [INFO] [stderr] Checking yansi v0.5.1 [INFO] [stderr] Checking pretty_assertions v1.3.0 [INFO] [stderr] Checking crust-of-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `pretty_assertions::assert_eq` [INFO] [stdout] --> src/drop_check/boks.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | use pretty_assertions::assert_eq; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOCKED` is never used [INFO] [stdout] --> src/atomics_and_memory_ordering/atomics.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const LOCKED: bool = true; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `UNLOCKED` is never used [INFO] [stdout] --> src/atomics_and_memory_ordering/atomics.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const UNLOCKED: bool = false; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MyMutex` is never constructed [INFO] [stdout] --> src/atomics_and_memory_ordering/atomics.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MyMutex { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_lock` are never used [INFO] [stdout] --> src/atomics_and_memory_ordering/atomics.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl MyMutex { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 15 | pub fn new(t: T) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | fn with_lock(&self, f: impl FnOnce(&mut T) -> R) -> R { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `send` is never used [INFO] [stdout] --> src/channels/panama.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl Sender { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 33 | pub fn send(&mut self, t: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `channel` is never used [INFO] [stdout] --> src/channels/panama.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn channel() -> (Sender, Receiver) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `hei` and `not_ok` are never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait Hei { [INFO] [stdout] | --- associated items in this trait [INFO] [stdout] 2 | fn hei(&self); [INFO] [stdout] | ^^^ [INFO] [stdout] 3 | [INFO] [stdout] 4 | fn not_ok() [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strlen` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn strlen(s: impl AsRef) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strlen_dyn` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn strlen_dyn(s: Box>) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bool_then` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn bool_then(b: bool, f: impl FnOnce() -> T) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HeiAsRef` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:47:11 [INFO] [stdout] | [INFO] [stdout] 47 | pub trait HeiAsRef: Hei + AsRef {} [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `baz` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn baz(s: &dyn HeiAsRef) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slice_of_trait_object` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn slice_of_trait_object(v: &[&dyn AsRef]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:61:8 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `ny` is never used [INFO] [stdout] --> src/drop_check/boks.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Boks { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 32 | pub fn ny(t: T) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `our_flatten` is never used [INFO] [stdout] --> src/iterators/iterator.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait IteratorExt: Iterator + Sized { [INFO] [stdout] | ----------- method in this trait [INFO] [stdout] 2 | fn our_flatten(self) -> Flatten [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strtok` is never used [INFO] [stdout] --> src/subtyping_and_variance/strtok.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn strtok<'a>(s: &'_ mut &'a str, delimiter: char) -> &'a str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `core::str::::len` that must be used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | s.len(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 52 | let _ = s.len(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary allocation, use `&` instead [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:66:29 [INFO] [stdout] | [INFO] [stdout] 66 | slice_of_trait_object(&[Box::new("hello").as_ref()]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_allocation)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/drop_check/boks.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | unsafe { Box::from_raw(self.p) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 10 | unsafe { let _ = Box::from_raw(self.p); }; [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/smart_pointers_and_interior_mutability/rc.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | drop(inner); [INFO] [stdout] | ^^^^^-----^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&RcInner` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_references)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 64 - drop(inner); [INFO] [stdout] 64 + let _ = inner; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 21 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `boks` [INFO] [stdout] --> src/drop_check/boks.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let boks = Boks::ny(&mut y); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_boks` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `hei` and `not_ok` are never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait Hei { [INFO] [stdout] | --- associated items in this trait [INFO] [stdout] 2 | fn hei(&self); [INFO] [stdout] | ^^^ [INFO] [stdout] 3 | [INFO] [stdout] 4 | fn not_ok() [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strlen` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn strlen(s: impl AsRef) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strlen_dyn` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn strlen_dyn(s: Box>) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bool_then` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn bool_then(b: bool, f: impl FnOnce() -> T) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HeiAsRef` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:47:11 [INFO] [stdout] | [INFO] [stdout] 47 | pub trait HeiAsRef: Hei + AsRef {} [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `baz` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn baz(s: &dyn HeiAsRef) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slice_of_trait_object` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn slice_of_trait_object(v: &[&dyn AsRef]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:61:8 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `our_flatten` is never used [INFO] [stdout] --> src/iterators/iterator.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait IteratorExt: Iterator + Sized { [INFO] [stdout] | ----------- method in this trait [INFO] [stdout] 2 | fn our_flatten(self) -> Flatten [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `core::str::::len` that must be used [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | s.len(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 52 | let _ = s.len(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary allocation, use `&` instead [INFO] [stdout] --> src/dispatch_and_fat_pointers/main.rs:66:29 [INFO] [stdout] | [INFO] [stdout] 66 | slice_of_trait_object(&[Box::new("hello").as_ref()]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_allocation)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/drop_check/boks.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | unsafe { Box::from_raw(self.p) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 10 | unsafe { let _ = Box::from_raw(self.p); }; [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/smart_pointers_and_interior_mutability/rc.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | drop(inner); [INFO] [stdout] | ^^^^^-----^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&RcInner` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_references)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 64 - drop(inner); [INFO] [stdout] 64 + let _ = inner; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 15 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.30s [INFO] running `Command { std: "docker" "inspect" "8d7e3a1e58a67e82fd3f90df6923f2c103709e04f6b9e89b56eed7d92d90af41", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d7e3a1e58a67e82fd3f90df6923f2c103709e04f6b9e89b56eed7d92d90af41", kill_on_drop: false }` [INFO] [stdout] 8d7e3a1e58a67e82fd3f90df6923f2c103709e04f6b9e89b56eed7d92d90af41