[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 try#5f6abd89da253a562ad85d235b9342a3ac336c28 for pr-156114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmegahomyak%2Fhotfuzz-core" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[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-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/megahomyak/hotfuzz-core on toolchain 5f6abd89da253a562ad85d235b9342a3ac336c28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "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-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 57190c3ee4c855eafb49dad2435c79f0e2a102b9ed8adb72bad0ff232b0fa2ad
[INFO] running `Command { std: "docker" "start" "-a" "57190c3ee4c855eafb49dad2435c79f0e2a102b9ed8adb72bad0ff232b0fa2ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "57190c3ee4c855eafb49dad2435c79f0e2a102b9ed8adb72bad0ff232b0fa2ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "57190c3ee4c855eafb49dad2435c79f0e2a102b9ed8adb72bad0ff232b0fa2ad", kill_on_drop: false }`
[INFO] [stdout] 57190c3ee4c855eafb49dad2435c79f0e2a102b9ed8adb72bad0ff232b0fa2ad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f0567029e1e67187085d8878cc1a6a4caeb0da9c626d005552ce46f292112da4
[INFO] running `Command { std: "docker" "start" "-a" "f0567029e1e67187085d8878cc1a6a4caeb0da9c626d005552ce46f292112da4", 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<T, C> Hot<T, C> where for<'a> &'a C: IntoIterator<Item = NameGrapheme> {
[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<T, C> Hot<T, C> where for<'a> &'a C: IntoIterator<Item = NameGrapheme> {
[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[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/hot/mod.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Free(BoxPtr<Name<C>>, BoxPtr<T>),
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Free(BoxPtr<dyn Name<C>>, BoxPtr<T>),
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/hot/mod.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Free(BoxPtr<Name<C>>, BoxPtr<T>),
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Free(BoxPtr<dyn Name<C>>, BoxPtr<T>),
[INFO] [stdout]    |                 +++
[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<Grapheme, Node<T>>),
[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<T, C> {
[INFO] [stdout]    |                ^^^^ -  -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Occupied(HashMap<Grapheme, Node<T, C>>),
[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<T>,
[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<T, C> {
[INFO] [stdout]    |                   ^^^ -  -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout]  8 |     hot: hot::Hot<T, C>,
[INFO] [stdout]    |                    +++
[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<Grapheme, Node<T>>),
[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<T, C> {
[INFO] [stdout]    |                ^^^^ -  -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Occupied(HashMap<Grapheme, Node<T, C>>),
[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<T>,
[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<T, C> {
[INFO] [stdout]    |                   ^^^ -  -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout]  8 |     hot: hot::Hot<T, C>,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/hotfuzz/mod.rs:17:65
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option<Vec<(&Name, &T)>> {
[INFO] [stdout]    |                                                                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option<Vec<(&dyn Name, &T)>> {
[INFO] [stdout]    |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/hotfuzz/mod.rs:21:73
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option<Vec<(&Name, &mut T)>> {
[INFO] [stdout]    |                                                                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option<Vec<(&dyn Name, &mut T)>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[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]    = note: `Name` is dyn-incompatible, otherwise a trait object could be used
[INFO] [stdout] help: use a new generic type parameter, constrained by `Name`
[INFO] [stdout]    |
[INFO] [stdout] 33 -     pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> {
[INFO] [stdout] 33 +     pub fn insert<T: Name>(&mut self, name: T, value: T) -> Result<(), InsertionError> {
[INFO] [stdout]    |
[INFO] [stdout] help: you can also use an opaque type, but users won't be able to specify the type parameter when calling the `fn`, having to rely exclusively on type inference
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn insert(&mut self, name: impl Name, value: T) -> Result<(), InsertionError> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[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]    = note: `Name` is dyn-incompatible, otherwise a trait object could be used
[INFO] [stdout] help: use a new generic type parameter, constrained by `Name`
[INFO] [stdout]    |
[INFO] [stdout] 37 -     pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> {
[INFO] [stdout] 37 +     pub fn remove<T: Name>(&mut self, name: &T, value: T) -> Option<(Name, T)> {
[INFO] [stdout]    |
[INFO] [stdout] help: you can also use an opaque type, but users won't be able to specify the type parameter when calling the `fn`, having to rely exclusively on type inference
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn remove(&mut self, name: &impl Name, value: T) -> Option<(Name, T)> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[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: you can add the `dyn` keyword if you want a trait object
[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[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/hotfuzz/mod.rs:17:65
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option<Vec<(&Name, &T)>> {
[INFO] [stdout]    |                                                                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn fuzz_get(&self, prompt: NonEmptyStr) -> Option<Vec<(&dyn Name, &T)>> {
[INFO] [stdout]    |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/hotfuzz/mod.rs:21:73
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option<Vec<(&Name, &mut T)>> {
[INFO] [stdout]    |                                                                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn fuzz_get_mut(&mut self, prompt: NonEmptyStr) -> Option<Vec<(&dyn Name, &mut T)>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[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]    = note: `Name` is dyn-incompatible, otherwise a trait object could be used
[INFO] [stdout] help: use a new generic type parameter, constrained by `Name`
[INFO] [stdout]    |
[INFO] [stdout] 33 -     pub fn insert(&mut self, name: Name, value: T) -> Result<(), InsertionError> {
[INFO] [stdout] 33 +     pub fn insert<T: Name>(&mut self, name: T, value: T) -> Result<(), InsertionError> {
[INFO] [stdout]    |
[INFO] [stdout] help: you can also use an opaque type, but users won't be able to specify the type parameter when calling the `fn`, having to rely exclusively on type inference
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn insert(&mut self, name: impl Name, value: T) -> Result<(), InsertionError> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[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]    = note: `Name` is dyn-incompatible, otherwise a trait object could be used
[INFO] [stdout] help: use a new generic type parameter, constrained by `Name`
[INFO] [stdout]    |
[INFO] [stdout] 37 -     pub fn remove(&mut self, name: &Name, value: T) -> Option<(Name, T)> {
[INFO] [stdout] 37 +     pub fn remove<T: Name>(&mut self, name: &T, value: T) -> Option<(Name, T)> {
[INFO] [stdout]    |
[INFO] [stdout] help: you can also use an opaque type, but users won't be able to specify the type parameter when calling the `fn`, having to rely exclusively on type inference
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn remove(&mut self, name: &impl Name, value: T) -> Option<(Name, T)> {
[INFO] [stdout]    |                                     ++++
[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<T> {
[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[E0782]: expected a type, found a trait
[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: you can add the `dyn` keyword if you want a trait object
[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[E0392]: type parameter `T` is never used
[INFO] [stdout]  --> src/fuzz/iters.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct IterMut<T> {
[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<T> {
[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<T> {
[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<T> {
[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:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Iter<T> {
[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<T> {
[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<T> {
[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:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Iter<T> {
[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<T> {
[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<Item = NameGrapheme> + '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 <https://github.com/rust-lang/rust/issues/87479> for more information
[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<Item = NameGrapheme> + '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 <https://github.com/rust-lang/rust/issues/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<Item = NameGrapheme> + '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[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<Item = NameGrapheme> + '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:21:10
[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]    |          ^^^^^^^^^^^^
[INFO] [stdout] 22 |     Hot(Grapheme),
[INFO] [stdout]    |         -------- this field does not implement `Copy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0204]: the trait `Copy` cannot be implemented for this type
[INFO] [stdout]   --> src/name.rs:21:10
[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]    |          ^^^^^^^^^^^^
[INFO] [stdout] 22 |     Hot(Grapheme),
[INFO] [stdout]    |         -------- this field does not implement `Copy`
[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<T> {
[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<T> {
[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[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/name.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     type Iter<'a> = <&'a T as IntoIterator>::IntoIter;
[INFO] [stdout]    |     ^^^^^^^^^^--^
[INFO] [stdout]    |     |         |
[INFO] [stdout]    |     |         the parameter type `T` must be valid for the lifetime `'a` as defined here...
[INFO] [stdout]    |     ...so that the reference type `&'a T` does not outlive the data it points at
[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[E0392]: type parameter `T` is never used
[INFO] [stdout]  --> src/hotfuzz/iters.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Iter<T> {
[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<T> {
[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[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/name.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     type Iter<'a> = <&'a T as IntoIterator>::IntoIter;
[INFO] [stdout]    |     ^^^^^^^^^^--^
[INFO] [stdout]    |     |         |
[INFO] [stdout]    |     |         the parameter type `T` must be valid for the lifetime `'a` as defined here...
[INFO] [stdout]    |     ...so that the reference type `&'a T` does not outlive the data it points at
[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[E0308]: mismatched types
[INFO] [stdout]   --> src/hot/mod.rs:27:66
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn get(&self, prompt: impl Iterator<Item = Grapheme>) -> HotResult<T, Iter<T>> {
[INFO] [stdout]    |            ---                                                   ^^^^^^^^^^^^^^^^^^^^^ expected `HotResult<T, Iter<T>>`, found `()`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]    |
[INFO] [stdout]    = note:   expected enum `HotResult<T, hot::iters::Iter<T>>`
[INFO] [stdout]            found unit type `()`
[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<Item = Grapheme>) -> HotResult<T, Iter<T>> {
[INFO] [stdout]    |            ---                                                   ^^^^^^^^^^^^^^^^^^^^^ expected `HotResult<T, Iter<T>>`, found `()`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]    |
[INFO] [stdout]    = note:   expected enum `HotResult<T, hot::iters::Iter<T>>`
[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<Item = Grapheme>) -> HotResult<T, Iter<T>> {
[INFO] [stdout]    |            -------                                                       ^^^^^^^^^^^^^^^^^^^^^ expected `HotResult<T, Iter<T>>`, found `()`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]    |
[INFO] [stdout]    = note:   expected enum `HotResult<T, hot::iters::Iter<T>>`
[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<Item = Grapheme>) -> HotResult<T, Iter<T>> {
[INFO] [stdout]    |            -------                                                       ^^^^^^^^^^^^^^^^^^^^^ expected `HotResult<T, Iter<T>>`, found `()`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]    |
[INFO] [stdout]    = note:   expected enum `HotResult<T, hot::iters::Iter<T>>`
[INFO] [stdout]            found unit type `()`
[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 `std::clone::AssertParamIsClone`
[INFO] [stdout]   --> /rustc/5f6abd89da253a562ad85d235b9342a3ac336c28/library/core/src/clone.rs:357:0
[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]: 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 `std::clone::AssertParamIsClone`
[INFO] [stdout]   --> /rustc/5f6abd89da253a562ad85d235b9342a3ac336c28/library/core/src/clone.rs:357:0
[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: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 `Debug` is not implemented for `Grapheme`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `Grapheme` or manually `impl Debug for Grapheme`
[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]: `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]    |         ^^^^^^^^ the trait `Debug` is not implemented for `Grapheme`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `Grapheme` or manually `impl Debug for Grapheme`
[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]: `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]    |             ^^^^^^^^ the trait `Debug` is not implemented for `Grapheme`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `Grapheme` or manually `impl Debug for Grapheme`
[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]: `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]    |             ^^^^^^^^ the trait `Debug` is not implemented for `Grapheme`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `Grapheme` or manually `impl Debug for Grapheme`
[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] 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]: 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] 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]: 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] 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]: 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] 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] 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: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] 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] 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] 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 `std::cmp::AssertParamIsEq`
[INFO] [stdout]   --> /rustc/5f6abd89da253a562ad85d235b9342a3ac336c28/library/core/src/cmp.rs:379:0
[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]: 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 `std::cmp::AssertParamIsEq`
[INFO] [stdout]   --> /rustc/5f6abd89da253a562ad85d235b9342a3ac336c28/library/core/src/cmp.rs:379:0
[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]   --> src/graphemes.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | 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]   --> src/graphemes.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | 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]   --> src/graphemes.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | 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]   --> src/graphemes.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | 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] 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] 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] 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] 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/5f6abd89da253a562ad85d235b9342a3ac336c28/library/core/src/option.rs:605:4
[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/5f6abd89da253a562ad85d235b9342a3ac336c28/library/core/src/option.rs:605:4
[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/5f6abd89da253a562ad85d235b9342a3ac336c28/library/core/src/option.rs:605:4
[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/5f6abd89da253a562ad85d235b9342a3ac336c28/library/core/src/option.rs:605:4
[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<T>` 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<T>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/fuzz/mod.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Fuzz<T> {
[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<T>` 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<T>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/fuzz/mod.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Fuzz<T> {
[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<T>` 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<T>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/fuzz/mod.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Fuzz<T> {
[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[E0599]: no method named `get_mut` found for struct `Fuzz<T>` 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<T>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/fuzz/mod.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Fuzz<T> {
[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[E0308]: mismatched types
[INFO] [stdout]   --> src/hotfuzz/mod.rs:41:27
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn iter(&self) -> iters::Iter<T> {
[INFO] [stdout]    |            ----           ^^^^^^^^^^^^^^ expected `Iter<T>`, 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<T>`
[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<T> {
[INFO] [stdout]    |            --------               ^^^^^^^^^^^^^^^^^ expected `IterMut<T>`, 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<T>`
[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<T>`, found `*mut _`
[INFO] [stdout]    |
[INFO] [stdout]    = note:   expected struct `BoxPtr<T>`
[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[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:41:27
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn iter(&self) -> iters::Iter<T> {
[INFO] [stdout]    |            ----           ^^^^^^^^^^^^^^ expected `Iter<T>`, 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<T>`
[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<T> {
[INFO] [stdout]    |            --------               ^^^^^^^^^^^^^^^^^ expected `IterMut<T>`, 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<T>`
[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<T>`, found `*mut _`
[INFO] [stdout]    |
[INFO] [stdout]    = note:   expected struct `BoxPtr<T>`
[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<Self, CreationError> {
[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[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<Self, CreationError> {
[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] 16 |             Ok(Self { first, rest: graphemes.as_str() })
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^ lifetime `'a` required
[INFO] [stdout]    |
[INFO] [stdout] help: add explicit lifetime `'a` to the type of `s`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn new(s: &'a str) -> Result<Self, CreationError> {
[INFO] [stdout]    |                    ++
[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] 16 |             Ok(Self { first, rest: graphemes.as_str() })
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^ lifetime `'a` required
[INFO] [stdout]    |
[INFO] [stdout] help: add explicit lifetime `'a` to the type of `s`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn new(s: &'a str) -> Result<Self, CreationError> {
[INFO] [stdout]    |                    ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0204, E0277, E0308, E0309, E0369, E0392, E0597, E0599...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0204, E0277, E0308, E0309, E0369, E0392, E0597, E0599...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `hotfuzz-core` (lib test) due to 46 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `hotfuzz-core` (lib) due to 46 previous errors
[INFO] running `Command { std: "docker" "inspect" "f0567029e1e67187085d8878cc1a6a4caeb0da9c626d005552ce46f292112da4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f0567029e1e67187085d8878cc1a6a4caeb0da9c626d005552ce46f292112da4", kill_on_drop: false }`
[INFO] [stdout] f0567029e1e67187085d8878cc1a6a4caeb0da9c626d005552ce46f292112da4
