[INFO] fetching crate aibrain 0.2.3...
[INFO] checking aibrain-0.2.3 against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] extracting crate aibrain 0.2.3 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate aibrain 0.2.3
[INFO] finished tweaking crates.io crate aibrain 0.2.3
[INFO] tweaked toml for crates.io crate aibrain 0.2.3 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate aibrain 0.2.3 on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate aibrain 0.2.3 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" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2b57027ec2ec9211b167d0fcb93056b7afdd7f6f2edcb32013e860e2060af28e
[INFO] running `Command { std: "docker" "start" "2b57027ec2ec9211b167d0fcb93056b7afdd7f6f2edcb32013e860e2060af28e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b57027ec2ec9211b167d0fcb93056b7afdd7f6f2edcb32013e860e2060af28e", 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" "2b57027ec2ec9211b167d0fcb93056b7afdd7f6f2edcb32013e860e2060af28e" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b57027ec2ec9211b167d0fcb93056b7afdd7f6f2edcb32013e860e2060af28e", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2b57027ec2ec9211b167d0fcb93056b7afdd7f6f2edcb32013e860e2060af28e" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]     Checking rand_core v0.10.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking base32 v0.5.1
[INFO] [stderr]     Checking chacha20 v0.10.0
[INFO] [stderr]     Checking rand v0.10.0
[INFO] [stderr]     Checking aibrain v0.2.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stdout] error: useless conversion to the same type: `tests::test_brain_macro::Robot`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:7:5
[INFO] [stdout]     |
[INFO] [stdout]   7 | /     brain! {
[INFO] [stdout]   8 | |         pub Robot(
[INFO] [stdout]   9 | |             i8;
[INFO] [stdout]  10 | |             inputs = 4,
[INFO] [stdout] ...   |
[INFO] [stdout]  13 | |         );
[INFO] [stdout]  14 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<tests::test_brain_macro::Robot as Into<tests::test_brain_macro::Robot>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `tests::test_brain_macro_exact_example::Robot`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:35:5
[INFO] [stdout]     |
[INFO] [stdout]  35 |     brain! { Robot(i8; inputs = 4, layers = [10, 12, 10], outputs = 5); }
[INFO] [stdout]     |     --------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<tests::test_brain_macro_exact_example::Robot as Into<tests::test_brain_macro_exact_example::Robot>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Single`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:48:5
[INFO] [stdout]     |
[INFO] [stdout]  48 |     brain! { Single(f32; inputs = 3, layers = [7], outputs = 2); }
[INFO] [stdout]     |     -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Single as Into<Single>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Multi`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:63:5
[INFO] [stdout]     |
[INFO] [stdout]  63 |     brain! { Multi(u16; inputs = 2, layers = [5, 6, 7, 8], outputs = 3); }
[INFO] [stdout]     |     ---------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Multi as Into<Multi>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Different`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:80:5
[INFO] [stdout]     |
[INFO] [stdout]  80 |     brain! { Different(i32; inputs = 1, layers = [2, 3], outputs = 4); }
[INFO] [stdout]     |     -------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Different as Into<Different>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `tests::test_brain_macro_exact_example_no_angle::Robot`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:95:5
[INFO] [stdout]     |
[INFO] [stdout]  95 |     brain! { Robot(i8; inputs = 4, layers = [10, 12, 10], outputs = 5); }
[INFO] [stdout]     |     --------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<tests::test_brain_macro_exact_example_no_angle::Robot as Into<tests::test_brain_macro_exact_example_no_angle::Robot>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `NoSemicolon`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |     brain! { NoSemicolon(f64; inputs = 2, layers = [3, 4], outputs = 1) }
[INFO] [stdout]     |     --------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<NoSemicolon as Into<NoSemicolon>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TraitTest`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     brain! { TraitTest(i32; inputs = 2, layers = [3, 4], outputs = 1); }
[INFO] [stdout]     |     -------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TraitTest as Into<TraitTest>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TryFromI8`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 180 | /     brain! {
[INFO] [stdout] 181 | |         TryFromI8(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 182 | |         TryFromF32(f32; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 183 | |         TryFromU16(u16; inputs = 3, layers = [4, 5], outputs = 2);
[INFO] [stdout] 184 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TryFromI8 as Into<TryFromI8>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TryFromF32`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 180 | /     brain! {
[INFO] [stdout] 181 | |         TryFromI8(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 182 | |         TryFromF32(f32; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 183 | |         TryFromU16(u16; inputs = 3, layers = [4, 5], outputs = 2);
[INFO] [stdout] 184 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TryFromF32 as Into<TryFromF32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TryFromU16`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 180 | /     brain! {
[INFO] [stdout] 181 | |         TryFromI8(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 182 | |         TryFromF32(f32; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 183 | |         TryFromU16(u16; inputs = 3, layers = [4, 5], outputs = 2);
[INFO] [stdout] 184 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TryFromU16 as Into<TryFromU16>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `PubStruct`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 247 | /     brain! {
[INFO] [stdout] 248 | |         pub PubStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 249 | |         pub(crate) PubCrateStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 250 | |         pub(super) PubSuperStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 251 | |         PrivateStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 252 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<PubStruct as Into<PubStruct>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `PubCrateStruct`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 247 | /     brain! {
[INFO] [stdout] 248 | |         pub PubStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 249 | |         pub(crate) PubCrateStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 250 | |         pub(super) PubSuperStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 251 | |         PrivateStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 252 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<PubCrateStruct as Into<PubCrateStruct>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `PubSuperStruct`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 247 | /     brain! {
[INFO] [stdout] 248 | |         pub PubStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 249 | |         pub(crate) PubCrateStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 250 | |         pub(super) PubSuperStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 251 | |         PrivateStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 252 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<PubSuperStruct as Into<PubSuperStruct>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `PrivateStruct`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 247 | /     brain! {
[INFO] [stdout] 248 | |         pub PubStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 249 | |         pub(crate) PubCrateStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 250 | |         pub(super) PubSuperStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 251 | |         PrivateStruct(i8; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 252 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<PrivateStruct as Into<PrivateStruct>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `InnerPubStruct`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 | /         brain! {
[INFO] [stdout] 280 | |             pub InnerPubStruct(i8; inputs = 2, layers = [3], outputs = 4);
[INFO] [stdout] 281 | |             InnerPrivateStruct(i8; inputs = 2, layers = [3], outputs = 4);
[INFO] [stdout] 282 | |         }
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<InnerPubStruct as Into<InnerPubStruct>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `InnerPrivateStruct`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 | /         brain! {
[INFO] [stdout] 280 | |             pub InnerPubStruct(i8; inputs = 2, layers = [3], outputs = 4);
[INFO] [stdout] 281 | |             InnerPrivateStruct(i8; inputs = 2, layers = [3], outputs = 4);
[INFO] [stdout] 282 | |         }
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<InnerPrivateStruct as Into<InnerPrivateStruct>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TestOps`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:320:5
[INFO] [stdout]     |
[INFO] [stdout] 320 |     brain! { TestOps(i32; inputs = 2, layers = [3, 4], outputs = 1); }
[INFO] [stdout]     |     ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TestOps as Into<TestOps>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TestDisplay`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:380:5
[INFO] [stdout]     |
[INFO] [stdout] 380 | /     brain! {
[INFO] [stdout] 381 | |         TestDisplay(i8; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 382 | |         DisplayF32(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 383 | |         DisplayU16(u16; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 384 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TestDisplay as Into<TestDisplay>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DisplayF32`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:380:5
[INFO] [stdout]     |
[INFO] [stdout] 380 | /     brain! {
[INFO] [stdout] 381 | |         TestDisplay(i8; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 382 | |         DisplayF32(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 383 | |         DisplayU16(u16; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 384 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<DisplayF32 as Into<DisplayF32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DisplayU16`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:380:5
[INFO] [stdout]     |
[INFO] [stdout] 380 | /     brain! {
[INFO] [stdout] 381 | |         TestDisplay(i8; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 382 | |         DisplayF32(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 383 | |         DisplayU16(u16; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 384 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<DisplayU16 as Into<DisplayU16>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ParseI8`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:426:5
[INFO] [stdout]     |
[INFO] [stdout] 426 | /     brain! {
[INFO] [stdout] 427 | |         ParseI8(i8; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 428 | |         ParseF32(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 429 | |         ParseU16(u16; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 430 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<ParseI8 as Into<ParseI8>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ParseF32`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:426:5
[INFO] [stdout]     |
[INFO] [stdout] 426 | /     brain! {
[INFO] [stdout] 427 | |         ParseI8(i8; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 428 | |         ParseF32(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 429 | |         ParseU16(u16; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 430 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<ParseF32 as Into<ParseF32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ParseU16`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:426:5
[INFO] [stdout]     |
[INFO] [stdout] 426 | /     brain! {
[INFO] [stdout] 427 | |         ParseI8(i8; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 428 | |         ParseF32(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 429 | |         ParseU16(u16; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 430 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<ParseU16 as Into<ParseU16>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TestProcess`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:509:5
[INFO] [stdout]     |
[INFO] [stdout] 509 |     brain! { TestProcess(f32; inputs = 2, layers = [2], outputs = 1); }
[INFO] [stdout]     |     ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TestProcess as Into<TestProcess>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TestProcessMulti`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 | macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                 res.into()
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:595:5
[INFO] [stdout]     |
[INFO] [stdout] 595 |     brain! { TestProcessMulti(f32; inputs = 3, layers = [4, 5], outputs = 2); }
[INFO] [stdout]     |     --------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TestProcessMulti as Into<TestProcessMulti>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ProcessI8`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:658:5
[INFO] [stdout]     |
[INFO] [stdout] 658 | /     brain! {
[INFO] [stdout] 659 | |         ProcessI8(i8; inputs = 2, layers = [2], outputs = 1);
[INFO] [stdout] 660 | |         ProcessU16(u16; inputs = 1, layers = [3], outputs = 2);
[INFO] [stdout] 661 | |         ProcessI32(i32; inputs = 2, layers = [1], outputs = 2);
[INFO] [stdout] 662 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<ProcessI8 as Into<ProcessI8>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ProcessU16`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:658:5
[INFO] [stdout]     |
[INFO] [stdout] 658 | /     brain! {
[INFO] [stdout] 659 | |         ProcessI8(i8; inputs = 2, layers = [2], outputs = 1);
[INFO] [stdout] 660 | |         ProcessU16(u16; inputs = 1, layers = [3], outputs = 2);
[INFO] [stdout] 661 | |         ProcessI32(i32; inputs = 2, layers = [1], outputs = 2);
[INFO] [stdout] 662 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<ProcessU16 as Into<ProcessU16>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ProcessI32`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:658:5
[INFO] [stdout]     |
[INFO] [stdout] 658 | /     brain! {
[INFO] [stdout] 659 | |         ProcessI8(i8; inputs = 2, layers = [2], outputs = 1);
[INFO] [stdout] 660 | |         ProcessU16(u16; inputs = 1, layers = [3], outputs = 2);
[INFO] [stdout] 661 | |         ProcessI32(i32; inputs = 2, layers = [1], outputs = 2);
[INFO] [stdout] 662 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<ProcessI32 as Into<ProcessI32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `MultiDef1`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:736:5
[INFO] [stdout]     |
[INFO] [stdout] 736 | /     brain! {
[INFO] [stdout] 737 | |         pub MultiDef1(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 738 | |         pub(crate) MultiDef2(f32; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 739 | |         MultiDef3(u16; inputs = 3, layers = [4, 5], outputs = 2);
[INFO] [stdout] 740 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<MultiDef1 as Into<MultiDef1>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `MultiDef2`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:736:5
[INFO] [stdout]     |
[INFO] [stdout] 736 | /     brain! {
[INFO] [stdout] 737 | |         pub MultiDef1(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 738 | |         pub(crate) MultiDef2(f32; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 739 | |         MultiDef3(u16; inputs = 3, layers = [4, 5], outputs = 2);
[INFO] [stdout] 740 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<MultiDef2 as Into<MultiDef2>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `MultiDef3`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:736:5
[INFO] [stdout]     |
[INFO] [stdout] 736 | /     brain! {
[INFO] [stdout] 737 | |         pub MultiDef1(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 738 | |         pub(crate) MultiDef2(f32; inputs = 1, layers = [2], outputs = 3);
[INFO] [stdout] 739 | |         MultiDef3(u16; inputs = 3, layers = [4, 5], outputs = 2);
[INFO] [stdout] 740 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<MultiDef3 as Into<MultiDef3>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TwoDef1`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:809:5
[INFO] [stdout]     |
[INFO] [stdout] 809 | /     brain! {
[INFO] [stdout] 810 | |         TwoDef1(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 811 | |         TwoDef2(i8; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 812 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TwoDef1 as Into<TwoDef1>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TwoDef2`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:809:5
[INFO] [stdout]     |
[INFO] [stdout] 809 | /     brain! {
[INFO] [stdout] 810 | |         TwoDef1(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 811 | |         TwoDef2(i8; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 812 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<TwoDef2 as Into<TwoDef2>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Many1`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:820:5
[INFO] [stdout]     |
[INFO] [stdout] 820 | /     brain! {
[INFO] [stdout] 821 | |         Many1(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 822 | |         Many2(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 823 | |         Many3(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 824 | |         Many4(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 825 | |         Many5(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 826 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Many1 as Into<Many1>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Many2`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:820:5
[INFO] [stdout]     |
[INFO] [stdout] 820 | /     brain! {
[INFO] [stdout] 821 | |         Many1(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 822 | |         Many2(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 823 | |         Many3(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 824 | |         Many4(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 825 | |         Many5(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 826 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Many2 as Into<Many2>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Many3`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:820:5
[INFO] [stdout]     |
[INFO] [stdout] 820 | /     brain! {
[INFO] [stdout] 821 | |         Many1(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 822 | |         Many2(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 823 | |         Many3(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 824 | |         Many4(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 825 | |         Many5(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 826 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Many3 as Into<Many3>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Many4`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:820:5
[INFO] [stdout]     |
[INFO] [stdout] 820 | /     brain! {
[INFO] [stdout] 821 | |         Many1(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 822 | |         Many2(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 823 | |         Many3(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 824 | |         Many4(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 825 | |         Many5(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 826 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Many4 as Into<Many4>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Many5`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:820:5
[INFO] [stdout]     |
[INFO] [stdout] 820 | /     brain! {
[INFO] [stdout] 821 | |         Many1(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 822 | |         Many2(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 823 | |         Many3(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 824 | |         Many4(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 825 | |         Many5(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 826 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Many5 as Into<Many5>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Mixed1`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:836:5
[INFO] [stdout]     |
[INFO] [stdout] 836 | /     brain! {
[INFO] [stdout] 837 | |         Mixed1(f32; inputs = 1, layers = [1], outputs = 1,);
[INFO] [stdout] 838 | |         Mixed2(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 839 | |         Mixed3(f32; inputs = 1, layers = [1], outputs = 1,);
[INFO] [stdout] 840 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Mixed1 as Into<Mixed1>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Mixed2`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:836:5
[INFO] [stdout]     |
[INFO] [stdout] 836 | /     brain! {
[INFO] [stdout] 837 | |         Mixed1(f32; inputs = 1, layers = [1], outputs = 1,);
[INFO] [stdout] 838 | |         Mixed2(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 839 | |         Mixed3(f32; inputs = 1, layers = [1], outputs = 1,);
[INFO] [stdout] 840 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Mixed2 as Into<Mixed2>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Mixed3`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:836:5
[INFO] [stdout]     |
[INFO] [stdout] 836 | /     brain! {
[INFO] [stdout] 837 | |         Mixed1(f32; inputs = 1, layers = [1], outputs = 1,);
[INFO] [stdout] 838 | |         Mixed2(f32; inputs = 1, layers = [1], outputs = 1);
[INFO] [stdout] 839 | |         Mixed3(f32; inputs = 1, layers = [1], outputs = 1,);
[INFO] [stdout] 840 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<Mixed3 as Into<Mixed3>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DiffType1`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:847:5
[INFO] [stdout]     |
[INFO] [stdout] 847 | /     brain! {
[INFO] [stdout] 848 | |         DiffType1(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 849 | |         DiffType2(i16; inputs = 3, layers = [4], outputs = 2);
[INFO] [stdout] 850 | |         DiffType3(i32; inputs = 4, layers = [5], outputs = 3);
[INFO] [stdout] 851 | |         DiffType4(f32; inputs = 5, layers = [6], outputs = 4);
[INFO] [stdout] 852 | |         DiffType5(f64; inputs = 6, layers = [7], outputs = 5);
[INFO] [stdout] 853 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<DiffType1 as Into<DiffType1>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DiffType2`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:847:5
[INFO] [stdout]     |
[INFO] [stdout] 847 | /     brain! {
[INFO] [stdout] 848 | |         DiffType1(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 849 | |         DiffType2(i16; inputs = 3, layers = [4], outputs = 2);
[INFO] [stdout] 850 | |         DiffType3(i32; inputs = 4, layers = [5], outputs = 3);
[INFO] [stdout] 851 | |         DiffType4(f32; inputs = 5, layers = [6], outputs = 4);
[INFO] [stdout] 852 | |         DiffType5(f64; inputs = 6, layers = [7], outputs = 5);
[INFO] [stdout] 853 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<DiffType2 as Into<DiffType2>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DiffType3`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:847:5
[INFO] [stdout]     |
[INFO] [stdout] 847 | /     brain! {
[INFO] [stdout] 848 | |         DiffType1(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 849 | |         DiffType2(i16; inputs = 3, layers = [4], outputs = 2);
[INFO] [stdout] 850 | |         DiffType3(i32; inputs = 4, layers = [5], outputs = 3);
[INFO] [stdout] 851 | |         DiffType4(f32; inputs = 5, layers = [6], outputs = 4);
[INFO] [stdout] 852 | |         DiffType5(f64; inputs = 6, layers = [7], outputs = 5);
[INFO] [stdout] 853 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<DiffType3 as Into<DiffType3>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DiffType4`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:847:5
[INFO] [stdout]     |
[INFO] [stdout] 847 | /     brain! {
[INFO] [stdout] 848 | |         DiffType1(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 849 | |         DiffType2(i16; inputs = 3, layers = [4], outputs = 2);
[INFO] [stdout] 850 | |         DiffType3(i32; inputs = 4, layers = [5], outputs = 3);
[INFO] [stdout] 851 | |         DiffType4(f32; inputs = 5, layers = [6], outputs = 4);
[INFO] [stdout] 852 | |         DiffType5(f64; inputs = 6, layers = [7], outputs = 5);
[INFO] [stdout] 853 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<DiffType4 as Into<DiffType4>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DiffType5`
[INFO] [stdout]    --> src/brainmacros.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout]   2 |   macro_rules! brain {
[INFO] [stdout] ...
[INFO] [stdout] 165 |                   res.into()
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tests.rs:847:5
[INFO] [stdout]     |
[INFO] [stdout] 847 | /     brain! {
[INFO] [stdout] 848 | |         DiffType1(i8; inputs = 2, layers = [3], outputs = 1);
[INFO] [stdout] 849 | |         DiffType2(i16; inputs = 3, layers = [4], outputs = 2);
[INFO] [stdout] 850 | |         DiffType3(i32; inputs = 4, layers = [5], outputs = 3);
[INFO] [stdout] 851 | |         DiffType4(f32; inputs = 5, layers = [6], outputs = 4);
[INFO] [stdout] 852 | |         DiffType5(f64; inputs = 6, layers = [7], outputs = 5);
[INFO] [stdout] 853 | |     }
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<DiffType5 as Into<DiffType5>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aibrain` (lib test) due to 47 previous errors
[INFO] running `Command { std: "docker" "inspect" "2b57027ec2ec9211b167d0fcb93056b7afdd7f6f2edcb32013e860e2060af28e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b57027ec2ec9211b167d0fcb93056b7afdd7f6f2edcb32013e860e2060af28e", kill_on_drop: false }`
[INFO] [stdout] 2b57027ec2ec9211b167d0fcb93056b7afdd7f6f2edcb32013e860e2060af28e
