[INFO] cloning repository https://github.com/SReichelt/enum_trait
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SReichelt/enum_trait" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSReichelt%2Fenum_trait", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSReichelt%2Fenum_trait'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b2f85f0c56cd4a19c9b59da65269a9aa512f36d8
[INFO] checking SReichelt/enum_trait against try#14731909456ca628a194900c35659dfdcb359e77 for pr-149195-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSReichelt%2Fenum_trait" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/SReichelt/enum_trait
[INFO] finished tweaking git repo https://github.com/SReichelt/enum_trait
[INFO] tweaked toml for git repo https://github.com/SReichelt/enum_trait written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/SReichelt/enum_trait on toolchain 14731909456ca628a194900c35659dfdcb359e77
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+14731909456ca628a194900c35659dfdcb359e77" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/SReichelt/enum_trait 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" "+14731909456ca628a194900c35659dfdcb359e77" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+14731909456ca628a194900c35659dfdcb359e77" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 11bf4c16aca3ca066e701c602967318c316655498ea2822029c7f803c7c65a8e
[INFO] running `Command { std: "docker" "start" "-a" "11bf4c16aca3ca066e701c602967318c316655498ea2822029c7f803c7c65a8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "11bf4c16aca3ca066e701c602967318c316655498ea2822029c7f803c7c65a8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11bf4c16aca3ca066e701c602967318c316655498ea2822029c7f803c7c65a8e", kill_on_drop: false }`
[INFO] [stdout] 11bf4c16aca3ca066e701c602967318c316655498ea2822029c7f803c7c65a8e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+14731909456ca628a194900c35659dfdcb359e77" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b28b3a0e07912ec5ff55afedbba1e7d89d6cccdba8a7c3b6adaf7fc78803bf2d
[INFO] running `Command { std: "docker" "start" "-a" "b28b3a0e07912ec5ff55afedbba1e7d89d6cccdba8a7c3b6adaf7fc78803bf2d", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.81
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]     Checking quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.60
[INFO] [stderr]     Checking enum_trait v0.1.0 (/opt/rustwide/workdir/enum_trait)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> enum_trait/src/item.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn output(&self) -> Result<OutputMetaItemList> {
[INFO] [stdout]    |                   ^^^^^            ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn output(&self) -> Result<OutputMetaItemList<'_>> {
[INFO] [stdout]    |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> enum_trait/src/item.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn output(&self) -> Result<OutputMetaItemList> {
[INFO] [stdout]    |                   ^^^^^            ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn output(&self) -> Result<OutputMetaItemList<'_>> {
[INFO] [stdout]    |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> enum_trait/src/item.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn output(&self) -> Result<OutputMetaItemList> {
[INFO] [stdout]    |                   ^^^^^            ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn output(&self) -> Result<OutputMetaItemList<'_>> {
[INFO] [stdout]    |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking enum_trait_core v0.1.0 (/opt/rustwide/workdir/enum_trait_core)
[INFO] [stderr]     Checking enum_trait_test v0.1.0 (/opt/rustwide/workdir/enum_trait_test)
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:307:18
[INFO] [stdout]     |
[INFO] [stdout] 307 |         assert!(<Equal<meta_num!(0), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                  ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:308:19
[INFO] [stdout]     |
[INFO] [stdout] 308 |         assert!(!<Equal<meta_num!(0), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:309:19
[INFO] [stdout]     |
[INFO] [stdout] 309 |         assert!(!<Equal<meta_num!(0), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:310:19
[INFO] [stdout]     |
[INFO] [stdout] 310 |         assert!(!<Equal<meta_num!(1), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:311:18
[INFO] [stdout]     |
[INFO] [stdout] 311 |         assert!(<Equal<meta_num!(1), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                  ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:312:19
[INFO] [stdout]     |
[INFO] [stdout] 312 |         assert!(!<Equal<meta_num!(1), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:313:19
[INFO] [stdout]     |
[INFO] [stdout] 313 |         assert!(!<Equal<meta_num!(1), meta_num!(3)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:314:19
[INFO] [stdout]     |
[INFO] [stdout] 314 |         assert!(!<Equal<meta_num!(2), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:315:19
[INFO] [stdout]     |
[INFO] [stdout] 315 |         assert!(!<Equal<meta_num!(2), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:316:18
[INFO] [stdout]     |
[INFO] [stdout] 316 |         assert!(<Equal<meta_num!(2), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                  ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `Equal` is ambiguous
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:317:19
[INFO] [stdout]     |
[INFO] [stdout] 317 |         assert!(!<Equal<meta_num!(2), meta_num!(3)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Equal` could refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] note: `Equal` could also refer to the type alias imported here
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Equal` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Zero: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:307:18
[INFO] [stdout]     |
[INFO] [stdout] 307 |         assert!(<Equal<meta_num!(0), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Zero`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  15 | |     pub enum trait MetaNum {
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:307:54
[INFO] [stdout]     |
[INFO] [stdout] 307 |         assert!(<Equal<meta_num!(0), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                                                      ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 307 -         assert!(<Equal<meta_num!(0), meta_num!(0)>>::VALUE);
[INFO] [stdout] 307 +         assert!(<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 307 -         assert!(<Equal<meta_num!(0), meta_num!(0)>>::VALUE);
[INFO] [stdout] 307 +         assert!(<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Zero>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:308:19
[INFO] [stdout]     |
[INFO] [stdout] 308 |         assert!(!<Equal<meta_num!(0), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Zero>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Zero: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:308:19
[INFO] [stdout]     |
[INFO] [stdout] 308 |         assert!(!<Equal<meta_num!(0), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Zero`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  15 | |     pub enum trait MetaNum {
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout] note: required by a bound in `meta_bool::MetaBool::__4`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:8:20
[INFO] [stdout]     |
[INFO] [stdout]   8 |     pub enum trait MetaBool {
[INFO] [stdout]     |                    ^^^^^^^^ required by this bound in `MetaBool::__4`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:308:55
[INFO] [stdout]     |
[INFO] [stdout] 308 |         assert!(!<Equal<meta_num!(0), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                                                       ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 308 -         assert!(!<Equal<meta_num!(0), meta_num!(1)>>::VALUE);
[INFO] [stdout] 308 +         assert!(!<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 308 -         assert!(!<Equal<meta_num!(0), meta_num!(1)>>::VALUE);
[INFO] [stdout] 308 +         assert!(!<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Succ<meta_num::Zero>>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:309:19
[INFO] [stdout]     |
[INFO] [stdout] 309 |         assert!(!<Equal<meta_num!(0), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Succ<meta_num::Zero>>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Zero: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:309:19
[INFO] [stdout]     |
[INFO] [stdout] 309 |         assert!(!<Equal<meta_num!(0), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Zero`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  15 | |     pub enum trait MetaNum {
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout] note: required by a bound in `meta_bool::MetaBool::__4`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:8:20
[INFO] [stdout]     |
[INFO] [stdout]   8 |     pub enum trait MetaBool {
[INFO] [stdout]     |                    ^^^^^^^^ required by this bound in `MetaBool::__4`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:309:55
[INFO] [stdout]     |
[INFO] [stdout] 309 |         assert!(!<Equal<meta_num!(0), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                                                       ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 309 -         assert!(!<Equal<meta_num!(0), meta_num!(2)>>::VALUE);
[INFO] [stdout] 309 +         assert!(!<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 309 -         assert!(!<Equal<meta_num!(0), meta_num!(2)>>::VALUE);
[INFO] [stdout] 309 +         assert!(!<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Zero: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:310:19
[INFO] [stdout]     |
[INFO] [stdout] 310 |         assert!(!<Equal<meta_num!(1), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Zero`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  15 | |     pub enum trait MetaNum {
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Zero>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:310:19
[INFO] [stdout]     |
[INFO] [stdout] 310 |         assert!(!<Equal<meta_num!(1), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Zero>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout] note: required by a bound in `meta_bool::MetaBool::__4`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:8:20
[INFO] [stdout]     |
[INFO] [stdout]   8 |     pub enum trait MetaBool {
[INFO] [stdout]     |                    ^^^^^^^^ required by this bound in `MetaBool::__4`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:310:55
[INFO] [stdout]     |
[INFO] [stdout] 310 |         assert!(!<Equal<meta_num!(1), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                                                       ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 310 -         assert!(!<Equal<meta_num!(1), meta_num!(0)>>::VALUE);
[INFO] [stdout] 310 +         assert!(!<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 310 -         assert!(!<Equal<meta_num!(1), meta_num!(0)>>::VALUE);
[INFO] [stdout] 310 +         assert!(!<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Zero>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:311:18
[INFO] [stdout]     |
[INFO] [stdout] 311 |         assert!(<Equal<meta_num!(1), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Zero>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:311:54
[INFO] [stdout]     |
[INFO] [stdout] 311 |         assert!(<Equal<meta_num!(1), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                                                      ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 311 -         assert!(<Equal<meta_num!(1), meta_num!(1)>>::VALUE);
[INFO] [stdout] 311 +         assert!(<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 311 -         assert!(<Equal<meta_num!(1), meta_num!(1)>>::VALUE);
[INFO] [stdout] 311 +         assert!(<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Succ<meta_num::Zero>>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:312:19
[INFO] [stdout]     |
[INFO] [stdout] 312 |         assert!(!<Equal<meta_num!(1), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Succ<meta_num::Zero>>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Zero>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:312:19
[INFO] [stdout]     |
[INFO] [stdout] 312 |         assert!(!<Equal<meta_num!(1), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Zero>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout] note: required by a bound in `meta_bool::MetaBool::__4`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:8:20
[INFO] [stdout]     |
[INFO] [stdout]   8 |     pub enum trait MetaBool {
[INFO] [stdout]     |                    ^^^^^^^^ required by this bound in `MetaBool::__4`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:312:55
[INFO] [stdout]     |
[INFO] [stdout] 312 |         assert!(!<Equal<meta_num!(1), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                                                       ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 312 -         assert!(!<Equal<meta_num!(1), meta_num!(2)>>::VALUE);
[INFO] [stdout] 312 +         assert!(!<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 312 -         assert!(!<Equal<meta_num!(1), meta_num!(2)>>::VALUE);
[INFO] [stdout] 312 +         assert!(!<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Succ<meta_num::Succ<meta_num::Zero>>>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:313:19
[INFO] [stdout]     |
[INFO] [stdout] 313 |         assert!(!<Equal<meta_num!(1), meta_num!(3)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Succ<meta_num::Succ<meta_num::Zero>>>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Zero>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:313:19
[INFO] [stdout]     |
[INFO] [stdout] 313 |         assert!(!<Equal<meta_num!(1), meta_num!(3)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Zero>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout] note: required by a bound in `meta_bool::MetaBool::__4`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:8:20
[INFO] [stdout]     |
[INFO] [stdout]   8 |     pub enum trait MetaBool {
[INFO] [stdout]     |                    ^^^^^^^^ required by this bound in `MetaBool::__4`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:313:55
[INFO] [stdout]     |
[INFO] [stdout] 313 |         assert!(!<Equal<meta_num!(1), meta_num!(3)>>::VALUE);
[INFO] [stdout]     |                                                       ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 313 -         assert!(!<Equal<meta_num!(1), meta_num!(3)>>::VALUE);
[INFO] [stdout] 313 +         assert!(!<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 313 -         assert!(!<Equal<meta_num!(1), meta_num!(3)>>::VALUE);
[INFO] [stdout] 313 +         assert!(!<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Zero: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:314:19
[INFO] [stdout]     |
[INFO] [stdout] 314 |         assert!(!<Equal<meta_num!(2), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Zero`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  15 | |     pub enum trait MetaNum {
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Succ<meta_num::Zero>>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:314:19
[INFO] [stdout]     |
[INFO] [stdout] 314 |         assert!(!<Equal<meta_num!(2), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Succ<meta_num::Zero>>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout] note: required by a bound in `meta_bool::MetaBool::__4`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:8:20
[INFO] [stdout]     |
[INFO] [stdout]   8 |     pub enum trait MetaBool {
[INFO] [stdout]     |                    ^^^^^^^^ required by this bound in `MetaBool::__4`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:314:55
[INFO] [stdout]     |
[INFO] [stdout] 314 |         assert!(!<Equal<meta_num!(2), meta_num!(0)>>::VALUE);
[INFO] [stdout]     |                                                       ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 314 -         assert!(!<Equal<meta_num!(2), meta_num!(0)>>::VALUE);
[INFO] [stdout] 314 +         assert!(!<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 314 -         assert!(!<Equal<meta_num!(2), meta_num!(0)>>::VALUE);
[INFO] [stdout] 314 +         assert!(!<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Zero>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:315:19
[INFO] [stdout]     |
[INFO] [stdout] 315 |         assert!(!<Equal<meta_num!(2), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Zero>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Succ<meta_num::Zero>>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:315:19
[INFO] [stdout]     |
[INFO] [stdout] 315 |         assert!(!<Equal<meta_num!(2), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Succ<meta_num::Zero>>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout] note: required by a bound in `meta_bool::MetaBool::__4`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:8:20
[INFO] [stdout]     |
[INFO] [stdout]   8 |     pub enum trait MetaBool {
[INFO] [stdout]     |                    ^^^^^^^^ required by this bound in `MetaBool::__4`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:315:55
[INFO] [stdout]     |
[INFO] [stdout] 315 |         assert!(!<Equal<meta_num!(2), meta_num!(1)>>::VALUE);
[INFO] [stdout]     |                                                       ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 315 -         assert!(!<Equal<meta_num!(2), meta_num!(1)>>::VALUE);
[INFO] [stdout] 315 +         assert!(!<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 315 -         assert!(!<Equal<meta_num!(2), meta_num!(1)>>::VALUE);
[INFO] [stdout] 315 +         assert!(!<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Succ<meta_num::Zero>>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:316:18
[INFO] [stdout]     |
[INFO] [stdout] 316 |         assert!(<Equal<meta_num!(2), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Succ<meta_num::Zero>>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:316:54
[INFO] [stdout]     |
[INFO] [stdout] 316 |         assert!(<Equal<meta_num!(2), meta_num!(2)>>::VALUE);
[INFO] [stdout]     |                                                      ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 316 -         assert!(<Equal<meta_num!(2), meta_num!(2)>>::VALUE);
[INFO] [stdout] 316 +         assert!(<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 316 -         assert!(<Equal<meta_num!(2), meta_num!(2)>>::VALUE);
[INFO] [stdout] 316 +         assert!(<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Succ<meta_num::Succ<meta_num::Zero>>>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:317:19
[INFO] [stdout]     |
[INFO] [stdout] 317 |         assert!(!<Equal<meta_num!(2), meta_num!(3)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Succ<meta_num::Succ<meta_num::Zero>>>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `meta_num::Succ<meta_num::Succ<meta_num::Zero>>: meta_bool::MetaBool` is not satisfied
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:317:19
[INFO] [stdout]     |
[INFO] [stdout] 317 |         assert!(!<Equal<meta_num!(2), meta_num!(3)>>::VALUE);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `meta_bool::MetaBool` is not implemented for `meta_num::Succ<meta_num::Succ<meta_num::Zero>>`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  16 | |         Zero,
[INFO] [stdout]  17 | |         Succ<N: MetaNum>,
[INFO] [stdout]     | |____________^
[INFO] [stdout] help: the following other types implement trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | // meta! {
[INFO] [stdout]   4 | ||     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | ||     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | ||     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout]   7 | ||     /// parameters are more flexible due to type-level matching.
[INFO] [stdout]   8 | ||     pub enum trait MetaBool {
[INFO] [stdout]   9 | ||         False,
[INFO] [stdout]     | ||_____________^ `meta_bool::False`
[INFO] [stdout]  10 | |          True,
[INFO] [stdout]     | |_____________^ `meta_bool::True`
[INFO] [stdout] note: required by a bound in `meta_bool::MetaBool::__4`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:8:20
[INFO] [stdout]     |
[INFO] [stdout]   8 |     pub enum trait MetaBool {
[INFO] [stdout]     |                    ^^^^^^^^ required by this bound in `MetaBool::__4`
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:317:55
[INFO] [stdout]     |
[INFO] [stdout] 317 |         assert!(!<Equal<meta_num!(2), meta_num!(3)>>::VALUE);
[INFO] [stdout]     |                                                       ^^^^^ multiple `VALUE` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in the trait `meta_bool::MetaBool`
[INFO] [stdout]    --> enum_trait_core/src/meta_bool.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | / meta! {
[INFO] [stdout]   4 | |     /// A trait that represents a meta-level `bool`. A type param constrained to `MetaBool` is
[INFO] [stdout]   5 | |     /// roughly equivalent to a const param of type `bool`, and in fact it is possible to convert
[INFO] [stdout]   6 | |     /// between the two representations via `VALUE` and `ConstToMetaBool`. However, `MetaBool`
[INFO] [stdout] ...   |
[INFO] [stdout]  14 | |         /// Converts this `MetaBool` instance to a `bool` constant.
[INFO] [stdout]  15 | |         pub const VALUE: bool = match <Self> {
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout] note: candidate #2 is defined in the trait `meta_num::MetaNum`
[INFO] [stdout]    --> enum_trait_core/src/meta_num.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | / meta! {
[INFO] [stdout]   6 | |     /// A trait that represents a meta-level unsigned integer. A type param constrained to `MetaNum`
[INFO] [stdout]   7 | |     /// is roughly equivalent to a const param of an unsigned integer type, and can be converted to
[INFO] [stdout]   8 | |     /// a constant via `VALUE`.
[INFO] [stdout] ...   |
[INFO] [stdout]  20 | |     trait impl MetaNum {
[INFO] [stdout]  21 | |         pub const VALUE: usize = match <Self> {
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     = note: this error originates in the macro `meta` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use fully-qualified syntax to disambiguate
[INFO] [stdout]     |
[INFO] [stdout] 317 -         assert!(!<Equal<meta_num!(2), meta_num!(3)>>::VALUE);
[INFO] [stdout] 317 +         assert!(!<_ as meta_bool::MetaBool>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 317 -         assert!(!<Equal<meta_num!(2), meta_num!(3)>>::VALUE);
[INFO] [stdout] 317 +         assert!(!<_ as meta_num::MetaNum>::VALUE);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0034, E0277, E0659.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0034`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `enum_trait_core` (lib test) due to 41 previous errors
[INFO] running `Command { std: "docker" "inspect" "b28b3a0e07912ec5ff55afedbba1e7d89d6cccdba8a7c3b6adaf7fc78803bf2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b28b3a0e07912ec5ff55afedbba1e7d89d6cccdba8a7c3b6adaf7fc78803bf2d", kill_on_drop: false }`
[INFO] [stdout] b28b3a0e07912ec5ff55afedbba1e7d89d6cccdba8a7c3b6adaf7fc78803bf2d
