[INFO] fetching crate const-bool 0.1.4...
[INFO] testing const-bool-0.1.4 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate const-bool 0.1.4 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate const-bool 0.1.4
[INFO] finished tweaking crates.io crate const-bool 0.1.4
[INFO] tweaked toml for crates.io crate const-bool 0.1.4 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate const-bool 0.1.4 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate const-bool 0.1.4 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4
[INFO] running `Command { std: "docker" "start" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling const-bool v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `typewit`
[INFO] [stdout]  --> src/const_bool.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[cfg(feature = "typewit")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `typewit` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bool_select_wits.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | /     match A::WIT {
[INFO] [stdout] 29 | |         BoolWit::True(is_true) => todo!(),
[INFO] [stdout] 30 | |         BoolWit::False(is_false) => todo!()
[INFO] [stdout] 31 | |     }
[INFO] [stdout]    | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 32 |       unsafe{ Is::proof_unchecked() }
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/witness.rs:231:34
[INFO] [stdout]     |
[INFO] [stdout] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/witness.rs:234:17
[INFO] [stdout]     |
[INFO] [stdout] 234 |             let a = eq.project::<Discr>();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eq`
[INFO] [stdout]    --> src/witness.rs:237:24
[INFO] [stdout]     |
[INFO] [stdout] 237 |         BoolWit::False(eq) => todo!(),
[INFO] [stdout]     |                        ^^ help: if this is intentional, prefix it with an underscore: `_eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_true`
[INFO] [stdout]   --> src/bool_select_wits.rs:29:23
[INFO] [stdout]    |
[INFO] [stdout] 29 |         BoolWit::True(is_true) => todo!(),
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_false`
[INFO] [stdout]   --> src/bool_select_wits.rs:30:24
[INFO] [stdout]    |
[INFO] [stdout] 30 |         BoolWit::False(is_false) => todo!()
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_false`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/bool_select_wits.rs:37:35
[INFO] [stdout]    |
[INFO] [stdout] 37 |         BoolWit::True(is_true) => unsafe {
[INFO] [stdout]    |                                   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_true`
[INFO] [stdout]   --> src/bool_select_wits.rs:37:23
[INFO] [stdout]    |
[INFO] [stdout] 37 |         BoolWit::True(is_true) => unsafe {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_false`
[INFO] [stdout]   --> src/bool_select_wits.rs:40:24
[INFO] [stdout]    |
[INFO] [stdout] 40 |         BoolWit::False(is_false) => todo!(),
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_false`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstFlag` is never constructed
[INFO] [stdout]   --> src/const_flag.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ConstFlag<B: ConstBool>(PhantomData<B>);
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `TRUE` is never used
[INFO] [stdout]   --> src/const_flag.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl ConstFlag<ConstTrue> {
[INFO] [stdout]    | ------------------------- associated constant in this implementation
[INFO] [stdout] 24 |     pub const TRUE: Self = Self(PhantomData);
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `FALSE` is never used
[INFO] [stdout]   --> src/const_flag.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl ConstFlag<ConstFalse> {
[INFO] [stdout]    | -------------------------- associated constant in this implementation
[INFO] [stdout] 28 |     pub const FALSE: Self = Self(PhantomData);
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FromBool` is never used
[INFO] [stdout]  --> src/from_bool.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | trait FromBool<const B: bool> {
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_left` is never used
[INFO] [stdout]   --> src/witness.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl<A, B> Is<A, B> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     const fn on_left<Z>(self, _: Is<Z, A>) -> Is<Z, B> { Is(PhantomData) }
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct SelFn<T, F>(PhantomData<(T, F)>);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct NotFn;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct OrFn<R: ConstBool>(PhantomData<R>);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AndFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct AndFn<R: ConstBool>(PhantomData<R>);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XorFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | struct XorFn<R: ConstBool>(PhantomData<R>);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `not_not_eq` is never used
[INFO] [stdout]    --> src/witness.rs:110:10
[INFO] [stdout]     |
[INFO] [stdout] 110 | const fn not_not_eq<F: ConstBool>() -> Is<Not<Not<F>>, F> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `excluded_middle_eq` is never used
[INFO] [stdout]    --> src/witness.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 | const fn excluded_middle_eq<A: ConstBool>() -> Is<Or<A, Not<A>>, ConstTrue> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelL` is never constructed
[INFO] [stdout]    --> src/witness.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | struct SelL<T, U>(PhantomData<(T, U)>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelR` is never constructed
[INFO] [stdout]    --> src/witness.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | struct SelR<T, U>(PhantomData<(T, U)>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_flip_eq` is never used
[INFO] [stdout]    --> src/witness.rs:163:10
[INFO] [stdout]     |
[INFO] [stdout] 163 | const fn select_flip_eq<A: ConstBool, T, U>()
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotAndFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct NotAndFn;   // (A,B) ↦ Not<And<A,B>>
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrNotFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | struct OrNotFn;    // (A,B) ↦ Or<Not<A>,Not<B>>
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotOrFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | struct NotOrFn;    // (A,B) ↦ Not<Or<A,B>>
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AndNotFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct AndNotFn;   // (A,B) ↦ And<Not<A>,Not<B>>
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `de_morgan_and_eq` is never used
[INFO] [stdout]    --> src/witness.rs:195:10
[INFO] [stdout]     |
[INFO] [stdout] 195 | const fn de_morgan_and_eq<A: ConstBool, B: ConstBool>()
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `de_morgan_or_eq` is never used
[INFO] [stdout]    --> src/witness.rs:207:14
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub const fn de_morgan_or_eq<A: ConstBool, B: ConstBool>()
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Void` is never used
[INFO] [stdout]    --> src/witness.rs:219:6
[INFO] [stdout]     |
[INFO] [stdout] 219 | enum Void {}                       // ⊥：没有任何值
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Discr` is never constructed
[INFO] [stdout]    --> src/witness.rs:221:8
[INFO] [stdout]     |
[INFO] [stdout] 221 | struct Discr;                          // F ↦ F::Select<(), Void>
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `true_ne_false` is never used
[INFO] [stdout]    --> src/witness.rs:225:10
[INFO] [stdout]     |
[INFO] [stdout] 225 | const fn true_ne_false(h: Is<ConstTrue, ConstFalse>) -> Void {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `A_ne_NotA` is never used
[INFO] [stdout]    --> src/witness.rs:231:10
[INFO] [stdout]     |
[INFO] [stdout] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Select` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Select<A, T, F> = <A as ConstBool>::SelectBool<T, F>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Not` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type Not<A> = <A as ConstBool>::SelectBool<ConstFalse, ConstTrue>;
[INFO] [stdout]   |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Or` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Or<A, B> = <A as ConstBool>::SelectBool<ConstTrue, B>;
[INFO] [stdout]   |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SelectAnd` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type SelectAnd<A, B> = <A as ConstBool>::SelectBool<B, ConstFalse>;
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Eq` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Eq<A, B> = <A as ConstBool>::SelectBool<B, Not<B>>;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Xor` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Xor<A, B> = <A as ConstBool>::SelectBool<Not<B>, B>;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SelectNor` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | type SelectNor<A, B> = <A as ConstBool>::SelectBool<ConstFalse, Not<B>>;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SelectNand` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type SelectNand<A, B> = <A as ConstBool>::SelectBool<Not<B>, ConstTrue>;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Me` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | type Me<A> = Select<A, ConstTrue, ConstFalse>;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_select_flip` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn proof_select_flip<A: ConstBool, T: ConstBool, F: ConstBool>() -> Is<Select<A, T, F>, Select<Not<A>, F, T>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_not_not` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn proof_not_not<A: ConstBool>() -> Is<Not<Not<A>>, A> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_xor_swap` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn proof_xor_swap<A: ConstBool, B: ConstBool>() -> Is<Xor<A, B>, Xor<B, A>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_not_flip` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn proof_not_flip<A: ConstBool, B: ConstBool>() -> Is<Select<A, B, Not<B>>, Select<Not<A>, Not<B>, B>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `A_ne_NotA` should have a snake case name
[INFO] [stdout]    --> src/witness.rs:231:10
[INFO] [stdout]     |
[INFO] [stdout] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stdout]     |          ^^^^^^^^^ help: convert the identifier to snake case: `a_ne_not_a`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.16s
[INFO] running `Command { std: "docker" "inspect" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stdout] warning: unexpected `cfg` condition value: `typewit`
[INFO] [stdout]  --> src/const_bool.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[cfg(feature = "typewit")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `typewit` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bool_select_wits.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | /     match A::WIT {
[INFO] [stdout] 29 | |         BoolWit::True(is_true) => todo!(),
[INFO] [stdout] 30 | |         BoolWit::False(is_false) => todo!()
[INFO] [stdout] 31 | |     }
[INFO] [stdout]    | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 32 |       unsafe{ Is::proof_unchecked() }
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/witness.rs:231:34
[INFO] [stdout]     |
[INFO] [stdout] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/witness.rs:234:17
[INFO] [stdout]     |
[INFO] [stdout] 234 |             let a = eq.project::<Discr>();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eq`
[INFO] [stdout]    --> src/witness.rs:237:24
[INFO] [stdout]     |
[INFO] [stdout] 237 |         BoolWit::False(eq) => todo!(),
[INFO] [stdout]     |                        ^^ help: if this is intentional, prefix it with an underscore: `_eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_true`
[INFO] [stdout]   --> src/bool_select_wits.rs:29:23
[INFO] [stdout]    |
[INFO] [stdout] 29 |         BoolWit::True(is_true) => todo!(),
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_false`
[INFO] [stdout]   --> src/bool_select_wits.rs:30:24
[INFO] [stdout]    |
[INFO] [stdout] 30 |         BoolWit::False(is_false) => todo!()
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_false`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/bool_select_wits.rs:37:35
[INFO] [stdout]    |
[INFO] [stdout] 37 |         BoolWit::True(is_true) => unsafe {
[INFO] [stdout]    |                                   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_true`
[INFO] [stdout]   --> src/bool_select_wits.rs:37:23
[INFO] [stdout]    |
[INFO] [stdout] 37 |         BoolWit::True(is_true) => unsafe {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_false`
[INFO] [stdout]   --> src/bool_select_wits.rs:40:24
[INFO] [stdout]    |
[INFO] [stdout] 40 |         BoolWit::False(is_false) => todo!(),
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_false`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstFlag` is never constructed
[INFO] [stdout]   --> src/const_flag.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ConstFlag<B: ConstBool>(PhantomData<B>);
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `TRUE` is never used
[INFO] [stdout]   --> src/const_flag.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl ConstFlag<ConstTrue> {
[INFO] [stdout]    | ------------------------- associated constant in this implementation
[INFO] [stdout] 24 |     pub const TRUE: Self = Self(PhantomData);
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `FALSE` is never used
[INFO] [stdout]   --> src/const_flag.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl ConstFlag<ConstFalse> {
[INFO] [stdout]    | -------------------------- associated constant in this implementation
[INFO] [stdout] 28 |     pub const FALSE: Self = Self(PhantomData);
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FromBool` is never used
[INFO] [stdout]  --> src/from_bool.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | trait FromBool<const B: bool> {
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_left` is never used
[INFO] [stdout]   --> src/witness.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl<A, B> Is<A, B> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     const fn on_left<Z>(self, _: Is<Z, A>) -> Is<Z, B> { Is(PhantomData) }
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct SelFn<T, F>(PhantomData<(T, F)>);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct NotFn;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct OrFn<R: ConstBool>(PhantomData<R>);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AndFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct AndFn<R: ConstBool>(PhantomData<R>);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XorFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | struct XorFn<R: ConstBool>(PhantomData<R>);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `not_not_eq` is never used
[INFO] [stdout]    --> src/witness.rs:110:10
[INFO] [stdout]     |
[INFO] [stdout] 110 | const fn not_not_eq<F: ConstBool>() -> Is<Not<Not<F>>, F> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `excluded_middle_eq` is never used
[INFO] [stdout]    --> src/witness.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 | const fn excluded_middle_eq<A: ConstBool>() -> Is<Or<A, Not<A>>, ConstTrue> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelL` is never constructed
[INFO] [stdout]    --> src/witness.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | struct SelL<T, U>(PhantomData<(T, U)>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelR` is never constructed
[INFO] [stdout]    --> src/witness.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | struct SelR<T, U>(PhantomData<(T, U)>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_flip_eq` is never used
[INFO] [stdout]    --> src/witness.rs:163:10
[INFO] [stdout]     |
[INFO] [stdout] 163 | const fn select_flip_eq<A: ConstBool, T, U>()
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotAndFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct NotAndFn;   // (A,B) ↦ Not<And<A,B>>
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrNotFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | struct OrNotFn;    // (A,B) ↦ Or<Not<A>,Not<B>>
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotOrFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | struct NotOrFn;    // (A,B) ↦ Not<Or<A,B>>
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AndNotFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct AndNotFn;   // (A,B) ↦ And<Not<A>,Not<B>>
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `de_morgan_and_eq` is never used
[INFO] [stdout]    --> src/witness.rs:195:10
[INFO] [stdout]     |
[INFO] [stdout] 195 | const fn de_morgan_and_eq<A: ConstBool, B: ConstBool>()
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `de_morgan_or_eq` is never used
[INFO] [stdout]    --> src/witness.rs:207:14
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub const fn de_morgan_or_eq<A: ConstBool, B: ConstBool>()
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Void` is never used
[INFO] [stdout]    --> src/witness.rs:219:6
[INFO] [stdout]     |
[INFO] [stdout] 219 | enum Void {}                       // ⊥：没有任何值
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Discr` is never constructed
[INFO] [stdout]    --> src/witness.rs:221:8
[INFO] [stdout]     |
[INFO] [stdout] 221 | struct Discr;                          // F ↦ F::Select<(), Void>
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `true_ne_false` is never used
[INFO] [stdout]    --> src/witness.rs:225:10
[INFO] [stdout]     |
[INFO] [stdout] 225 | const fn true_ne_false(h: Is<ConstTrue, ConstFalse>) -> Void {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `A_ne_NotA` is never used
[INFO] [stdout]    --> src/witness.rs:231:10
[INFO] [stdout]     |
[INFO] [stdout] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Select` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Select<A, T, F> = <A as ConstBool>::SelectBool<T, F>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Not` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type Not<A> = <A as ConstBool>::SelectBool<ConstFalse, ConstTrue>;
[INFO] [stdout]   |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Or` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Or<A, B> = <A as ConstBool>::SelectBool<ConstTrue, B>;
[INFO] [stdout]   |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SelectAnd` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type SelectAnd<A, B> = <A as ConstBool>::SelectBool<B, ConstFalse>;
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Eq` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Eq<A, B> = <A as ConstBool>::SelectBool<B, Not<B>>;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Xor` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Xor<A, B> = <A as ConstBool>::SelectBool<Not<B>, B>;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SelectNor` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | type SelectNor<A, B> = <A as ConstBool>::SelectBool<ConstFalse, Not<B>>;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SelectNand` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type SelectNand<A, B> = <A as ConstBool>::SelectBool<Not<B>, ConstTrue>;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Me` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | type Me<A> = Select<A, ConstTrue, ConstFalse>;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_select_flip` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn proof_select_flip<A: ConstBool, T: ConstBool, F: ConstBool>() -> Is<Select<A, T, F>, Select<Not<A>, F, T>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_not_not` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn proof_not_not<A: ConstBool>() -> Is<Not<Not<A>>, A> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_xor_swap` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn proof_xor_swap<A: ConstBool, B: ConstBool>() -> Is<Xor<A, B>, Xor<B, A>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_not_flip` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn proof_not_flip<A: ConstBool, B: ConstBool>() -> Is<Select<A, B, Not<B>>, Select<Not<A>, Not<B>, B>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `A_ne_NotA` should have a snake case name
[INFO] [stdout]    --> src/witness.rs:231:10
[INFO] [stdout]     |
[INFO] [stdout] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stdout]     |          ^^^^^^^^^ help: convert the identifier to snake case: `a_ne_not_a`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling const-bool v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `typewit`
[INFO] [stdout]  --> src/const_bool.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[cfg(feature = "typewit")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `typewit` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bool_select_wits.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | /     match A::WIT {
[INFO] [stdout] 29 | |         BoolWit::True(is_true) => todo!(),
[INFO] [stdout] 30 | |         BoolWit::False(is_false) => todo!()
[INFO] [stdout] 31 | |     }
[INFO] [stdout]    | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 32 |       unsafe{ Is::proof_unchecked() }
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/witness.rs:231:34
[INFO] [stdout]     |
[INFO] [stdout] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/witness.rs:234:17
[INFO] [stdout]     |
[INFO] [stdout] 234 |             let a = eq.project::<Discr>();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eq`
[INFO] [stdout]    --> src/witness.rs:237:24
[INFO] [stdout]     |
[INFO] [stdout] 237 |         BoolWit::False(eq) => todo!(),
[INFO] [stdout]     |                        ^^ help: if this is intentional, prefix it with an underscore: `_eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_true`
[INFO] [stdout]   --> src/bool_select_wits.rs:29:23
[INFO] [stdout]    |
[INFO] [stdout] 29 |         BoolWit::True(is_true) => todo!(),
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_false`
[INFO] [stdout]   --> src/bool_select_wits.rs:30:24
[INFO] [stdout]    |
[INFO] [stdout] 30 |         BoolWit::False(is_false) => todo!()
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_false`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/bool_select_wits.rs:37:35
[INFO] [stdout]    |
[INFO] [stdout] 37 |         BoolWit::True(is_true) => unsafe {
[INFO] [stdout]    |                                   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_true`
[INFO] [stdout]   --> src/bool_select_wits.rs:37:23
[INFO] [stdout]    |
[INFO] [stdout] 37 |         BoolWit::True(is_true) => unsafe {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_false`
[INFO] [stdout]   --> src/bool_select_wits.rs:40:24
[INFO] [stdout]    |
[INFO] [stdout] 40 |         BoolWit::False(is_false) => todo!(),
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_false`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstFlag` is never constructed
[INFO] [stdout]   --> src/const_flag.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ConstFlag<B: ConstBool>(PhantomData<B>);
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `TRUE` is never used
[INFO] [stdout]   --> src/const_flag.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl ConstFlag<ConstTrue> {
[INFO] [stdout]    | ------------------------- associated constant in this implementation
[INFO] [stdout] 24 |     pub const TRUE: Self = Self(PhantomData);
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `FALSE` is never used
[INFO] [stdout]   --> src/const_flag.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl ConstFlag<ConstFalse> {
[INFO] [stdout]    | -------------------------- associated constant in this implementation
[INFO] [stdout] 28 |     pub const FALSE: Self = Self(PhantomData);
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FromBool` is never used
[INFO] [stdout]  --> src/from_bool.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | trait FromBool<const B: bool> {
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_left` is never used
[INFO] [stdout]   --> src/witness.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl<A, B> Is<A, B> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     const fn on_left<Z>(self, _: Is<Z, A>) -> Is<Z, B> { Is(PhantomData) }
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct SelFn<T, F>(PhantomData<(T, F)>);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct NotFn;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct OrFn<R: ConstBool>(PhantomData<R>);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AndFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct AndFn<R: ConstBool>(PhantomData<R>);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XorFn` is never constructed
[INFO] [stdout]   --> src/witness.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | struct XorFn<R: ConstBool>(PhantomData<R>);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `not_not_eq` is never used
[INFO] [stdout]    --> src/witness.rs:110:10
[INFO] [stdout]     |
[INFO] [stdout] 110 | const fn not_not_eq<F: ConstBool>() -> Is<Not<Not<F>>, F> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `excluded_middle_eq` is never used
[INFO] [stdout]    --> src/witness.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 | const fn excluded_middle_eq<A: ConstBool>() -> Is<Or<A, Not<A>>, ConstTrue> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelL` is never constructed
[INFO] [stdout]    --> src/witness.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | struct SelL<T, U>(PhantomData<(T, U)>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelR` is never constructed
[INFO] [stdout]    --> src/witness.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | struct SelR<T, U>(PhantomData<(T, U)>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_flip_eq` is never used
[INFO] [stdout]    --> src/witness.rs:163:10
[INFO] [stdout]     |
[INFO] [stdout] 163 | const fn select_flip_eq<A: ConstBool, T, U>()
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotAndFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct NotAndFn;   // (A,B) ↦ Not<And<A,B>>
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrNotFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | struct OrNotFn;    // (A,B) ↦ Or<Not<A>,Not<B>>
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotOrFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | struct NotOrFn;    // (A,B) ↦ Not<Or<A,B>>
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AndNotFn` is never constructed
[INFO] [stdout]    --> src/witness.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct AndNotFn;   // (A,B) ↦ And<Not<A>,Not<B>>
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `de_morgan_and_eq` is never used
[INFO] [stdout]    --> src/witness.rs:195:10
[INFO] [stdout]     |
[INFO] [stdout] 195 | const fn de_morgan_and_eq<A: ConstBool, B: ConstBool>()
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `de_morgan_or_eq` is never used
[INFO] [stdout]    --> src/witness.rs:207:14
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub const fn de_morgan_or_eq<A: ConstBool, B: ConstBool>()
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Void` is never used
[INFO] [stdout]    --> src/witness.rs:219:6
[INFO] [stdout]     |
[INFO] [stdout] 219 | enum Void {}                       // ⊥：没有任何值
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Discr` is never constructed
[INFO] [stdout]    --> src/witness.rs:221:8
[INFO] [stdout]     |
[INFO] [stdout] 221 | struct Discr;                          // F ↦ F::Select<(), Void>
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `true_ne_false` is never used
[INFO] [stdout]    --> src/witness.rs:225:10
[INFO] [stdout]     |
[INFO] [stdout] 225 | const fn true_ne_false(h: Is<ConstTrue, ConstFalse>) -> Void {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `A_ne_NotA` is never used
[INFO] [stdout]    --> src/witness.rs:231:10
[INFO] [stdout]     |
[INFO] [stdout] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Select` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Select<A, T, F> = <A as ConstBool>::SelectBool<T, F>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Not` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type Not<A> = <A as ConstBool>::SelectBool<ConstFalse, ConstTrue>;
[INFO] [stdout]   |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Or` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Or<A, B> = <A as ConstBool>::SelectBool<ConstTrue, B>;
[INFO] [stdout]   |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SelectAnd` is never used
[INFO] [stdout]  --> src/bool_select_wits.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type SelectAnd<A, B> = <A as ConstBool>::SelectBool<B, ConstFalse>;
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Eq` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Eq<A, B> = <A as ConstBool>::SelectBool<B, Not<B>>;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Xor` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Xor<A, B> = <A as ConstBool>::SelectBool<Not<B>, B>;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SelectNor` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | type SelectNor<A, B> = <A as ConstBool>::SelectBool<ConstFalse, Not<B>>;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SelectNand` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type SelectNand<A, B> = <A as ConstBool>::SelectBool<Not<B>, ConstTrue>;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Me` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | type Me<A> = Select<A, ConstTrue, ConstFalse>;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_select_flip` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn proof_select_flip<A: ConstBool, T: ConstBool, F: ConstBool>() -> Is<Select<A, T, F>, Select<Not<A>, F, T>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_not_not` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn proof_not_not<A: ConstBool>() -> Is<Not<Not<A>>, A> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_xor_swap` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn proof_xor_swap<A: ConstBool, B: ConstBool>() -> Is<Xor<A, B>, Xor<B, A>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proof_not_flip` is never used
[INFO] [stdout]   --> src/bool_select_wits.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn proof_not_flip<A: ConstBool, B: ConstBool>() -> Is<Select<A, B, Not<B>>, Select<Not<A>, Not<B>, B>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `A_ne_NotA` should have a snake case name
[INFO] [stdout]    --> src/witness.rs:231:10
[INFO] [stdout]     |
[INFO] [stdout] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stdout]     |          ^^^^^^^^^ help: convert the identifier to snake case: `a_ne_not_a`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.29s
[INFO] running `Command { std: "docker" "inspect" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unexpected `cfg` condition value: `typewit`
[INFO] [stderr]  --> src/const_bool.rs:7:7
[INFO] [stderr]   |
[INFO] [stderr] 7 | #[cfg(feature = "typewit")]
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stderr]   |
[INFO] [stderr]   = note: no expected values for `feature`
[INFO] [stderr]   = help: consider adding `typewit` as a feature in `Cargo.toml`
[INFO] [stderr]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]   --> src/bool_select_wits.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 28 | /     match A::WIT {
[INFO] [stderr] 29 | |         BoolWit::True(is_true) => todo!(),
[INFO] [stderr] 30 | |         BoolWit::False(is_false) => todo!()
[INFO] [stderr] 31 | |     }
[INFO] [stderr]    | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stderr] 32 |       unsafe{ Is::proof_unchecked() }
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `h`
[INFO] [stderr]    --> src/witness.rs:231:34
[INFO] [stderr]     |
[INFO] [stderr] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stderr]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]    --> src/witness.rs:234:17
[INFO] [stderr]     |
[INFO] [stderr] 234 |             let a = eq.project::<Discr>();
[INFO] [stderr]     |                 ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `eq`
[INFO] [stderr]    --> src/witness.rs:237:24
[INFO] [stderr]     |
[INFO] [stderr] 237 |         BoolWit::False(eq) => todo!(),
[INFO] [stderr]     |                        ^^ help: if this is intentional, prefix it with an underscore: `_eq`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `is_true`
[INFO] [stderr]   --> src/bool_select_wits.rs:29:23
[INFO] [stderr]    |
[INFO] [stderr] 29 |         BoolWit::True(is_true) => todo!(),
[INFO] [stderr]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_true`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `is_false`
[INFO] [stderr]   --> src/bool_select_wits.rs:30:24
[INFO] [stderr]    |
[INFO] [stderr] 30 |         BoolWit::False(is_false) => todo!()
[INFO] [stderr]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_false`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]   --> src/bool_select_wits.rs:37:35
[INFO] [stderr]    |
[INFO] [stderr] 37 |         BoolWit::True(is_true) => unsafe {
[INFO] [stderr]    |                                   ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `is_true`
[INFO] [stderr]   --> src/bool_select_wits.rs:37:23
[INFO] [stderr]    |
[INFO] [stderr] 37 |         BoolWit::True(is_true) => unsafe {
[INFO] [stderr]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_true`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `is_false`
[INFO] [stderr]   --> src/bool_select_wits.rs:40:24
[INFO] [stderr]    |
[INFO] [stderr] 40 |         BoolWit::False(is_false) => todo!(),
[INFO] [stderr]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_false`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConstFlag` is never constructed
[INFO] [stderr]   --> src/const_flag.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct ConstFlag<B: ConstBool>(PhantomData<B>);
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated constant `TRUE` is never used
[INFO] [stderr]   --> src/const_flag.rs:24:15
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl ConstFlag<ConstTrue> {
[INFO] [stderr]    | ------------------------- associated constant in this implementation
[INFO] [stderr] 24 |     pub const TRUE: Self = Self(PhantomData);
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated constant `FALSE` is never used
[INFO] [stderr]   --> src/const_flag.rs:28:15
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl ConstFlag<ConstFalse> {
[INFO] [stderr]    | -------------------------- associated constant in this implementation
[INFO] [stderr] 28 |     pub const FALSE: Self = Self(PhantomData);
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `FromBool` is never used
[INFO] [stderr]  --> src/from_bool.rs:3:7
[INFO] [stderr]   |
[INFO] [stderr] 3 | trait FromBool<const B: bool> {
[INFO] [stderr]   |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `on_left` is never used
[INFO] [stderr]   --> src/witness.rs:33:14
[INFO] [stderr]    |
[INFO] [stderr] 26 | impl<A, B> Is<A, B> {
[INFO] [stderr]    | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 33 |     const fn on_left<Z>(self, _: Is<Z, A>) -> Is<Z, B> { Is(PhantomData) }
[INFO] [stderr]    |              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SelFn` is never constructed
[INFO] [stderr]   --> src/witness.rs:74:8
[INFO] [stderr]    |
[INFO] [stderr] 74 | struct SelFn<T, F>(PhantomData<(T, F)>);
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NotFn` is never constructed
[INFO] [stderr]   --> src/witness.rs:80:8
[INFO] [stderr]    |
[INFO] [stderr] 80 | struct NotFn;
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `OrFn` is never constructed
[INFO] [stderr]   --> src/witness.rs:86:8
[INFO] [stderr]    |
[INFO] [stderr] 86 | struct OrFn<R: ConstBool>(PhantomData<R>);
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AndFn` is never constructed
[INFO] [stderr]   --> src/witness.rs:92:8
[INFO] [stderr]    |
[INFO] [stderr] 92 | struct AndFn<R: ConstBool>(PhantomData<R>);
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `XorFn` is never constructed
[INFO] [stderr]   --> src/witness.rs:98:8
[INFO] [stderr]    |
[INFO] [stderr] 98 | struct XorFn<R: ConstBool>(PhantomData<R>);
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `not_not_eq` is never used
[INFO] [stderr]    --> src/witness.rs:110:10
[INFO] [stderr]     |
[INFO] [stderr] 110 | const fn not_not_eq<F: ConstBool>() -> Is<Not<Not<F>>, F> {
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `excluded_middle_eq` is never used
[INFO] [stderr]    --> src/witness.rs:129:10
[INFO] [stderr]     |
[INFO] [stderr] 129 | const fn excluded_middle_eq<A: ConstBool>() -> Is<Or<A, Not<A>>, ConstTrue> {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SelL` is never constructed
[INFO] [stderr]    --> src/witness.rs:151:8
[INFO] [stderr]     |
[INFO] [stderr] 151 | struct SelL<T, U>(PhantomData<(T, U)>);
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SelR` is never constructed
[INFO] [stderr]    --> src/witness.rs:157:8
[INFO] [stderr]     |
[INFO] [stderr] 157 | struct SelR<T, U>(PhantomData<(T, U)>);
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `select_flip_eq` is never used
[INFO] [stderr]    --> src/witness.rs:163:10
[INFO] [stderr]     |
[INFO] [stderr] 163 | const fn select_flip_eq<A: ConstBool, T, U>()
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NotAndFn` is never constructed
[INFO] [stderr]    --> src/witness.rs:184:8
[INFO] [stderr]     |
[INFO] [stderr] 184 | struct NotAndFn;   // (A,B) ↦ Not<And<A,B>>
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `OrNotFn` is never constructed
[INFO] [stderr]    --> src/witness.rs:186:8
[INFO] [stderr]     |
[INFO] [stderr] 186 | struct OrNotFn;    // (A,B) ↦ Or<Not<A>,Not<B>>
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NotOrFn` is never constructed
[INFO] [stderr]    --> src/witness.rs:189:8
[INFO] [stderr]     |
[INFO] [stderr] 189 | struct NotOrFn;    // (A,B) ↦ Not<Or<A,B>>
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AndNotFn` is never constructed
[INFO] [stderr]    --> src/witness.rs:191:8
[INFO] [stderr]     |
[INFO] [stderr] 191 | struct AndNotFn;   // (A,B) ↦ And<Not<A>,Not<B>>
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `de_morgan_and_eq` is never used
[INFO] [stderr]    --> src/witness.rs:195:10
[INFO] [stderr]     |
[INFO] [stderr] 195 | const fn de_morgan_and_eq<A: ConstBool, B: ConstBool>()
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `de_morgan_or_eq` is never used
[INFO] [stderr]    --> src/witness.rs:207:14
[INFO] [stderr]     |
[INFO] [stderr] 207 | pub const fn de_morgan_or_eq<A: ConstBool, B: ConstBool>()
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Void` is never used
[INFO] [stderr]    --> src/witness.rs:219:6
[INFO] [stderr]     |
[INFO] [stderr] 219 | enum Void {}                       // ⊥：没有任何值
[INFO] [stderr]     |      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Discr` is never constructed
[INFO] [stderr]    --> src/witness.rs:221:8
[INFO] [stderr]     |
[INFO] [stderr] 221 | struct Discr;                          // F ↦ F::Select<(), Void>
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `true_ne_false` is never used
[INFO] [stderr]    --> src/witness.rs:225:10
[INFO] [stderr]     |
[INFO] [stderr] 225 | const fn true_ne_false(h: Is<ConstTrue, ConstFalse>) -> Void {
[INFO] [stderr]     |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `A_ne_NotA` is never used
[INFO] [stderr]    --> src/witness.rs:231:10
[INFO] [stderr]     |
[INFO] [stderr] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stderr]     |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Select` is never used
[INFO] [stderr]  --> src/bool_select_wits.rs:3:6
[INFO] [stderr]   |
[INFO] [stderr] 3 | type Select<A, T, F> = <A as ConstBool>::SelectBool<T, F>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Not` is never used
[INFO] [stderr]  --> src/bool_select_wits.rs:5:6
[INFO] [stderr]   |
[INFO] [stderr] 5 | type Not<A> = <A as ConstBool>::SelectBool<ConstFalse, ConstTrue>;
[INFO] [stderr]   |      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Or` is never used
[INFO] [stderr]  --> src/bool_select_wits.rs:7:6
[INFO] [stderr]   |
[INFO] [stderr] 7 | type Or<A, B> = <A as ConstBool>::SelectBool<ConstTrue, B>;
[INFO] [stderr]   |      ^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `SelectAnd` is never used
[INFO] [stderr]  --> src/bool_select_wits.rs:9:6
[INFO] [stderr]   |
[INFO] [stderr] 9 | type SelectAnd<A, B> = <A as ConstBool>::SelectBool<B, ConstFalse>;
[INFO] [stderr]   |      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Eq` is never used
[INFO] [stderr]   --> src/bool_select_wits.rs:11:6
[INFO] [stderr]    |
[INFO] [stderr] 11 | type Eq<A, B> = <A as ConstBool>::SelectBool<B, Not<B>>;
[INFO] [stderr]    |      ^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Xor` is never used
[INFO] [stderr]   --> src/bool_select_wits.rs:13:6
[INFO] [stderr]    |
[INFO] [stderr] 13 | type Xor<A, B> = <A as ConstBool>::SelectBool<Not<B>, B>;
[INFO] [stderr]    |      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `SelectNor` is never used
[INFO] [stderr]   --> src/bool_select_wits.rs:15:6
[INFO] [stderr]    |
[INFO] [stderr] 15 | type SelectNor<A, B> = <A as ConstBool>::SelectBool<ConstFalse, Not<B>>;
[INFO] [stderr]    |      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `SelectNand` is never used
[INFO] [stderr]   --> src/bool_select_wits.rs:17:6
[INFO] [stderr]    |
[INFO] [stderr] 17 | type SelectNand<A, B> = <A as ConstBool>::SelectBool<Not<B>, ConstTrue>;
[INFO] [stderr]    |      ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Me` is never used
[INFO] [stderr]   --> src/bool_select_wits.rs:19:6
[INFO] [stderr]    |
[INFO] [stderr] 19 | type Me<A> = Select<A, ConstTrue, ConstFalse>;
[INFO] [stderr]    |      ^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `proof_select_flip` is never used
[INFO] [stderr]   --> src/bool_select_wits.rs:23:4
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn proof_select_flip<A: ConstBool, T: ConstBool, F: ConstBool>() -> Is<Select<A, T, F>, Select<Not<A>, F, T>> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `proof_not_not` is never used
[INFO] [stderr]   --> src/bool_select_wits.rs:27:4
[INFO] [stderr]    |
[INFO] [stderr] 27 | fn proof_not_not<A: ConstBool>() -> Is<Not<Not<A>>, A> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `proof_xor_swap` is never used
[INFO] [stderr]   --> src/bool_select_wits.rs:35:4
[INFO] [stderr]    |
[INFO] [stderr] 35 | fn proof_xor_swap<A: ConstBool, B: ConstBool>() -> Is<Xor<A, B>, Xor<B, A>> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `proof_not_flip` is never used
[INFO] [stderr]   --> src/bool_select_wits.rs:44:4
[INFO] [stderr]    |
[INFO] [stderr] 44 | fn proof_not_flip<A: ConstBool, B: ConstBool>() -> Is<Select<A, B, Not<B>>, Select<Not<A>, Not<B>, B>> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `A_ne_NotA` should have a snake case name
[INFO] [stderr]    --> src/witness.rs:231:10
[INFO] [stderr]     |
[INFO] [stderr] 231 | const fn A_ne_NotA<A: ConstBool>(h: Is<A, Not<A>>) -> Is<Is<A, Not<A>>, Void> {
[INFO] [stderr]     |          ^^^^^^^^^ help: convert the identifier to snake case: `a_ne_not_a`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `const-bool` (lib) generated 49 warnings (run `cargo fix --lib -p const-bool` to apply 7 suggestions)
[INFO] [stderr] warning: `const-bool` (lib test) generated 49 warnings (49 duplicates)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/const_bool-19d847a4eb435d05)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::test_logic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests const_bool
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 10) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 10) stdout ----
[INFO] [stdout] error[E0404]: expected trait, found type alias `Eq`
[INFO] [stdout]   --> src/lib.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 23 |     And<A::IsActive, B::IsActive>: Eq<ConstTrue, ConstTrue> // Simulated Logic
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^ type aliases cannot be used as traits
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this trait instead
[INFO] [stdout]    |
[INFO] [stdout]  9 + use std::cmp::Eq;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0404`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - (line 10)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4", kill_on_drop: false }`
[INFO] [stdout] 28a150f6d10bef02b605e4a8021ccd76312d56246e97a9b73952ace1581537b4
