[INFO] fetching crate inertia-macros 0.1.0...
[INFO] testing inertia-macros-0.1.0 against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] extracting crate inertia-macros 0.1.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate inertia-macros 0.1.0
[INFO] finished tweaking crates.io crate inertia-macros 0.1.0
[INFO] tweaked toml for crates.io crate inertia-macros 0.1.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate inertia-macros 0.1.0 on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 4 packages to latest compatible versions
[INFO] [stderr]       Adding syn v1.0.109 (available: v2.0.114)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ba22b8d5846a0f5549121ec0804cf3090b81e69dd1881354fef5a941a236726d
[INFO] running `Command { std: "docker" "start" "-a" "ba22b8d5846a0f5549121ec0804cf3090b81e69dd1881354fef5a941a236726d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ba22b8d5846a0f5549121ec0804cf3090b81e69dd1881354fef5a941a236726d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba22b8d5846a0f5549121ec0804cf3090b81e69dd1881354fef5a941a236726d", kill_on_drop: false }`
[INFO] [stdout] ba22b8d5846a0f5549121ec0804cf3090b81e69dd1881354fef5a941a236726d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2ce1421a0234e6e06468830da9b584d444d66e9791035944f38d59311c7f46a1
[INFO] running `Command { std: "docker" "start" "-a" "2ce1421a0234e6e06468830da9b584d444d66e9791035944f38d59311c7f46a1", kill_on_drop: false }`
[INFO] [stderr]    Compiling inertia-macros v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.41s
[INFO] running `Command { std: "docker" "inspect" "2ce1421a0234e6e06468830da9b584d444d66e9791035944f38d59311c7f46a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2ce1421a0234e6e06468830da9b584d444d66e9791035944f38d59311c7f46a1", kill_on_drop: false }`
[INFO] [stdout] 2ce1421a0234e6e06468830da9b584d444d66e9791035944f38d59311c7f46a1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e58e6afe465f473a2d7f71a2071d6c9018cce5f25bf7942a3240e05461a71c1c
[INFO] running `Command { std: "docker" "start" "-a" "e58e6afe465f473a2d7f71a2071d6c9018cce5f25bf7942a3240e05461a71c1c", kill_on_drop: false }`
[INFO] [stderr]    Compiling inertia-macros v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.58s
[INFO] running `Command { std: "docker" "inspect" "e58e6afe465f473a2d7f71a2071d6c9018cce5f25bf7942a3240e05461a71c1c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e58e6afe465f473a2d7f71a2071d6c9018cce5f25bf7942a3240e05461a71c1c", kill_on_drop: false }`
[INFO] [stdout] e58e6afe465f473a2d7f71a2071d6c9018cce5f25bf7942a3240e05461a71c1c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b106a939663329414d51fe9babc728b7bfe943c0c8cd4f0dbc8af5c6b7b15d28
[INFO] running `Command { std: "docker" "start" "-a" "b106a939663329414d51fe9babc728b7bfe943c0c8cd4f0dbc8af5c6b7b15d28", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/inertia_macros-d3f86ccdcb224845)
[INFO] [stderr]    Doc-tests inertia_macros
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test src/lib.rs - impl_uni_ops (line 78) ... FAILED
[INFO] [stdout] test src/lib.rs - impl_ops (line 240) ... FAILED
[INFO] [stdout] test src/lib.rs - impl_op (line 149) ... FAILED
[INFO] [stdout] test src/lib.rs - impl_op_assign (line 479) ... FAILED
[INFO] [stdout] test src/lib.rs - impl_ops_assign_rprim (line 724) ... FAILED
[INFO] [stdout] test src/lib.rs - impl_ops_rprim (line 327) ... FAILED
[INFO] [stdout] test src/lib.rs - impl_ops_lprim (line 404) ... FAILED
[INFO] [stdout] test src/lib.rs - impl_ops_assign (line 560) ... FAILED
[INFO] [stdout] test src/lib.rs - impl_uni_op (line 10) ... FAILED
[INFO] [stdout] test src/lib.rs - impl_op_assign_rprim (line 643) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - impl_uni_ops (line 78) stdout ----
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]   --> src/lib.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn not(self: A) -> bool {
[INFO] [stdout]    |        ^^^^ not semantically valid as function parameter
[INFO] [stdout]    |
[INFO] [stdout]    = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]   --> src/lib.rs:85:3
[INFO] [stdout]    |
[INFO] [stdout] 85 | #[opimps::impl_uni_ops(Not)]
[INFO] [stdout]    |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0600]: cannot apply unary operator `!` to type `&A`
[INFO] [stdout]   --> src/lib.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 | let b = !&a;
[INFO] [stdout]    |         ^^^ cannot apply unary operator `!`
[INFO] [stdout] 
[INFO] [stdout] error[E0600]: cannot apply unary operator `!` to type `A`
[INFO] [stdout]   --> src/lib.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 | let b = !a;
[INFO] [stdout]    |         ^^ cannot apply unary operator `!`
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `Not` might be missing for `A`
[INFO] [stdout]   --> src/lib.rs:81:1
[INFO] [stdout]    |
[INFO] [stdout] 81 | struct A {
[INFO] [stdout]    | ^^^^^^^^ must implement `Not`
[INFO] [stdout] note: the trait `Not` must be implemented
[INFO] [stdout]   --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/bit.rs:35:0
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0433, E0600.
[INFO] [stdout] For more information about an error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - impl_ops (line 240) stdout ----
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn mul(self: ANumber, rhs: i32) -> i32 {
[INFO] [stdout]     |        ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:247:3
[INFO] [stdout]     |
[INFO] [stdout] 247 | #[opimps::impl_ops(Mul)] 
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `&ANumber` by `&{integer}`
[INFO] [stdout]    --> src/lib.rs:255:19
[INFO] [stdout]     |
[INFO] [stdout] 255 | assert_eq!(28, &a * &b);
[INFO] [stdout]     |                -- ^ -- &{integer}
[INFO] [stdout]     |                |
[INFO] [stdout]     |                &ANumber
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `ANumber` by `{integer}`
[INFO] [stdout]    --> src/lib.rs:256:18
[INFO] [stdout]     |
[INFO] [stdout] 256 | assert_eq!(28, a * b);
[INFO] [stdout]     |                - ^ - {integer}
[INFO] [stdout]     |                |
[INFO] [stdout]     |                ANumber
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Mul<{integer}>` might be missing for `ANumber`
[INFO] [stdout]    --> src/lib.rs:243:1
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct ANumber {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `Mul<{integer}>`
[INFO] [stdout] note: the trait `Mul` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:324:0
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0369, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0369`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - impl_op (line 149) stdout ----
[INFO] [stdout] error[E0428]: the name `mul` is defined multiple times
[INFO] [stdout]    --> src/lib.rs:160:1
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn mul(self: TestObj, rhs: TestObj) -> i32 {
[INFO] [stdout]     | ------------------------------------------ previous definition of the value `mul` here
[INFO] [stdout] ...
[INFO] [stdout] 160 | fn mul(self: &TestObj, rhs: TestObj) -> i32 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `mul` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `mul` must be defined only once in the value namespace of this block
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `mul` is defined multiple times
[INFO] [stdout]    --> src/lib.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn mul(self: TestObj, rhs: TestObj) -> i32 {
[INFO] [stdout]     | ------------------------------------------ previous definition of the value `mul` here
[INFO] [stdout] ...
[INFO] [stdout] 165 | fn mul(self: &TestObj, rhs: &TestObj) -> i32 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `mul` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `mul` must be defined only once in the value namespace of this block
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn mul(self: TestObj, rhs: TestObj) -> i32 {
[INFO] [stdout]     |        ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | fn mul(self: &TestObj, rhs: TestObj) -> i32 {
[INFO] [stdout]     |        ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn mul(self: &TestObj, rhs: &TestObj) -> i32 {
[INFO] [stdout]     |        ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:154:3
[INFO] [stdout]     |
[INFO] [stdout] 154 | #[opimps::impl_op(std::ops::Mul)]
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:159:3
[INFO] [stdout]     |
[INFO] [stdout] 159 | #[opimps::impl_op(std::ops::Mul)]
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:164:3
[INFO] [stdout]     |
[INFO] [stdout] 164 | #[opimps::impl_op(std::ops::Mul)]
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `&TestObj` by `&TestObj`
[INFO] [stdout]    --> src/lib.rs:172:19
[INFO] [stdout]     |
[INFO] [stdout] 172 | assert_eq!(28, &a * &b);
[INFO] [stdout]     |                -- ^ -- &TestObj
[INFO] [stdout]     |                |
[INFO] [stdout]     |                &TestObj
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `TestObj` by `TestObj`
[INFO] [stdout]    --> src/lib.rs:173:18
[INFO] [stdout]     |
[INFO] [stdout] 173 | assert_eq!(28, a * b);
[INFO] [stdout]     |                - ^ - TestObj
[INFO] [stdout]     |                |
[INFO] [stdout]     |                TestObj
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Mul` might be missing for `TestObj`
[INFO] [stdout]    --> src/lib.rs:150:1
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct TestObj {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `Mul`
[INFO] [stdout] note: the trait `Mul` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:324:0
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `&TestObj` by `TestObj`
[INFO] [stdout]    --> src/lib.rs:179:19
[INFO] [stdout]     |
[INFO] [stdout] 179 | assert_eq!(28, &a * b);
[INFO] [stdout]     |                -- ^ - TestObj
[INFO] [stdout]     |                |
[INFO] [stdout]     |                &TestObj
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0369, E0428, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0369`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - impl_op_assign (line 479) stdout ----
[INFO] [stdout] error[E0428]: the name `mul_assign` is defined multiple times
[INFO] [stdout]    --> src/lib.rs:490:1
[INFO] [stdout]     |
[INFO] [stdout] 485 | fn mul_assign(self: TestObj, rhs: TestObj) {
[INFO] [stdout]     | ------------------------------------------ previous definition of the value `mul_assign` here
[INFO] [stdout] ...
[INFO] [stdout] 490 | fn mul_assign(self: TestObj, rhs: &TestObj) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `mul_assign` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `mul_assign` must be defined only once in the value namespace of this block
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:485:15
[INFO] [stdout]     |
[INFO] [stdout] 485 | fn mul_assign(self: TestObj, rhs: TestObj) {
[INFO] [stdout]     |               ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:490:15
[INFO] [stdout]     |
[INFO] [stdout] 490 | fn mul_assign(self: TestObj, rhs: &TestObj) {
[INFO] [stdout]     |               ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:484:3
[INFO] [stdout]     |
[INFO] [stdout] 484 | #[opimps::impl_op_assign(std::ops::MulAssign)]
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:489:3
[INFO] [stdout]     |
[INFO] [stdout] 489 | #[opimps::impl_op_assign(std::ops::MulAssign)]
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `TestObj`
[INFO] [stdout]    --> src/lib.rs:497:1
[INFO] [stdout]     |
[INFO] [stdout] 497 | a *= b;
[INFO] [stdout]     | -^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | cannot use `*=` on type `TestObj`
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `MulAssign` might be missing for `TestObj`
[INFO] [stdout]    --> src/lib.rs:480:1
[INFO] [stdout]     |
[INFO] [stdout] 480 | pub struct TestObj {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `MulAssign`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:902:0
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `TestObj`
[INFO] [stdout]    --> src/lib.rs:502:1
[INFO] [stdout]     |
[INFO] [stdout] 502 | a *= &b;
[INFO] [stdout]     | -^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | cannot use `*=` on type `TestObj`
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `MulAssign<&TestObj>` might be missing for `TestObj`
[INFO] [stdout]    --> src/lib.rs:480:1
[INFO] [stdout]     |
[INFO] [stdout] 480 | pub struct TestObj {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `MulAssign<&TestObj>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:902:0
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.val`, as `self` is not declared as mutable
[INFO] [stdout]    --> src/lib.rs:486:4
[INFO] [stdout]     |
[INFO] [stdout] 486 |    self.val *= rhs.val;
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^ cannot assign
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 485 | fn mul_assign(mut self: TestObj, rhs: TestObj) {
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.val`, as `self` is not declared as mutable
[INFO] [stdout]    --> src/lib.rs:491:4
[INFO] [stdout]     |
[INFO] [stdout] 491 |    self.val *= rhs.val;
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^ cannot assign
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 490 | fn mul_assign(mut self: TestObj, rhs: &TestObj) {
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0368, E0428, E0433, E0594.
[INFO] [stdout] For more information about an error, try `rustc --explain E0368`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - impl_ops_assign_rprim (line 724) stdout ----
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:730:15
[INFO] [stdout]     |
[INFO] [stdout] 730 | fn add_assign(self: TestObj, rhs: i32) {
[INFO] [stdout]     |               ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:729:3
[INFO] [stdout]     |
[INFO] [stdout] 729 | #[opimps::impl_ops_assign_rprim(std::ops::AddAssign)]
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `+=` cannot be applied to type `TestObj`
[INFO] [stdout]    --> src/lib.rs:737:1
[INFO] [stdout]     |
[INFO] [stdout] 737 | a += b;
[INFO] [stdout]     | -^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | cannot use `+=` on type `TestObj`
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `AddAssign<{integer}>` might be missing for `TestObj`
[INFO] [stdout]    --> src/lib.rs:725:1
[INFO] [stdout]     |
[INFO] [stdout] 725 | pub struct TestObj {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `AddAssign<{integer}>`
[INFO] [stdout] note: the trait `AddAssign` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:769:0
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.val`, as `self` is not declared as mutable
[INFO] [stdout]    --> src/lib.rs:731:4
[INFO] [stdout]     |
[INFO] [stdout] 731 |    self.val += rhs;
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^ cannot assign
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 730 | fn add_assign(mut self: TestObj, rhs: i32) {
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0368, E0433, E0594.
[INFO] [stdout] For more information about an error, try `rustc --explain E0368`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - impl_ops_rprim (line 327) stdout ----
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:335:8
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn mul(self: ANumber, rhs: i32) -> i32 {
[INFO] [stdout]     |        ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:334:3
[INFO] [stdout]     |
[INFO] [stdout] 334 | #[opimps::impl_ops_rprim(Mul)] 
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `&ANumber` by `{integer}`
[INFO] [stdout]    --> src/lib.rs:342:19
[INFO] [stdout]     |
[INFO] [stdout] 342 | assert_eq!(28, &a * b);
[INFO] [stdout]     |                -- ^ - {integer}
[INFO] [stdout]     |                |
[INFO] [stdout]     |                &ANumber
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot multiply `ANumber` by `{integer}`
[INFO] [stdout]    --> src/lib.rs:343:18
[INFO] [stdout]     |
[INFO] [stdout] 343 | assert_eq!(28, a * b);
[INFO] [stdout]     |                - ^ - {integer}
[INFO] [stdout]     |                |
[INFO] [stdout]     |                ANumber
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `Mul<{integer}>` might be missing for `ANumber`
[INFO] [stdout]    --> src/lib.rs:330:1
[INFO] [stdout]     |
[INFO] [stdout] 330 | pub struct ANumber {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `Mul<{integer}>`
[INFO] [stdout] note: the trait `Mul` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:324:0
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0369, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0369`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - impl_ops_lprim (line 404) stdout ----
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:412:8
[INFO] [stdout]     |
[INFO] [stdout] 412 | fn mul(self: i32, rhs: ANumber) -> i32 {
[INFO] [stdout]     |        ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:411:3
[INFO] [stdout]     |
[INFO] [stdout] 411 | #[opimps::impl_ops_lprim(Mul)] 
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `{integer}` by `&ANumber`
[INFO] [stdout]    --> src/lib.rs:419:18
[INFO] [stdout]     |
[INFO] [stdout] 419 | assert_eq!(28, a * &b);
[INFO] [stdout]     |                  ^ no implementation for `{integer} * &ANumber`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Mul<&ANumber>` is not implemented for `{integer}`
[INFO] [stdout]     = help: the following other types implement trait `Mul<Rhs>`:
[INFO] [stdout]               `&f128` implements `Mul<f128>`
[INFO] [stdout]               `&f128` implements `Mul`
[INFO] [stdout]               `&f16` implements `Mul<f16>`
[INFO] [stdout]               `&f16` implements `Mul`
[INFO] [stdout]               `&f32` implements `Mul<f32>`
[INFO] [stdout]               `&f32` implements `Mul`
[INFO] [stdout]               `&f64` implements `Mul<f64>`
[INFO] [stdout]               `&f64` implements `Mul`
[INFO] [stdout]             and 57 others
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot multiply `{integer}` by `ANumber`
[INFO] [stdout]    --> src/lib.rs:420:18
[INFO] [stdout]     |
[INFO] [stdout] 420 | assert_eq!(28, a * b);
[INFO] [stdout]     |                  ^ no implementation for `{integer} * ANumber`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Mul<ANumber>` is not implemented for `{integer}`
[INFO] [stdout]     = help: the following other types implement trait `Mul<Rhs>`:
[INFO] [stdout]               `&f128` implements `Mul<f128>`
[INFO] [stdout]               `&f128` implements `Mul`
[INFO] [stdout]               `&f16` implements `Mul<f16>`
[INFO] [stdout]               `&f16` implements `Mul`
[INFO] [stdout]               `&f32` implements `Mul<f32>`
[INFO] [stdout]               `&f32` implements `Mul`
[INFO] [stdout]               `&f64` implements `Mul<f64>`
[INFO] [stdout]               `&f64` implements `Mul`
[INFO] [stdout]             and 57 others
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - impl_ops_assign (line 560) stdout ----
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:566:15
[INFO] [stdout]     |
[INFO] [stdout] 566 | fn add_assign(self: TestObj, rhs: TestObj) {
[INFO] [stdout]     |               ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:565:3
[INFO] [stdout]     |
[INFO] [stdout] 565 | #[opimps::impl_ops_assign(std::ops::AddAssign)]
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `+=` cannot be applied to type `TestObj`
[INFO] [stdout]    --> src/lib.rs:573:1
[INFO] [stdout]     |
[INFO] [stdout] 573 | a += b;
[INFO] [stdout]     | -^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | cannot use `+=` on type `TestObj`
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `AddAssign` might be missing for `TestObj`
[INFO] [stdout]    --> src/lib.rs:561:1
[INFO] [stdout]     |
[INFO] [stdout] 561 | pub struct TestObj {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `AddAssign`
[INFO] [stdout] note: the trait `AddAssign` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:769:0
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `+=` cannot be applied to type `TestObj`
[INFO] [stdout]    --> src/lib.rs:578:1
[INFO] [stdout]     |
[INFO] [stdout] 578 | a += &b;
[INFO] [stdout]     | -^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | cannot use `+=` on type `TestObj`
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `AddAssign<&TestObj>` might be missing for `TestObj`
[INFO] [stdout]    --> src/lib.rs:561:1
[INFO] [stdout]     |
[INFO] [stdout] 561 | pub struct TestObj {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `AddAssign<&TestObj>`
[INFO] [stdout] note: the trait `AddAssign` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:769:0
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.val`, as `self` is not declared as mutable
[INFO] [stdout]    --> src/lib.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 |    self.val += rhs.val;
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^ cannot assign
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 566 | fn add_assign(mut self: TestObj, rhs: TestObj) {
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0368, E0433, E0594.
[INFO] [stdout] For more information about an error, try `rustc --explain E0368`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - impl_uni_op (line 10) stdout ----
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]   --> src/lib.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn not(self: A) -> A {
[INFO] [stdout]    |        ^^^^ not semantically valid as function parameter
[INFO] [stdout]    |
[INFO] [stdout]    = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]   --> src/lib.rs:17:3
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[opimps::impl_uni_op(Not)]
[INFO] [stdout]    |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0600]: cannot apply unary operator `!` to type `A`
[INFO] [stdout]   --> src/lib.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | let b = !a;
[INFO] [stdout]    |         ^^ cannot apply unary operator `!`
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `Not` might be missing for `A`
[INFO] [stdout]   --> src/lib.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct A {
[INFO] [stdout]    | ^^^^^^^^ must implement `Not`
[INFO] [stdout] note: the trait `Not` must be implemented
[INFO] [stdout]   --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/bit.rs:35:0
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0433, E0600.
[INFO] [stdout] For more information about an error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - impl_op_assign_rprim (line 643) stdout ----
[INFO] [stdout] error[E0428]: the name `mul_assign` is defined multiple times
[INFO] [stdout]    --> src/lib.rs:654:1
[INFO] [stdout]     |
[INFO] [stdout] 649 | fn mul_assign(self: TestObj, rhs: TestObj) {
[INFO] [stdout]     | ------------------------------------------ previous definition of the value `mul_assign` here
[INFO] [stdout] ...
[INFO] [stdout] 654 | fn mul_assign(self: TestObj, rhs: &TestObj) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `mul_assign` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `mul_assign` must be defined only once in the value namespace of this block
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:649:15
[INFO] [stdout]     |
[INFO] [stdout] 649 | fn mul_assign(self: TestObj, rhs: TestObj) {
[INFO] [stdout]     |               ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter is only allowed in associated functions
[INFO] [stdout]    --> src/lib.rs:654:15
[INFO] [stdout]     |
[INFO] [stdout] 654 | fn mul_assign(self: TestObj, rhs: &TestObj) {
[INFO] [stdout]     |               ^^^^ not semantically valid as function parameter
[INFO] [stdout]     |
[INFO] [stdout]     = note: associated functions are those in `impl` or `trait` definitions
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:648:3
[INFO] [stdout]     |
[INFO] [stdout] 648 | #[opimps::impl_op_assign(std::ops::MulAssign)]
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `opimps`
[INFO] [stdout]    --> src/lib.rs:653:3
[INFO] [stdout]     |
[INFO] [stdout] 653 | #[opimps::impl_op_assign(std::ops::MulAssign)]
[INFO] [stdout]     |   ^^^^^^ use of unresolved module or unlinked crate `opimps`
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `TestObj`
[INFO] [stdout]    --> src/lib.rs:661:1
[INFO] [stdout]     |
[INFO] [stdout] 661 | a *= b;
[INFO] [stdout]     | -^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | cannot use `*=` on type `TestObj`
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `MulAssign` might be missing for `TestObj`
[INFO] [stdout]    --> src/lib.rs:644:1
[INFO] [stdout]     |
[INFO] [stdout] 644 | pub struct TestObj {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `MulAssign`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:902:0
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `*=` cannot be applied to type `TestObj`
[INFO] [stdout]    --> src/lib.rs:666:1
[INFO] [stdout]     |
[INFO] [stdout] 666 | a *= &b;
[INFO] [stdout]     | -^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | cannot use `*=` on type `TestObj`
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `MulAssign<&TestObj>` might be missing for `TestObj`
[INFO] [stdout]    --> src/lib.rs:644:1
[INFO] [stdout]     |
[INFO] [stdout] 644 | pub struct TestObj {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ must implement `MulAssign<&TestObj>`
[INFO] [stdout] note: the trait `MulAssign` must be implemented
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/arith.rs:902:0
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.val`, as `self` is not declared as mutable
[INFO] [stdout]    --> src/lib.rs:650:4
[INFO] [stdout]     |
[INFO] [stdout] 650 |    self.val *= rhs.val;
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^ cannot assign
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 649 | fn mul_assign(mut self: TestObj, rhs: TestObj) {
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.val`, as `self` is not declared as mutable
[INFO] [stdout]    --> src/lib.rs:655:4
[INFO] [stdout]     |
[INFO] [stdout] 655 |    self.val *= rhs.val;
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^ cannot assign
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 654 | fn mul_assign(mut self: TestObj, rhs: &TestObj) {
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0368, E0428, E0433, E0594.
[INFO] [stdout] For more information about an error, try `rustc --explain E0368`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - impl_op (line 149)
[INFO] [stdout]     src/lib.rs - impl_op_assign (line 479)
[INFO] [stdout]     src/lib.rs - impl_op_assign_rprim (line 643)
[INFO] [stdout]     src/lib.rs - impl_ops (line 240)
[INFO] [stdout]     src/lib.rs - impl_ops_assign (line 560)
[INFO] [stdout]     src/lib.rs - impl_ops_assign_rprim (line 724)
[INFO] [stdout]     src/lib.rs - impl_ops_lprim (line 404)
[INFO] [stdout]     src/lib.rs - impl_ops_rprim (line 327)
[INFO] [stdout]     src/lib.rs - impl_uni_op (line 10)
[INFO] [stdout]     src/lib.rs - impl_uni_ops (line 78)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 10 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "b106a939663329414d51fe9babc728b7bfe943c0c8cd4f0dbc8af5c6b7b15d28", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b106a939663329414d51fe9babc728b7bfe943c0c8cd4f0dbc8af5c6b7b15d28", kill_on_drop: false }`
[INFO] [stdout] b106a939663329414d51fe9babc728b7bfe943c0c8cd4f0dbc8af5c6b7b15d28
