[INFO] cloning repository https://github.com/Ceedrich/abstract_algebra
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ceedrich/abstract_algebra" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCeedrich%2Fabstract_algebra", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCeedrich%2Fabstract_algebra'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e8a3104a7808914eceb5ef1931d09577b4557181
[INFO] checking Ceedrich/abstract_algebra against master#292be5c7c05138d753bbd4b30db7a3f1a5c914f7 for pr-148271
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCeedrich%2Fabstract_algebra" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Ceedrich/abstract_algebra
[INFO] finished tweaking git repo https://github.com/Ceedrich/abstract_algebra
[INFO] tweaked toml for git repo https://github.com/Ceedrich/abstract_algebra written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Ceedrich/abstract_algebra on toolchain 292be5c7c05138d753bbd4b30db7a3f1a5c914f7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Ceedrich/abstract_algebra 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" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded deluxe v0.5.0
[INFO] [stderr]   Downloaded deluxe-core v0.5.0
[INFO] [stderr]   Downloaded deluxe-macros v0.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] da527518de92ffd78ebfbb447e71118c4f7dfafec85d0248f7a5d6b830835062
[INFO] running `Command { std: "docker" "start" "-a" "da527518de92ffd78ebfbb447e71118c4f7dfafec85d0248f7a5d6b830835062", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da527518de92ffd78ebfbb447e71118c4f7dfafec85d0248f7a5d6b830835062", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da527518de92ffd78ebfbb447e71118c4f7dfafec85d0248f7a5d6b830835062", kill_on_drop: false }`
[INFO] [stdout] da527518de92ffd78ebfbb447e71118c4f7dfafec85d0248f7a5d6b830835062
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bee71b7f5c053cabb9c0d042d2e49739742ac1bc87c6a394d7b4f51e488ca1c7
[INFO] running `Command { std: "docker" "start" "-a" "bee71b7f5c053cabb9c0d042d2e49739742ac1bc87c6a394d7b4f51e488ca1c7", kill_on_drop: false }`
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling if_chain v1.0.2
[INFO] [stderr]     Checking unicode-ident v1.0.18
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking proc-macro2 v1.0.95
[INFO] [stderr]     Checking quote v1.0.40
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling deluxe-core v0.5.0
[INFO] [stderr]    Compiling deluxe-macros v0.5.0
[INFO] [stderr]    Compiling deluxe v0.5.0
[INFO] [stderr]    Compiling abstract_algebra_macros v0.1.0 (/opt/rustwide/workdir/abstract_algebra_macros)
[INFO] [stderr]     Checking abstract-algebra v0.1.0 (/opt/rustwide/workdir/abstract_algebra)
[INFO] [stdout] warning: unused import: `crate::perm`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     use crate::perm;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `T` doesn't implement `Debug`
[INFO] [stdout]   --> abstract_algebra/src/ops.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         assert_eq!(a.op(b).op(c), a.op(&b.op(c)), "(a * b) * c = a * (b * c)");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T`
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider further restricting type parameter `T` with trait `Debug`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     T: Associativity<K> + std::fmt::Debug,
[INFO] [stdout]    |                         +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `T` doesn't implement `Debug`
[INFO] [stdout]   --> abstract_algebra/src/ops.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         assert_eq!(a.op(b).op(c), a.op(&b.op(c)), "(a * b) * c = a * (b * c)");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T`
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider further restricting type parameter `T` with trait `Debug`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     T: Associativity<K> + std::fmt::Debug,
[INFO] [stdout]    |                         +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `T` doesn't implement `Debug`
[INFO] [stdout]   --> abstract_algebra/src/ops.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         assert_eq!(a.op(b), b.op(a), "ab = ba");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T`
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider further restricting type parameter `T` with trait `Debug`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     T: BinOp<K> + std::fmt::Debug,
[INFO] [stdout]    |                 +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `T` doesn't implement `Debug`
[INFO] [stdout]   --> abstract_algebra/src/ops.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         assert_eq!(a.op(b), b.op(a), "ab = ba");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T`
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider further restricting type parameter `T` with trait `Debug`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     T: BinOp<K> + std::fmt::Debug,
[INFO] [stdout]    |                 +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `Natural` by `Natural`
[INFO] [stdout]    --> abstract_algebra/src/primitives/numbers.rs:107:24
[INFO] [stdout]     |
[INFO] [stdout] 107 |         assert_eq!(one * one, one);
[INFO] [stdout]     |                    --- ^ --- Natural
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    Natural
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Mul` might be missing for `Natural`
[INFO] [stdout]    --> abstract_algebra/src/primitives/numbers.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct Natural(usize);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `Mul`
[INFO] [stdout] note: the trait `Mul` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:324:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `Natural` to `Natural`
[INFO] [stdout]    --> abstract_algebra/src/primitives/numbers.rs:108:24
[INFO] [stdout]     |
[INFO] [stdout] 108 |         assert_eq!(one + one, two);
[INFO] [stdout]     |                    --- ^ --- Natural
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    Natural
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Add` might be missing for `Natural`
[INFO] [stdout]    --> abstract_algebra/src/primitives/numbers.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct Natural(usize);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `Add`
[INFO] [stdout] note: the trait `Add` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:77:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `Natural` by `Natural`
[INFO] [stdout]    --> abstract_algebra/src/primitives/numbers.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout] 109 |         assert_eq!(two * two, two + two);
[INFO] [stdout]     |                    --- ^ --- Natural
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    Natural
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Mul` might be missing for `Natural`
[INFO] [stdout]    --> abstract_algebra/src/primitives/numbers.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct Natural(usize);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `Mul`
[INFO] [stdout] note: the trait `Mul` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:324:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot add `Natural` to `Natural`
[INFO] [stdout]    --> abstract_algebra/src/primitives/numbers.rs:109:35
[INFO] [stdout]     |
[INFO] [stdout] 109 |         assert_eq!(two * two, two + two);
[INFO] [stdout]     |                               --- ^ --- Natural
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               Natural
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Add` might be missing for `Natural`
[INFO] [stdout]    --> abstract_algebra/src/primitives/numbers.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub struct Natural(usize);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `Add`
[INFO] [stdout] note: the trait `Add` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:77:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 84 |         let id = perm![5; ()];
[INFO] [stdout]    |                  ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 87 |         assert_eq!(perm![5; (1 2 3)(4 5)].inv(), perm![5; (1 3 2)(4 5)]);
[INFO] [stdout]    |                    ---------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 87 |         assert_eq!(perm![5; (1 2 3)(4 5)].inv(), perm![5; (1 3 2)(4 5)]);
[INFO] [stdout]    |                                                  ---------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 88 |         assert_eq!(perm![3; (1 2 3)], perm![3; (2 3 1)]);
[INFO] [stdout]    |                    ----------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 88 |         assert_eq!(perm![3; (1 2 3)], perm![3; (2 3 1)]);
[INFO] [stdout]    |                                       ----------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 89 |         assert_eq!(perm![(1 2)(2 3)], perm![5; (1 2 3)]);
[INFO] [stdout]    |                    ----------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 89 |         assert_eq!(perm![(1 2)(2 3)], perm![5; (1 2 3)]);
[INFO] [stdout]    |                                       ----------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 91 |         assert_eq!(perm![5; (1 2 3 4 5)].inv(), perm![(1 5 4 3 2)]);
[INFO] [stdout]    |                    --------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 91 |         assert_eq!(perm![5; (1 2 3 4 5)].inv(), perm![(1 5 4 3 2)]);
[INFO] [stdout]    |                                                 ------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 96 |         let id = perm![5; ()];
[INFO] [stdout]    |                  ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 97 |         let a = perm![5; (1 2 3)(4 5)];
[INFO] [stdout]    |                 ---------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 98 |         let b = perm![5; (1 2)];
[INFO] [stdout]    |                 --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]    |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 99 |         let c = perm![5; (1 3 4)];
[INFO] [stdout]    |                 ----------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]   --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]    = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pow` found for struct `perm::Permutation<N>` in the current scope
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout]   4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]     | -------------------------------------- method `pow` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 101 |         assert_eq!(a.pow(6), id);
[INFO] [stdout]     |                      ^^^ method not found in `perm::Permutation<5>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pow` found for struct `perm::Permutation<N>` in the current scope
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:102:22
[INFO] [stdout]     |
[INFO] [stdout]   4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]     | -------------------------------------- method `pow` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 102 |         assert_eq!(a.pow(2), perm![(1 3 2)]);
[INFO] [stdout]     |                      ^^^ method not found in `perm::Permutation<5>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]     |
[INFO] [stdout]  70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]     |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 102 |         assert_eq!(a.pow(2), perm![(1 3 2)]);
[INFO] [stdout]     |                              -------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout]   4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]     = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pow` found for struct `perm::Permutation<N>` in the current scope
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:103:22
[INFO] [stdout]     |
[INFO] [stdout]   4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]     | -------------------------------------- method `pow` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 103 |         assert_eq!(a.pow(3), perm![(4 5)]);
[INFO] [stdout]     |                      ^^^ method not found in `perm::Permutation<5>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]     |
[INFO] [stdout]  70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]     |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 103 |         assert_eq!(a.pow(3), perm![(4 5)]);
[INFO] [stdout]     |                              ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout]   4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]     = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `perm::Permutation<_>`
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:70:13
[INFO] [stdout]     |
[INFO] [stdout]  70 |             y *= perm![@cycle; $tt];
[INFO] [stdout]     |             -^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             cannot use `*=` on type `perm::Permutation<_>`
[INFO] [stdout] ...
[INFO] [stdout] 111 |         let perm = perm![5; (1 3 5)(2 4)];
[INFO] [stdout]     |                    ---------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `MulAssign<perm::Permutation<_>>` might be missing for `perm::Permutation<_>`
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout]   4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `MulAssign<perm::Permutation<_>>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/ops/arith.rs:902:1
[INFO] [stdout]     = note: this error originates in the macro `perm` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `action` found for struct `perm::Permutation<N>` in the current scope
[INFO] [stdout]    --> abstract_algebra/src/primitives/perm.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout]   4 | pub struct Permutation<const N: usize>([usize; N]);
[INFO] [stdout]     | -------------------------------------- method `action` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 113 |         assert_eq!(perm.action(&set), ['e', 'd', 'a', 'b', 'c']);
[INFO] [stdout]     |                         ^^^^^^ method not found in `perm::Permutation<5>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0368, E0369, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `abstract-algebra` (lib test) due to 28 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "bee71b7f5c053cabb9c0d042d2e49739742ac1bc87c6a394d7b4f51e488ca1c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bee71b7f5c053cabb9c0d042d2e49739742ac1bc87c6a394d7b4f51e488ca1c7", kill_on_drop: false }`
[INFO] [stdout] bee71b7f5c053cabb9c0d042d2e49739742ac1bc87c6a394d7b4f51e488ca1c7
