[INFO] cloning repository https://github.com/wrsturgeon/einsum
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wrsturgeon/einsum" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwrsturgeon%2Feinsum", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwrsturgeon%2Feinsum'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] af8d860e93521e79beede32cbd07945418a107b7
[INFO] checking wrsturgeon/einsum against try#a7b168ac4977e8e93a43448b44847adaa305d5a9 for pr-150557
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwrsturgeon%2Feinsum" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/wrsturgeon/einsum
[INFO] finished tweaking git repo https://github.com/wrsturgeon/einsum
[INFO] tweaked toml for git repo https://github.com/wrsturgeon/einsum written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/wrsturgeon/einsum on toolchain a7b168ac4977e8e93a43448b44847adaa305d5a9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a7b168ac4977e8e93a43448b44847adaa305d5a9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/wrsturgeon/einsum 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" "+a7b168ac4977e8e93a43448b44847adaa305d5a9" "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/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+a7b168ac4977e8e93a43448b44847adaa305d5a9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dd22e041a2d4d88768e1d83500cc92dfb0033ccf79a6830f8f835ce6c98ebed5
[INFO] running `Command { std: "docker" "start" "-a" "dd22e041a2d4d88768e1d83500cc92dfb0033ccf79a6830f8f835ce6c98ebed5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dd22e041a2d4d88768e1d83500cc92dfb0033ccf79a6830f8f835ce6c98ebed5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd22e041a2d4d88768e1d83500cc92dfb0033ccf79a6830f8f835ce6c98ebed5", kill_on_drop: false }`
[INFO] [stdout] dd22e041a2d4d88768e1d83500cc92dfb0033ccf79a6830f8f835ce6c98ebed5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+a7b168ac4977e8e93a43448b44847adaa305d5a9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0430df00165aba9d26e9022f92fac1dd9d33155b63a7396d30d886c8358830dc
[INFO] running `Command { std: "docker" "start" "-a" "0430df00165aba9d26e9022f92fac1dd9d33155b63a7396d30d886c8358830dc", kill_on_drop: false }`
[INFO] [stderr]     Checking einsum v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: cannot find attribute `const_trait` in this scope
[INFO] [stdout]   --> src/own.rs:47:3
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[const_trait]
[INFO] [stdout]    |   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `const_trait` in this scope
[INFO] [stdout]   --> src/own.rs:53:3
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[const_trait]
[INFO] [stdout]    |   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `const_trait` in this scope
[INFO] [stdout]  --> src/shape.rs:3:3
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[const_trait]
[INFO] [stdout]   |   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `const_trait` in this scope
[INFO] [stdout]   --> src/own.rs:47:3
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[const_trait]
[INFO] [stdout]    |   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `const_trait` in this scope
[INFO] [stdout]   --> src/own.rs:53:3
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[const_trait]
[INFO] [stdout]    |   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/own.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Data<T, O: const Ownership<T>, const N: usize>(O::Data<N>);
[INFO] [stdout]    |                       ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `const_trait` in this scope
[INFO] [stdout]  --> src/shape.rs:3:3
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[const_trait]
[INFO] [stdout]   |   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/own.rs:54:32
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    |                                ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/own.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<T, O: const Ownership<T>, const N: usize> Data<T, O, N> {
[INFO] [stdout]    |            ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Ownership` which is not `const`
[INFO] [stdout]   --> src/own.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl<T> const Ownership<T> for Own {
[INFO] [stdout]    |               ^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `MutableOwnership` which is not `const`
[INFO] [stdout]   --> src/own.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl<T> const MutableOwnership<T> for Own {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `MutableOwnership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub const trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Ownership` which is not `const`
[INFO] [stdout]   --> src/own.rs:83:29
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl<'data, T: 'data> const Ownership<T> for Ref<'data> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Ownership` which is not `const`
[INFO] [stdout]   --> src/own.rs:97:29
[INFO] [stdout]    |
[INFO] [stdout] 97 | impl<'data, T: 'data> const Ownership<T> for Mut<'data> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `MutableOwnership` which is not `const`
[INFO] [stdout]    --> src/own.rs:104:29
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl<'data, T: 'data> const MutableOwnership<T> for Mut<'data> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]     |
[INFO] [stdout]     = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]     = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `MutableOwnership` as `const` to allow it to have `const` implementations
[INFO] [stdout]     |
[INFO] [stdout]  54 | pub const trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]     |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/tensor.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<T, S: const Shape> Tensor<T, own::Own, S>
[INFO] [stdout]    |            ^^^^^ can't be applied to `Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]   --> src/shape.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/own.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl<T, O: const MutableOwnership<T>, const N: usize> Data<T, O, N> {
[INFO] [stdout]    |            ^^^^^ can't be applied to `MutableOwnership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `MutableOwnership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub const trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/shape.rs:32:39
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Cons<const N: usize, Tail: const Shape> {
[INFO] [stdout]    |                                       ^^^^^ can't be applied to `Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/own.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Data<T, O: const Ownership<T>, const N: usize>(O::Data<N>);
[INFO] [stdout]    |                       ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Shape` which is not `const`
[INFO] [stdout]   --> src/shape.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl const Shape for Nil {
[INFO] [stdout]    |            ^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Shape` which is not `const`
[INFO] [stdout]   --> src/shape.rs:37:47
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<const N: usize, Tail: const Shape> const Shape for Cons<N, Tail> {
[INFO] [stdout]    |                                               ^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/shape.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl<const N: usize, Tail: const Shape> Sealed for Cons<N, Tail> {}
[INFO] [stdout]    |                            ^^^^^ can't be applied to `Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/shape.rs:37:28
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<const N: usize, Tail: const Shape> const Shape for Cons<N, Tail> {
[INFO] [stdout]    |                            ^^^^^ can't be applied to `Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/own.rs:54:32
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    |                                ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/own.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<T, O: const Ownership<T>, const N: usize> Data<T, O, N> {
[INFO] [stdout]    |            ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/tensor.rs:9:25
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Tensor<T, O: const Ownership<T>, S: const Shape>
[INFO] [stdout]    |                         ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]   --> src/own.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]  --> src/tensor.rs:9:48
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Tensor<T, O: const Ownership<T>, S: const Shape>
[INFO] [stdout]   |                                                ^^^^^ can't be applied to `Shape`
[INFO] [stdout]   |
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]  --> src/shape.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const trait Shape: Sealed {
[INFO] [stdout]   |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Ownership` which is not `const`
[INFO] [stdout]   --> src/own.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl<T> const Ownership<T> for Own {
[INFO] [stdout]    |               ^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `MutableOwnership` which is not `const`
[INFO] [stdout]   --> src/own.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl<T> const MutableOwnership<T> for Own {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `MutableOwnership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub const trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Ownership` which is not `const`
[INFO] [stdout]   --> src/own.rs:83:29
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl<'data, T: 'data> const Ownership<T> for Ref<'data> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Ownership` which is not `const`
[INFO] [stdout]   --> src/own.rs:97:29
[INFO] [stdout]    |
[INFO] [stdout] 97 | impl<'data, T: 'data> const Ownership<T> for Mut<'data> {
[INFO] [stdout]    |                             ^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `MutableOwnership` which is not `const`
[INFO] [stdout]    --> src/own.rs:104:29
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl<'data, T: 'data> const MutableOwnership<T> for Mut<'data> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^ this trait is not `const`
[INFO] [stdout]     |
[INFO] [stdout]     = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]     = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `MutableOwnership` as `const` to allow it to have `const` implementations
[INFO] [stdout]     |
[INFO] [stdout]  54 | pub const trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]     |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/tensor.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<T, S: const Shape> Tensor<T, own::Own, S>
[INFO] [stdout]    |            ^^^^^ can't be applied to `shape::Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `shape::Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]   --> src/shape.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/own.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl<T, O: const MutableOwnership<T>, const N: usize> Data<T, O, N> {
[INFO] [stdout]    |            ^^^^^ can't be applied to `MutableOwnership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `MutableOwnership` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub const trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/shape.rs:32:39
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Cons<const N: usize, Tail: const Shape> {
[INFO] [stdout]    |                                       ^^^^^ can't be applied to `shape::Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `shape::Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Shape` which is not `const`
[INFO] [stdout]   --> src/shape.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl const Shape for Nil {
[INFO] [stdout]    |            ^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: const `impl` for trait `Shape` which is not `const`
[INFO] [stdout]   --> src/shape.rs:37:47
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<const N: usize, Tail: const Shape> const Shape for Cons<N, Tail> {
[INFO] [stdout]    |                                               ^^^^^ this trait is not `const`
[INFO] [stdout]    |
[INFO] [stdout]    = note: marking a trait with `const` ensures all default method bodies are `const`
[INFO] [stdout]    = note: adding a non-const method body in the future would be a breaking change
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/shape.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl<const N: usize, Tail: const Shape> Sealed for Cons<N, Tail> {}
[INFO] [stdout]    |                            ^^^^^ can't be applied to `shape::Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `shape::Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/shape.rs:37:28
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<const N: usize, Tail: const Shape> const Shape for Cons<N, Tail> {
[INFO] [stdout]    |                            ^^^^^ can't be applied to `shape::Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `shape::Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/tensor.rs:9:25
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Tensor<T, O: const Ownership<T>, S: const Shape>
[INFO] [stdout]    |                         ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]   --> src/own.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]  --> src/tensor.rs:9:48
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Tensor<T, O: const Ownership<T>, S: const Shape>
[INFO] [stdout]   |                                                ^^^^^ can't be applied to `shape::Shape`
[INFO] [stdout]   |
[INFO] [stdout] help: mark `shape::Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]  --> src/shape.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const trait Shape: Sealed {
[INFO] [stdout]   |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/tensor.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl<T, O: const Ownership<T>, const N: usize, Tail: const Shape> Tensor<T, O, shape::Cons<N, Tail>>
[INFO] [stdout]    |            ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]   --> src/own.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/tensor.rs:32:54
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl<T, O: const Ownership<T>, const N: usize, Tail: const Shape> Tensor<T, O, shape::Cons<N, Tail>>
[INFO] [stdout]    |                                                      ^^^^^ can't be applied to `shape::Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `shape::Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]   --> src/shape.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/tensor.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl<T, O: const Ownership<T>, const N: usize, Tail: const Shape> Tensor<T, O, shape::Cons<N, Tail>>
[INFO] [stdout]    |            ^^^^^ can't be applied to `Ownership`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Ownership` as `const` to allow it to have `const` implementations
[INFO] [stdout]   --> src/own.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `const` can only be applied to `const` traits
[INFO] [stdout]   --> src/tensor.rs:32:54
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl<T, O: const Ownership<T>, const N: usize, Tail: const Shape> Tensor<T, O, shape::Cons<N, Tail>>
[INFO] [stdout]    |                                                      ^^^^^ can't be applied to `Shape`
[INFO] [stdout]    |
[INFO] [stdout] help: mark `Shape` as `const` to allow it to have `const` implementations
[INFO] [stdout]   --> src/shape.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub const trait Shape: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const associated function `<O as Ownership<T>>::view::<N>` in constant functions
[INFO] [stdout]   --> src/own.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         O::view(&self.0)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: associated function `view` is not const because trait `Ownership` is not const
[INFO] [stdout]   --> src/own.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub trait Ownership<T>: Sealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this trait is not const
[INFO] [stdout] 49 |     type Data<const N: usize>;
[INFO] [stdout] 50 |     fn view<const N: usize>(data: &Self::Data<N>) -> &[T; N];
[INFO] [stdout]    |     --------------------------------------------------------- this associated function is not const
[INFO] [stdout]    = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] help: consider making trait `Ownership` const
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const associated function `<O as MutableOwnership<T>>::view_mut::<N>` in constant functions
[INFO] [stdout]   --> src/own.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         O::view_mut(&mut self.0)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: associated function `view_mut` is not const because trait `MutableOwnership` is not const
[INFO] [stdout]   --> src/own.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this trait is not const
[INFO] [stdout] 55 |     fn view_mut<const N: usize>(data: &mut Self::Data<N>) -> &mut [T; N];
[INFO] [stdout]    |     --------------------------------------------------------------------- this associated function is not const
[INFO] [stdout]    = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] help: consider making trait `MutableOwnership` const
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub const trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const associated function `<O as Ownership<T>>::view::<N>` in constant functions
[INFO] [stdout]   --> src/own.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         O::view(&self.0)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: associated function `view` is not const because trait `Ownership` is not const
[INFO] [stdout]   --> src/own.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub trait Ownership<T>: Sealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this trait is not const
[INFO] [stdout] 49 |     type Data<const N: usize>;
[INFO] [stdout] 50 |     fn view<const N: usize>(data: &Self::Data<N>) -> &[T; N];
[INFO] [stdout]    |     --------------------------------------------------------- this associated function is not const
[INFO] [stdout]    = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] help: consider making trait `Ownership` const
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const trait Ownership<T>: Sealed {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const associated function `<O as MutableOwnership<T>>::view_mut::<N>` in constant functions
[INFO] [stdout]   --> src/own.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         O::view_mut(&mut self.0)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: associated function `view_mut` is not const because trait `MutableOwnership` is not const
[INFO] [stdout]   --> src/own.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this trait is not const
[INFO] [stdout] 55 |     fn view_mut<const N: usize>(data: &mut Self::Data<N>) -> &mut [T; N];
[INFO] [stdout]    |     --------------------------------------------------------------------- this associated function is not const
[INFO] [stdout]    = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] help: consider making trait `MutableOwnership` const
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub const trait MutableOwnership<T>: const Ownership<T> {
[INFO] [stdout]    |     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0015`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0015`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `einsum` (lib test) due to 24 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `einsum` (lib) due to 24 previous errors
[INFO] running `Command { std: "docker" "inspect" "0430df00165aba9d26e9022f92fac1dd9d33155b63a7396d30d886c8358830dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0430df00165aba9d26e9022f92fac1dd9d33155b63a7396d30d886c8358830dc", kill_on_drop: false }`
[INFO] [stdout] 0430df00165aba9d26e9022f92fac1dd9d33155b63a7396d30d886c8358830dc
