[INFO] cloning repository https://github.com/megahomyak/hotfuzz-core [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/megahomyak/hotfuzz-core" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmegahomyak%2Fhotfuzz-core", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmegahomyak%2Fhotfuzz-core'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8a3b43343d40cbcaa6b9935a4d3032c194c9328f [INFO] checking megahomyak/hotfuzz-core against master#6a9758d4f38d4763bd437c48fa7e5246cecf8d04 for pr-124355 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmegahomyak%2Fhotfuzz-core" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/megahomyak/hotfuzz-core on toolchain 6a9758d4f38d4763bd437c48fa7e5246cecf8d04 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+6a9758d4f38d4763bd437c48fa7e5246cecf8d04" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/megahomyak/hotfuzz-core [INFO] finished tweaking git repo https://github.com/megahomyak/hotfuzz-core [INFO] tweaked toml for git repo https://github.com/megahomyak/hotfuzz-core written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/megahomyak/hotfuzz-core 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" "+6a9758d4f38d4763bd437c48fa7e5246cecf8d04" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [ERROR] this task or one of its parent failed! [ERROR] no output for 300 seconds [ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace. [INFO] checking megahomyak/hotfuzz-core against try#99e7531f0d1cf95a50aff9cccb24863963e6bbe2 for pr-124355 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmegahomyak%2Fhotfuzz-core" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/megahomyak/hotfuzz-core on toolchain 99e7531f0d1cf95a50aff9cccb24863963e6bbe2 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+99e7531f0d1cf95a50aff9cccb24863963e6bbe2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/megahomyak/hotfuzz-core [INFO] finished tweaking git repo https://github.com/megahomyak/hotfuzz-core [INFO] tweaked toml for git repo https://github.com/megahomyak/hotfuzz-core written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/megahomyak/hotfuzz-core 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" "+99e7531f0d1cf95a50aff9cccb24863963e6bbe2" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+99e7531f0d1cf95a50aff9cccb24863963e6bbe2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a3bda69b67d56673d16644b0add4f020f028bff4887d2f14afa653c2d3a45f45 [INFO] running `Command { std: "docker" "start" "-a" "a3bda69b67d56673d16644b0add4f020f028bff4887d2f14afa653c2d3a45f45", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a3bda69b67d56673d16644b0add4f020f028bff4887d2f14afa653c2d3a45f45", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a3bda69b67d56673d16644b0add4f020f028bff4887d2f14afa653c2d3a45f45", kill_on_drop: false }` [INFO] [stdout] a3bda69b67d56673d16644b0add4f020f028bff4887d2f14afa653c2d3a45f45 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+99e7531f0d1cf95a50aff9cccb24863963e6bbe2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8d2ab62dbefca8c5e9ec3331e1fa387fcd23116ffd8cfaa3cf224a68ab97e237 [INFO] running `Command { std: "docker" "start" "-a" "8d2ab62dbefca8c5e9ec3331e1fa387fcd23116ffd8cfaa3cf224a68ab97e237", kill_on_drop: false }` [INFO] [stderr] Checking unicode-segmentation v1.11.0 [INFO] [stderr] Checking hotfuzz-core v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: expected type, found `}` [INFO] [stdout] --> src/hot/mod.rs:36:1 [INFO] [stdout] | [INFO] [stdout] 26 | impl Hot where for<'a> &'a C: IntoIterator { [INFO] [stdout] | - while parsing this item list starting here [INFO] [stdout] ... [INFO] [stdout] 36 | } [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | expected type [INFO] [stdout] | the item list ends here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected type, found `}` [INFO] [stdout] --> src/hot/mod.rs:36:1 [INFO] [stdout] | [INFO] [stdout] 26 | impl Hot where for<'a> &'a C: IntoIterator { [INFO] [stdout] | - while parsing this item list starting here [INFO] [stdout] ... [INFO] [stdout] 36 | } [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | expected type [INFO] [stdout] | the item list ends here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: trait takes 0 generic arguments but 1 generic argument was supplied [INFO] [stdout] --> src/hot/mod.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | ^^^^ expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: trait defined here, with 0 generic parameters [INFO] [stdout] --> src/name.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ^^^^ [INFO] [stdout] help: replace the generic bound with the associated type [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hot/mod.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | ^^^^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied [INFO] [stdout] --> src/hot/mod.rs:15:32 [INFO] [stdout] | [INFO] [stdout] 15 | Occupied(HashMap>), [INFO] [stdout] | ^^^^ - supplied 1 generic argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 generic arguments [INFO] [stdout] | [INFO] [stdout] note: enum defined here, with 2 generic parameters: `T`, `C` [INFO] [stdout] --> src/hot/mod.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | pub(self) enum Node { [INFO] [stdout] | ^^^^ - - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 15 | Occupied(HashMap>), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 generic arguments but 1 generic argument was supplied [INFO] [stdout] --> src/hotfuzz/mod.rs:8:15 [INFO] [stdout] | [INFO] [stdout] 8 | hot: hot::Hot, [INFO] [stdout] | ^^^ - supplied 1 generic argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 generic arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 generic parameters: `T`, `C` [INFO] [stdout] --> src/hot/mod.rs:18:19 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) struct Hot { [INFO] [stdout] | ^^^ - - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 8 | hot: hot::Hot, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:17:65 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:21:73 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:33:36 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:37:37 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:37:64 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: trait takes 0 generic arguments but 1 generic argument was supplied [INFO] [stdout] --> src/hot/mod.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | ^^^^ expected 0 generic arguments [INFO] [stdout] | [INFO] [stdout] note: trait defined here, with 0 generic parameters [INFO] [stdout] --> src/name.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ^^^^ [INFO] [stdout] help: replace the generic bound with the associated type [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hot/mod.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | ^^^^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied [INFO] [stdout] --> src/hot/mod.rs:15:32 [INFO] [stdout] | [INFO] [stdout] 15 | Occupied(HashMap>), [INFO] [stdout] | ^^^^ - supplied 1 generic argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 generic arguments [INFO] [stdout] | [INFO] [stdout] note: enum defined here, with 2 generic parameters: `T`, `C` [INFO] [stdout] --> src/hot/mod.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | pub(self) enum Node { [INFO] [stdout] | ^^^^ - - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 15 | Occupied(HashMap>), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: struct takes 2 generic arguments but 1 generic argument was supplied [INFO] [stdout] --> src/hotfuzz/mod.rs:8:15 [INFO] [stdout] | [INFO] [stdout] 8 | hot: hot::Hot, [INFO] [stdout] | ^^^ - supplied 1 generic argument [INFO] [stdout] | | [INFO] [stdout] | expected 2 generic arguments [INFO] [stdout] | [INFO] [stdout] note: struct defined here, with 2 generic parameters: `T`, `C` [INFO] [stdout] --> src/hot/mod.rs:18:19 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) struct Hot { [INFO] [stdout] | ^^^ - - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 8 | hot: hot::Hot, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:17:65 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:21:73 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:33:36 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:37:37 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Name` cannot be made into an object [INFO] [stdout] --> src/hotfuzz/mod.rs:37:64 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^ `Name` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/name.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Name { [INFO] [stdout] | ---- this trait cannot be made into an object... [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^ ...because it contains the generic associated type `Iter` [INFO] [stdout] = help: consider moving `Iter` to another trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/fuzz/mod.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Fuzz { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/fuzz/iters.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Iter { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/fuzz/iters.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IterMut { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `C` is never used [INFO] [stdout] --> src/hot/mod.rs:18:26 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) struct Hot { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `C`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `C` to be a const parameter, use `const C: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/hot/iters.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Iter { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/hot/iters.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IterMut { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/fuzz/mod.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Fuzz { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: missing required bound on `Iter` [INFO] [stdout] --> src/name.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: add the required where clause: `where Self: 'a` [INFO] [stdout] | [INFO] [stdout] = note: this bound is currently required to ensure that impls have maximum flexibility [INFO] [stdout] = note: we are soliciting feedback, see issue #87479 for more information [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/fuzz/iters.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Iter { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/fuzz/iters.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IterMut { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `C` is never used [INFO] [stdout] --> src/hot/mod.rs:18:26 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) struct Hot { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `C`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `C` to be a const parameter, use `const C: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0309]: the associated type `<&'a T as IntoIterator>::IntoIter` may not live long enough [INFO] [stdout] --> src/name.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | type Iter<'a> = <&'a T as IntoIterator>::IntoIter; [INFO] [stdout] | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `<&'a T as IntoIterator>::IntoIter` will meet its required lifetime bounds... [INFO] [stdout] | | [INFO] [stdout] | the associated type `<&'a T as IntoIterator>::IntoIter` must be valid for the lifetime `'a` as defined here... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> src/name.rs:4:52 [INFO] [stdout] | [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 13 | type Iter<'a> = <&'a T as IntoIterator>::IntoIter where <&'a T as IntoIterator>::IntoIter: 'a; [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/hot/iters.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Iter { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/hot/iters.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IterMut { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: missing required bound on `Iter` [INFO] [stdout] --> src/name.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: add the required where clause: `where Self: 'a` [INFO] [stdout] | [INFO] [stdout] = note: this bound is currently required to ensure that impls have maximum flexibility [INFO] [stdout] = note: we are soliciting feedback, see issue #87479 for more information [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0309]: the associated type `<&'a T as IntoIterator>::IntoIter` may not live long enough [INFO] [stdout] --> src/name.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | type Iter<'a> = <&'a T as IntoIterator>::IntoIter; [INFO] [stdout] | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `<&'a T as IntoIterator>::IntoIter` will meet its required lifetime bounds... [INFO] [stdout] | | [INFO] [stdout] | the associated type `<&'a T as IntoIterator>::IntoIter` must be valid for the lifetime `'a` as defined here... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> src/name.rs:4:52 [INFO] [stdout] | [INFO] [stdout] 4 | type Iter<'a>: Iterator + 'a; [INFO] [stdout] | ^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 13 | type Iter<'a> = <&'a T as IntoIterator>::IntoIter where <&'a T as IntoIterator>::IntoIter: 'a; [INFO] [stdout] | +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0204]: the trait `Copy` cannot be implemented for this type [INFO] [stdout] --> src/name.rs:20:17 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | -------- this field does not implement `Copy` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Copy` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0204]: the trait `Copy` cannot be implemented for this type [INFO] [stdout] --> src/name.rs:20:17 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | -------- this field does not implement `Copy` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Copy` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/name.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | type Iter<'a> = <&'a T as IntoIterator>::IntoIter; [INFO] [stdout] | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the reference type `&'a T` does not outlive the data it points at [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the lifetime `'a` as defined here... [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 13 | type Iter<'a> = <&'a T as IntoIterator>::IntoIter where T: 'a; [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/name.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | type Iter<'a> = <&'a T as IntoIterator>::IntoIter; [INFO] [stdout] | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the reference type `&'a T` does not outlive the data it points at [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the lifetime `'a` as defined here... [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 13 | type Iter<'a> = <&'a T as IntoIterator>::IntoIter where T: 'a; [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn Name + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/hotfuzz/mod.rs:37:56 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn Name + 'static)` [INFO] [stdout] = note: only the last element of a tuple may have a dynamically sized type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/hotfuzz/iters.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Iter { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/hotfuzz/iters.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IterMut { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hot/mod.rs:27:66 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn get(&self, prompt: impl Iterator) -> HotResult> { [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^^^^^ expected `HotResult>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `HotResult>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hot/mod.rs:31:74 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn get_mut(&mut self, prompt: impl Iterator) -> HotResult> { [INFO] [stdout] | ------- ^^^^^^^^^^^^^^^^^^^^^ expected `HotResult>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `HotResult>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn Name + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/hotfuzz/mod.rs:37:56 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn Name + 'static)` [INFO] [stdout] = note: only the last element of a tuple may have a dynamically sized type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/hotfuzz/iters.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Iter { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: type parameter `T` is never used [INFO] [stdout] --> src/hotfuzz/iters.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IterMut { [INFO] [stdout] | ^ unused type parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Clone` is not satisfied [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsClone` [INFO] [stdout] --> /rustc/99e7531f0d1cf95a50aff9cccb24863963e6bbe2/library/core/src/clone.rs:193:1 [INFO] [stdout] = note: this error originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Clone)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Clone)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hot/mod.rs:27:66 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn get(&self, prompt: impl Iterator) -> HotResult> { [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^^^^^ expected `HotResult>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `HotResult>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hot/mod.rs:31:74 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn get_mut(&mut self, prompt: impl Iterator) -> HotResult> { [INFO] [stdout] | ------- ^^^^^^^^^^^^^^^^^^^^^ expected `HotResult>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `HotResult>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `Grapheme` doesn't implement `Debug` [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ `Grapheme` cannot be formatted using `{:?}` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `Grapheme`, which is required by `&Grapheme: Debug` [INFO] [stdout] = note: add `#[derive(Debug)]` to `Grapheme` or manually `impl Debug for Grapheme` [INFO] [stdout] = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Debug)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Debug)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Clone` is not satisfied [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsClone` [INFO] [stdout] --> /rustc/99e7531f0d1cf95a50aff9cccb24863963e6bbe2/library/core/src/clone.rs:193:1 [INFO] [stdout] = note: this error originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Clone)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Clone)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `Grapheme` doesn't implement `Debug` [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ `Grapheme` cannot be formatted using `{:?}` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `Grapheme`, which is required by `&Grapheme: Debug` [INFO] [stdout] = note: add `#[derive(Debug)]` to `Grapheme` or manually `impl Debug for Grapheme` [INFO] [stdout] = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Debug)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Debug)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Hash` is not satisfied [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ---- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Hash` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Hash` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Hash)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Hash)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `Grapheme` doesn't implement `Debug` [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ `Grapheme` cannot be formatted using `{:?}` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `Grapheme`, which is required by `&Grapheme: Debug` [INFO] [stdout] = note: add `#[derive(Debug)]` to `Grapheme` or manually `impl Debug for Grapheme` [INFO] [stdout] = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Debug)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Debug)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Hash` is not satisfied [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ---- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Hash` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Hash` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Hash)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Hash)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `Grapheme` doesn't implement `Debug` [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ `Grapheme` cannot be formatted using `{:?}` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `Grapheme`, which is required by `&Grapheme: Debug` [INFO] [stdout] = note: add `#[derive(Debug)]` to `Grapheme` or manually `impl Debug for Grapheme` [INFO] [stdout] = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Debug)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Debug)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Hash` is not satisfied [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ---- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Hash` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Hash` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Hash)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Hash)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Grapheme` [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Grapheme` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Grapheme { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the derive macro `PartialEq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(PartialEq)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Grapheme` [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Grapheme` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Grapheme { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the derive macro `PartialEq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(PartialEq)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Hash` is not satisfied [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ---- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Hash` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Hash` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Hash)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Hash)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Grapheme` [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Grapheme` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Grapheme { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the derive macro `PartialEq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(PartialEq)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Grapheme` [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Grapheme` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Grapheme { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the derive macro `PartialEq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(PartialEq)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Eq` is not satisfied [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Eq` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/99e7531f0d1cf95a50aff9cccb24863963e6bbe2/library/core/src/cmp.rs:360:1 [INFO] [stdout] = note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Eq)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Eq)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `Grapheme` with `_` [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ---------- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ no implementation for `Grapheme < _` and `Grapheme > _` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialOrd<_>` is not implemented for `Grapheme` [INFO] [stdout] = note: this error originates in the derive macro `PartialOrd` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Eq` is not satisfied [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Eq` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/99e7531f0d1cf95a50aff9cccb24863963e6bbe2/library/core/src/cmp.rs:360:1 [INFO] [stdout] = note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Eq)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Eq)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `Grapheme` with `_` [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ---------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ no implementation for `Grapheme < _` and `Grapheme > _` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialOrd<_>` is not implemented for `Grapheme` [INFO] [stdout] = note: this error originates in the derive macro `PartialOrd` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `Grapheme` with `_` [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ---------- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ no implementation for `Grapheme < _` and `Grapheme > _` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialOrd<_>` is not implemented for `Grapheme` [INFO] [stdout] = note: this error originates in the derive macro `PartialOrd` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Ord` is not satisfied [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | --- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Ord` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Ord)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Ord)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `Grapheme` with `_` [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | ---------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ no implementation for `Grapheme < _` and `Grapheme > _` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialOrd<_>` is not implemented for `Grapheme` [INFO] [stdout] = note: this error originates in the derive macro `PartialOrd` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Ord` is not satisfied [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | --- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Ord` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Ord)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Ord)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Ord` is not satisfied [INFO] [stdout] --> src/name.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | --- in this derive macro expansion [INFO] [stdout] 21 | pub enum NameGrapheme { [INFO] [stdout] 22 | Hot(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Ord` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Ord)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Ord)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Grapheme: Ord` is not satisfied [INFO] [stdout] --> src/name.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] [INFO] [stdout] | --- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | Regular(Grapheme), [INFO] [stdout] | ^^^^^^^^ the trait `Ord` is not implemented for `Grapheme` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `Grapheme` with `#[derive(Ord)]` [INFO] [stdout] --> src/graphemes.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 + #[derive(Ord)] [INFO] [stdout] 2 | pub struct Grapheme { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/name.rs:30:34 [INFO] [stdout] | [INFO] [stdout] 30 | Self::Hot(c) => Some(*c), [INFO] [stdout] | ---- ^^ expected `char`, found `Grapheme` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] help: the type constructed contains `Grapheme` due to the type of the argument passed [INFO] [stdout] --> src/name.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | Self::Hot(c) => Some(*c), [INFO] [stdout] | ^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the type of `Some` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> /rustc/99e7531f0d1cf95a50aff9cccb24863963e6bbe2/library/core/src/option.rs:579:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/name.rs:30:34 [INFO] [stdout] | [INFO] [stdout] 30 | Self::Hot(c) => Some(*c), [INFO] [stdout] | ---- ^^ expected `char`, found `Grapheme` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] help: the type constructed contains `Grapheme` due to the type of the argument passed [INFO] [stdout] --> src/name.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | Self::Hot(c) => Some(*c), [INFO] [stdout] | ^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the type of `Some` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> /rustc/99e7531f0d1cf95a50aff9cccb24863963e6bbe2/library/core/src/option.rs:579:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/name.rs:37:38 [INFO] [stdout] | [INFO] [stdout] 37 | Self::Regular(c) => Some(*c), [INFO] [stdout] | ---- ^^ expected `char`, found `Grapheme` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] help: the type constructed contains `Grapheme` due to the type of the argument passed [INFO] [stdout] --> src/name.rs:37:33 [INFO] [stdout] | [INFO] [stdout] 37 | Self::Regular(c) => Some(*c), [INFO] [stdout] | ^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the type of `Some` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> /rustc/99e7531f0d1cf95a50aff9cccb24863963e6bbe2/library/core/src/option.rs:579:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/name.rs:37:38 [INFO] [stdout] | [INFO] [stdout] 37 | Self::Regular(c) => Some(*c), [INFO] [stdout] | ---- ^^ expected `char`, found `Grapheme` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] help: the type constructed contains `Grapheme` due to the type of the argument passed [INFO] [stdout] --> src/name.rs:37:33 [INFO] [stdout] | [INFO] [stdout] 37 | Self::Regular(c) => Some(*c), [INFO] [stdout] | ^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the type of `Some` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> /rustc/99e7531f0d1cf95a50aff9cccb24863963e6bbe2/library/core/src/option.rs:579:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/name.rs:43:48 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn content(&self) -> char { [INFO] [stdout] | ---- expected `char` because of return type [INFO] [stdout] 42 | match self { [INFO] [stdout] 43 | Self::Hot(c) | Self::Regular(c) => *c, [INFO] [stdout] | ^^ expected `char`, found `Grapheme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/name.rs:43:48 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn content(&self) -> char { [INFO] [stdout] | ---- expected `char` because of return type [INFO] [stdout] 42 | match self { [INFO] [stdout] 43 | Self::Hot(c) | Self::Regular(c) => *c, [INFO] [stdout] | ^^ expected `char`, found `Grapheme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for struct `Fuzz` in the current scope [INFO] [stdout] --> src/hotfuzz/mod.rs:18:19 [INFO] [stdout] | [INFO] [stdout] 18 | self.fuzz.get(prompt) [INFO] [stdout] | ^^^ method not found in `Fuzz` [INFO] [stdout] | [INFO] [stdout] ::: src/fuzz/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Fuzz { [INFO] [stdout] | ------------------ method `get` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `get`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for struct `Fuzz` in the current scope [INFO] [stdout] --> src/hotfuzz/mod.rs:18:19 [INFO] [stdout] | [INFO] [stdout] 18 | self.fuzz.get(prompt) [INFO] [stdout] | ^^^ method not found in `Fuzz` [INFO] [stdout] | [INFO] [stdout] ::: src/fuzz/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Fuzz { [INFO] [stdout] | ------------------ method `get` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `get`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_mut` found for struct `Fuzz` in the current scope [INFO] [stdout] --> src/hotfuzz/mod.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 22 | self.fuzz.get_mut(prompt) [INFO] [stdout] | ^^^^^^^ method not found in `Fuzz` [INFO] [stdout] | [INFO] [stdout] ::: src/fuzz/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Fuzz { [INFO] [stdout] | ------------------ method `get_mut` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `get_mut`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hotfuzz/mod.rs:33:55 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<(), InsertionError>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<(), hotfuzz::InsertionError>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_mut` found for struct `Fuzz` in the current scope [INFO] [stdout] --> src/hotfuzz/mod.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 22 | self.fuzz.get_mut(prompt) [INFO] [stdout] | ^^^^^^^ method not found in `Fuzz` [INFO] [stdout] | [INFO] [stdout] ::: src/fuzz/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Fuzz { [INFO] [stdout] | ------------------ method `get_mut` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `get_mut`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `SliceIndex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn Name + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/hotfuzz/mod.rs:33:30 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn Name + 'static)` [INFO] [stdout] = help: unsized fn params are gated as an unstable feature [INFO] [stdout] help: you can use `impl Trait` as the argument type [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: impl Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ++++ [INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: &dyn Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hotfuzz/mod.rs:37:56 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^ expected `Option<(dyn Name, T)>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option<((dyn Name + 'static), T)>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hotfuzz/mod.rs:41:27 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn iter(&self) -> iters::Iter { [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ expected `Iter`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected struct `hotfuzz::iters::Iter` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hotfuzz/mod.rs:33:55 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<(), InsertionError>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<(), hotfuzz::InsertionError>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hotfuzz/mod.rs:45:35 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn iter_mut(&mut self) -> iters::IterMut { [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^^ expected `IterMut`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected struct `hotfuzz::iters::IterMut` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn Name + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/hotfuzz/mod.rs:33:30 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn Name + 'static)` [INFO] [stdout] = help: unsized fn params are gated as an unstable feature [INFO] [stdout] help: you can use `impl Trait` as the argument type [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: impl Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ++++ [INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: &dyn Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `0` on type `&Grapheme` [INFO] [stdout] --> src/graphemes.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | &self.0[..] [INFO] [stdout] | ^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `content` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hotfuzz/mod.rs:37:56 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^ expected `Option<(dyn Name, T)>`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option<((dyn Name + 'static), T)>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hotfuzz/mod.rs:41:27 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn iter(&self) -> iters::Iter { [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ expected `Iter`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected struct `hotfuzz::iters::Iter` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/hotfuzz/mod.rs:45:35 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn iter_mut(&mut self) -> iters::IterMut { [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^^ expected `IterMut`, found `()` [INFO] [stdout] | | [INFO] [stdout] | implicitly returns `()` as its body has no tail or `return` expression [INFO] [stdout] | [INFO] [stdout] = note: expected struct `hotfuzz::iters::IterMut` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `0` on type `&Grapheme` [INFO] [stdout] --> src/graphemes.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | &self.0[..] [INFO] [stdout] | ^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available field is: `content` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/box.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | (r#box, ptr) [INFO] [stdout] | ^^^ expected `BoxPtr`, found `*mut _` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `BoxPtr` [INFO] [stdout] found raw pointer `*mut _` [INFO] [stdout] help: try wrapping the expression in `r#box::BoxPtr` [INFO] [stdout] | [INFO] [stdout] 10 | (r#box, r#box::BoxPtr { value: ptr }) [INFO] [stdout] | ++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `graphemes` does not live long enough [INFO] [stdout] --> src/non_empty.rs:16:36 [INFO] [stdout] | [INFO] [stdout] 12 | impl<'a> NonEmptyStr<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] 13 | pub fn new(s: &str) -> Result { [INFO] [stdout] 14 | let mut graphemes = GraphemeIter::new(s); [INFO] [stdout] | ------------- binding `graphemes` declared here [INFO] [stdout] 15 | if let Some(first) = graphemes.next() { [INFO] [stdout] 16 | Ok(Self { first, rest: graphemes.as_str() }) [INFO] [stdout] | ^^^^^^^^^--------- [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | this usage requires that `graphemes` is borrowed for `'a` [INFO] [stdout] ... [INFO] [stdout] 20 | } [INFO] [stdout] | - `graphemes` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0621]: explicit lifetime required in the type of `s` [INFO] [stdout] --> src/non_empty.rs:16:36 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(s: &str) -> Result { [INFO] [stdout] | ---- help: add explicit lifetime `'a` to the type of `s`: `&'a str` [INFO] [stdout] ... [INFO] [stdout] 16 | Ok(Self { first, rest: graphemes.as_str() }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ lifetime `'a` required [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/box.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | (r#box, ptr) [INFO] [stdout] | ^^^ expected `BoxPtr`, found `*mut _` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `BoxPtr` [INFO] [stdout] found raw pointer `*mut _` [INFO] [stdout] help: try wrapping the expression in `r#box::BoxPtr` [INFO] [stdout] | [INFO] [stdout] 10 | (r#box, r#box::BoxPtr { value: ptr }) [INFO] [stdout] | ++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `graphemes` does not live long enough [INFO] [stdout] --> src/non_empty.rs:16:36 [INFO] [stdout] | [INFO] [stdout] 12 | impl<'a> NonEmptyStr<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] 13 | pub fn new(s: &str) -> Result { [INFO] [stdout] 14 | let mut graphemes = GraphemeIter::new(s); [INFO] [stdout] | ------------- binding `graphemes` declared here [INFO] [stdout] 15 | if let Some(first) = graphemes.next() { [INFO] [stdout] 16 | Ok(Self { first, rest: graphemes.as_str() }) [INFO] [stdout] | ^^^^^^^^^--------- [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | this usage requires that `graphemes` is borrowed for `'a` [INFO] [stdout] ... [INFO] [stdout] 20 | } [INFO] [stdout] | - `graphemes` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0621]: explicit lifetime required in the type of `s` [INFO] [stdout] --> src/non_empty.rs:16:36 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(s: &str) -> Result { [INFO] [stdout] | ---- help: add explicit lifetime `'a` to the type of `s`: `&'a str` [INFO] [stdout] ... [INFO] [stdout] 16 | Ok(Self { first, rest: graphemes.as_str() }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ lifetime `'a` required [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hot/mod.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:17:65 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 17 | pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:21:73 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 21 | pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:33:36 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: dyn Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:37:37 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &dyn Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:37:64 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(dyn Name, T)> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 57 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0107, E0204, E0277, E0308, E0309, E0369, E0392, E0597... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hot/mod.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 14 | Free(BoxPtr>, BoxPtr), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:17:65 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 17 | pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:21:73 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 21 | pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:33:36 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 33 | pub fn insert(&mut self, name: dyn Name, value: T) -> Result<(), InsertionError> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:37:37 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &dyn Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: trait objects must include the `dyn` keyword [INFO] [stdout] --> src/hotfuzz/mod.rs:37:64 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: add `dyn` keyword before this trait [INFO] [stdout] | [INFO] [stdout] 37 | pub fn remove(&mut self, name: &Name, value: T) -> Option<(dyn Name, T)> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 57 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0107, E0204, E0277, E0308, E0309, E0369, E0392, E0597... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stderr] error: could not compile `hotfuzz-core` (lib test) due to 58 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `hotfuzz-core` (lib) due to 58 previous errors [INFO] running `Command { std: "docker" "inspect" "8d2ab62dbefca8c5e9ec3331e1fa387fcd23116ffd8cfaa3cf224a68ab97e237", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d2ab62dbefca8c5e9ec3331e1fa387fcd23116ffd8cfaa3cf224a68ab97e237", kill_on_drop: false }` [INFO] [stdout] 8d2ab62dbefca8c5e9ec3331e1fa387fcd23116ffd8cfaa3cf224a68ab97e237