[INFO] fetching crate you-can 0.0.14...
[INFO] testing you-can-0.0.14 against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] extracting crate you-can 0.0.14 into /workspace/builds/worker-2-tc1/source
[INFO] validating manifest of crates.io crate you-can 0.0.14 on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate you-can 0.0.14
[INFO] finished tweaking crates.io crate you-can 0.0.14
[INFO] tweaked toml for crates.io crate you-can 0.0.14 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate crates.io crate you-can 0.0.14 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" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded compiletest_rs v0.8.0
[INFO] [stderr]   Downloaded you-can-build-macros v0.0.14
[INFO] [stderr]   Downloaded tester v0.9.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b7be01f948411c6c5e334c180a1660c17b93b61e40ebbe55b2ad1655d45b4ffc
[INFO] running `Command { std: "docker" "start" "-a" "b7be01f948411c6c5e334c180a1660c17b93b61e40ebbe55b2ad1655d45b4ffc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b7be01f948411c6c5e334c180a1660c17b93b61e40ebbe55b2ad1655d45b4ffc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b7be01f948411c6c5e334c180a1660c17b93b61e40ebbe55b2ad1655d45b4ffc", kill_on_drop: false }`
[INFO] [stdout] b7be01f948411c6c5e334c180a1660c17b93b61e40ebbe55b2ad1655d45b4ffc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2e6b0b5b54eb1e409cd1ed439c6b77ed19e53ae3cbe407cc095a5eeb65cdb44a
[INFO] running `Command { std: "docker" "start" "-a" "2e6b0b5b54eb1e409cd1ed439c6b77ed19e53ae3cbe407cc095a5eeb65cdb44a", kill_on_drop: false }`
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.43
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling unicode-ident v1.0.3
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling you-can-build-macros v0.0.14
[INFO] [stderr]    Compiling you-can v0.0.14 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.30s
[INFO] running `Command { std: "docker" "inspect" "2e6b0b5b54eb1e409cd1ed439c6b77ed19e53ae3cbe407cc095a5eeb65cdb44a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e6b0b5b54eb1e409cd1ed439c6b77ed19e53ae3cbe407cc095a5eeb65cdb44a", kill_on_drop: false }`
[INFO] [stdout] 2e6b0b5b54eb1e409cd1ed439c6b77ed19e53ae3cbe407cc095a5eeb65cdb44a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1edd07a9c3717e5f3f1bb08aa20cdf3392385eddc43e02e59c56343e08f652e9
[INFO] running `Command { std: "docker" "start" "-a" "1edd07a9c3717e5f3f1bb08aa20cdf3392385eddc43e02e59c56343e08f652e9", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.43
[INFO] [stderr]    Compiling libc v0.2.131
[INFO] [stderr]    Compiling serde_derive v1.0.143
[INFO] [stderr]    Compiling serde v1.0.143
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling serde_json v1.0.83
[INFO] [stderr]    Compiling anyhow v1.0.61
[INFO] [stderr]    Compiling ryu v1.0.11
[INFO] [stderr]    Compiling semver v1.0.13
[INFO] [stderr]    Compiling unicode-width v0.1.9
[INFO] [stderr]    Compiling itoa v1.0.3
[INFO] [stderr]    Compiling getopts v0.2.21
[INFO] [stderr]    Compiling remove_dir_all v0.5.3
[INFO] [stderr]    Compiling compiletest_rs v0.8.0
[INFO] [stderr]    Compiling regex-syntax v0.6.27
[INFO] [stderr]    Compiling fastrand v1.8.0
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling num_cpus v1.13.1
[INFO] [stderr]    Compiling filetime v0.2.17
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling tempfile v3.3.0
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling tester v0.9.0
[INFO] [stderr]    Compiling regex v1.6.0
[INFO] [stderr]    Compiling you-can-build-macros v0.0.14
[INFO] [stderr]    Compiling you-can v0.0.14 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling rustfix v0.6.1
[INFO] [stdout] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout]  --> examples/on_statement.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout]  --> examples/on_block.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout]  --> examples/in_mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     #![you_can::turn_off_the_borrow_checker]
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout]  --> examples/on_mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout]  --> examples/in_fn.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     #![you_can::turn_off_the_borrow_checker]
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the borrow checker is suppressed for these references.
[INFO] [stdout]   --> examples/in_mod.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 |         let mut_1 = &mut owned[0];
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout] 11 |         let mut_2 = &mut owned[1];
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the borrow checker is suppressed for these references.
[INFO] [stdout]  --> examples/on_mod.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 |         let mut_1 = &mut owned[0];
[INFO] [stdout]   |                     ^^^^^^^^^^^^^
[INFO] [stdout] 8 |         let mut_2 = &mut owned[1];
[INFO] [stdout]   |                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the borrow checker is suppressed for these references.
[INFO] [stdout]   --> examples/in_fn.rs:9:17
[INFO] [stdout]    |
[INFO] [stdout] 9  |     let mut_1 = &mut owned[0];
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 10 |     let mut_2 = &mut owned[1];
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout]  --> examples/on_statement.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the borrow checker is suppressed for these references.
[INFO] [stdout]   --> examples/on_block.rs:9:21
[INFO] [stdout]    |
[INFO] [stdout] 9  |         let mut_1 = &mut owned[0];
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout] 10 |         let mut_2 = &mut owned[1];
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout]  --> examples/on_fn.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the borrow checker is suppressed for these references.
[INFO] [stdout]  --> examples/on_fn.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut_1 = &mut owned[0];
[INFO] [stdout]   |                 ^^^^^^^^^^^^^
[INFO] [stdout] 7 |     let mut_2 = &mut owned[1];
[INFO] [stdout]   |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.53s
[INFO] running `Command { std: "docker" "inspect" "1edd07a9c3717e5f3f1bb08aa20cdf3392385eddc43e02e59c56343e08f652e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1edd07a9c3717e5f3f1bb08aa20cdf3392385eddc43e02e59c56343e08f652e9", kill_on_drop: false }`
[INFO] [stdout] 1edd07a9c3717e5f3f1bb08aa20cdf3392385eddc43e02e59c56343e08f652e9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9c4f59af8672918716ac50b6aaa3d07441c769b0172f574cf278410153104e4f
[INFO] running `Command { std: "docker" "start" "-a" "9c4f59af8672918716ac50b6aaa3d07441c769b0172f574cf278410153104e4f", kill_on_drop: false }`
[INFO] [stderr] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stderr]  --> examples/in_fn.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     #![you_can::turn_off_the_borrow_checker]
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the borrow checker is suppressed for these references.
[INFO] [stderr]   --> examples/in_fn.rs:9:17
[INFO] [stderr]    |
[INFO] [stderr] 9  |     let mut_1 = &mut owned[0];
[INFO] [stderr]    |                 ^^^^^^^^^^^^^
[INFO] [stderr] 10 |     let mut_2 = &mut owned[1];
[INFO] [stderr]    |                 ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stderr]  --> examples/in_mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     #![you_can::turn_off_the_borrow_checker]
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the borrow checker is suppressed for these references.
[INFO] [stderr]   --> examples/in_mod.rs:10:21
[INFO] [stderr]    |
[INFO] [stderr] 10 |         let mut_1 = &mut owned[0];
[INFO] [stderr]    |                     ^^^^^^^^^^^^^
[INFO] [stderr] 11 |         let mut_2 = &mut owned[1];
[INFO] [stderr]    |                     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stderr]  --> examples/on_statement.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stderr]  --> examples/on_statement.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stderr]  --> examples/on_fn.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #[you_can::turn_off_the_borrow_checker]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the borrow checker is suppressed for these references.
[INFO] [stderr]  --> examples/on_fn.rs:6:17
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let mut_1 = &mut owned[0];
[INFO] [stderr]   |                 ^^^^^^^^^^^^^
[INFO] [stderr] 7 |     let mut_2 = &mut owned[1];
[INFO] [stderr]   |                 ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stderr]  --> examples/on_mod.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #[you_can::turn_off_the_borrow_checker]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the borrow checker is suppressed for these references.
[INFO] [stderr]  --> examples/on_mod.rs:7:21
[INFO] [stderr]   |
[INFO] [stderr] 7 |         let mut_1 = &mut owned[0];
[INFO] [stderr]   |                     ^^^^^^^^^^^^^
[INFO] [stderr] 8 |         let mut_2 = &mut owned[1];
[INFO] [stderr]   |                     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `you-can` (example "in_fn") generated 2 warnings
[INFO] [stderr] warning: `you-can` (example "in_mod") generated 2 warnings
[INFO] [stderr] warning: `you-can` (example "on_statement") generated 2 warnings
[INFO] [stderr] warning: `you-can` (example "on_fn") generated 2 warnings
[INFO] [stderr] warning: `you-can` (example "on_mod") generated 2 warnings
[INFO] [stderr] warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stderr]  --> examples/on_block.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the borrow checker is suppressed for these references.
[INFO] [stderr]   --> examples/on_block.rs:9:21
[INFO] [stderr]    |
[INFO] [stderr] 9  |         let mut_1 = &mut owned[0];
[INFO] [stderr]    |                     ^^^^^^^^^^^^^
[INFO] [stderr] 10 |         let mut_2 = &mut owned[1];
[INFO] [stderr]    |                     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `you-can` (example "on_block") generated 2 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/you_can-95d62ee0a0f16e10)
[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] [stderr]      Running tests/compile_tests.rs (/opt/rustwide/target/debug/deps/compile_tests-e7bb825896822783)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test [ui] unstable-pass/in_mod.rs ... FAILED
[INFO] [stdout] test [ui] unstable-pass/in_fn.rs ... FAILED
[INFO] [stdout] test [ui] unstable-pass/on_block.rs ... FAILED
[INFO] [stdout] test [ui] unstable-pass/on_fn.rs ... FAILED
[INFO] [stdout] test [compile-fail] unstable-fail/not_on_fn.rs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] test compile_fail ... ok
[INFO] [stdout] test [ui] unstable-pass/on_fn_empty.rs ... FAILED
[INFO] [stdout] test [ui] unstable-pass/on_mod.rs ... FAILED
[INFO] [stdout] test [ui] unstable-pass/on_statement.rs ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     [ui] unstable-pass/in_fn.rs
[INFO] [stdout]     [ui] unstable-pass/in_mod.rs
[INFO] [stdout]     [ui] unstable-pass/on_block.rs
[INFO] [stdout]     [ui] unstable-pass/on_fn.rs
[INFO] [stdout]     [ui] unstable-pass/on_fn_empty.rs
[INFO] [stdout]     [ui] unstable-pass/on_mod.rs
[INFO] [stdout]     [ui] unstable-pass/on_statement.rs
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 7 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stdout] test run_pass ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- run_pass stdout ----
[INFO] [stdout] diff of stderr:
[INFO] [stdout] 
[INFO] [stdout] -warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout] - --> $DIR/in_mod.rs:4:5
[INFO] [stdout] +error[E0464]: multiple candidates for `rlib` dependency `you_can` found
[INFO] [stdout] + --> $DIR/in_mod.rs:4:8
[INFO] [stdout]    |
[INFO] [stdout]  4 |     #![you_can::turn_off_the_borrow_checker]
[INFO] [stdout] -  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] +  |        ^^^^^^^
[INFO] [stdout] +  |
[INFO] [stdout] +  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib
[INFO] [stdout] +  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib
[INFO] [stdout]  
[INFO] [stdout] -warning: the borrow checker is suppressed for these references.
[INFO] [stdout] -  --> $DIR/in_mod.rs:10:21
[INFO] [stdout] +error[E0499]: cannot borrow `owned` as mutable more than once at a time
[INFO] [stdout] +  --> $DIR/in_mod.rs:11:26
[INFO] [stdout]     |
[INFO] [stdout]  10 |         let mut_1 = &mut owned[0];
[INFO] [stdout] -   |                     ^^^^^^^^^^^^^
[INFO] [stdout] +   |                          ----- first mutable borrow occurs here
[INFO] [stdout]  11 |         let mut_2 = &mut owned[1];
[INFO] [stdout] -   |                     ^^^^^^^^^^^^^
[INFO] [stdout] +   |                          ^^^^^ second mutable borrow occurs here
[INFO] [stdout] +...
[INFO] [stdout] +15 |         let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                         ------ first borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices
[INFO] [stdout]  
[INFO] [stdout] -warning: 2 warnings emitted
[INFO] [stdout] +error[E0505]: cannot move out of `owned` because it is borrowed
[INFO] [stdout] +  --> $DIR/in_mod.rs:14:14
[INFO] [stdout] +   |
[INFO] [stdout] +7  |         let mut owned = vec![1, 32];
[INFO] [stdout] +   |             --------- binding `owned` declared here
[INFO] [stdout] +...
[INFO] [stdout] +10 |         let mut_1 = &mut owned[0];
[INFO] [stdout] +   |                          ----- borrow of `owned` occurs here
[INFO] [stdout] +...
[INFO] [stdout] +14 |         drop(owned);
[INFO] [stdout] +   |              ^^^^^ move out of `owned` occurs here
[INFO] [stdout] +15 |         let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                         ------ borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout] +   |
[INFO] [stdout] +10 |         let mut_1 = &mut owned.clone()[0];
[INFO] [stdout] +   |                               ++++++++
[INFO] [stdout]  
[INFO] [stdout] +error: aborting due to 3 previous errors
[INFO] [stdout] +
[INFO] [stdout] +Some errors have detailed explanations: E0464, E0499, E0505.
[INFO] [stdout] +For more information about an error, try `rustc --explain E0464`.
[INFO] [stdout]  
[INFO] [stdout] 
[INFO] [stdout] The actual stderr differed from the expected stderr.
[INFO] [stdout] Actual stderr saved to /tmp/in_mod.stage-id.stderr
[INFO] [stdout] To update references, rerun the tests and pass the `--bless` flag
[INFO] [stdout] To only update this specific test, also pass `--test-args in_mod.rs`
[INFO] [stdout] 
[INFO] [stdout] error: 1 errors occurred comparing output.
[INFO] [stdout] status: exit status: 1
[INFO] [stdout] command: "rustc" "tests/unstable-pass/in_mod.rs" "-L" "/tmp" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-C" "prefer-dynamic" "-o" "/tmp/in_mod.stage-id" "-A" "unused" "--extern" "you_can" "--extern" "unbounded" "-L" "target/debug/deps" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/target/debug" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib" "--edition=2021" "-L" "/tmp/in_mod.stage-id.aux"
[INFO] [stdout] stdout:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] stderr:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] {"$message_type":"diagnostic","message":"multiple candidates for `rlib` dependency `you_can` found","code":{"code":"E0464","explanation":"The compiler found multiple library files with the requested crate name.\n\n```compile_fail\n// aux-build:crateresolve-1.rs\n// aux-build:crateresolve-2.rs\n// aux-build:crateresolve-3.rs\n\nextern crate crateresolve;\n//~^ ERROR multiple candidates for `rlib` dependency `crateresolve` found\n\nfn main() {}\n```\n\nThis error can occur in several different cases -- for example, when using\n`extern crate` or passing `--extern` options without crate paths. It can also be\ncaused by caching issues with the build directory, in which case `cargo clean`\nmay help.\n\nIn the above example, there are three different library files, all of which\ndefine the same crate name. Without providing a full path, there is no way for\nthe compiler to know which crate it should use.\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/in_mod.rs","byte_start":57,"byte_end":64,"line_start":4,"line_end":4,"column_start":8,"column_end":15,"is_primary":true,"text":[{"text":"    #![you_can::turn_off_the_borrow_checker]","highlight_start":8,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"candidate #2: /opt/rustwide/target/debug/libyou_can.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0464]: multiple candidates for `rlib` dependency `you_can` found\n --> tests/unstable-pass/in_mod.rs:4:8\n  |\n4 |     #![you_can::turn_off_the_borrow_checker]\n  |        ^^^^^^^\n  |\n  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib\n  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot borrow `owned` as mutable more than once at a time","code":{"code":"E0499","explanation":"A variable was borrowed as mutable more than once.\n\nErroneous code example:\n\n```compile_fail,E0499\nlet mut i = 0;\nlet mut x = &mut i;\nlet mut a = &mut i;\nx;\n// error: cannot borrow `i` as mutable more than once at a time\n```\n\nPlease note that in Rust, you can either have many immutable references, or one\nmutable reference. For more details you may want to read the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n\nExample:\n\n```\nlet mut i = 0;\nlet mut x = &mut i; // ok!\n\n// or:\nlet mut i = 0;\nlet a = &i; // ok!\nlet b = &i; // still ok!\nlet c = &i; // still ok!\nb;\na;\n```\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/in_mod.rs","byte_start":215,"byte_end":220,"line_start":10,"line_end":10,"column_start":26,"column_end":31,"is_primary":false,"text":[{"text":"        let mut_1 = &mut owned[0];","highlight_start":26,"highlight_end":31}],"label":"first mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_mod.rs","byte_start":250,"byte_end":255,"line_start":11,"line_end":11,"column_start":26,"column_end":31,"is_primary":true,"text":[{"text":"        let mut_2 = &mut owned[1];","highlight_start":26,"highlight_end":31}],"label":"second mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_mod.rs","byte_start":332,"byte_end":338,"line_start":15,"line_end":15,"column_start":25,"column_end":31,"is_primary":false,"text":[{"text":"        let undefined = *mut_1 + *mut_2;","highlight_start":25,"highlight_end":31}],"label":"first borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0499]: cannot borrow `owned` as mutable more than once at a time\n  --> tests/unstable-pass/in_mod.rs:11:26\n   |\n10 |         let mut_1 = &mut owned[0];\n   |                          ----- first mutable borrow occurs here\n11 |         let mut_2 = &mut owned[1];\n   |                          ^^^^^ second mutable borrow occurs here\n...\n15 |         let undefined = *mut_1 + *mut_2;\n   |                         ------ first borrow later used here\n   |\n   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot move out of `owned` because it is borrowed","code":{"code":"E0505","explanation":"A value was moved out while it was still borrowed.\n\nErroneous code example:\n\n```compile_fail,E0505\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let _ref_to_val: &Value = &x;\n    eat(x);\n    borrow(_ref_to_val);\n}\n```\n\nHere, the function `eat` takes ownership of `x`. However,\n`x` cannot be moved because the borrow to `_ref_to_val`\nneeds to last till the function `borrow`.\nTo fix that you can do a few different things:\n\n* Try to avoid moving the variable.\n* Release borrow before move.\n* Implement the `Copy` trait on the type.\n\nExamples:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: &Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    eat(&x); // pass by reference, if it's possible\n    borrow(ref_to_val);\n}\n```\n\nOr:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    borrow(ref_to_val);\n    // ref_to_val is no longer used.\n    eat(x);\n}\n```\n\nOr:\n\n```\n#[derive(Clone, Copy)] // implement Copy trait\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let ref_to_val: &Value = &x;\n    eat(x); // it will be copied here.\n    borrow(ref_to_val);\n}\n```\n\nFor more information on Rust's ownership system, take a look at the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/in_mod.rs","byte_start":300,"byte_end":305,"line_start":14,"line_end":14,"column_start":14,"column_end":19,"is_primary":true,"text":[{"text":"        drop(owned);","highlight_start":14,"highlight_end":19}],"label":"move out of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_mod.rs","byte_start":215,"byte_end":220,"line_start":10,"line_end":10,"column_start":26,"column_end":31,"is_primary":false,"text":[{"text":"        let mut_1 = &mut owned[0];","highlight_start":26,"highlight_end":31}],"label":"borrow of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_mod.rs","byte_start":128,"byte_end":137,"line_start":7,"line_end":7,"column_start":13,"column_end":22,"is_primary":false,"text":[{"text":"        let mut owned = vec![1, 32];","highlight_start":13,"highlight_end":22}],"label":"binding `owned` declared here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_mod.rs","byte_start":332,"byte_end":338,"line_start":15,"line_end":15,"column_start":25,"column_end":31,"is_primary":false,"text":[{"text":"        let undefined = *mut_1 + *mut_2;","highlight_start":25,"highlight_end":31}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider cloning the value if the performance cost is acceptable","code":null,"level":"help","spans":[{"file_name":"tests/unstable-pass/in_mod.rs","byte_start":220,"byte_end":220,"line_start":10,"line_end":10,"column_start":31,"column_end":31,"is_primary":true,"text":[{"text":"        let mut_1 = &mut owned[0];","highlight_start":31,"highlight_end":31}],"label":null,"suggested_replacement":".clone()","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error[E0505]: cannot move out of `owned` because it is borrowed\n  --> tests/unstable-pass/in_mod.rs:14:14\n   |\n7  |         let mut owned = vec![1, 32];\n   |             --------- binding `owned` declared here\n...\n10 |         let mut_1 = &mut owned[0];\n   |                          ----- borrow of `owned` occurs here\n...\n14 |         drop(owned);\n   |              ^^^^^ move out of `owned` occurs here\n15 |         let undefined = *mut_1 + *mut_2;\n   |                         ------ borrow later used here\n   |\nhelp: consider cloning the value if the performance cost is acceptable\n   |\n10 |         let mut_1 = &mut owned.clone()[0];\n   |                               ++++++++\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"aborting due to 3 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 3 previous errors\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0464, E0499, E0505.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"Some errors have detailed explanations: E0464, E0499, E0505.\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0464`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"For more information about an error, try `rustc --explain E0464`.\n"}
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] diff of stderr:
[INFO] [stdout] 
[INFO] [stdout] diff of stderr:
[INFO] [stdout] 
[INFO] [stdout] -warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout] - --> $DIR/in_fn.rs:4:5
[INFO] [stdout] +error[E0464]: multiple candidates for `rlib` dependency `you_can` found
[INFO] [stdout] + --> $DIR/in_fn.rs:4:8
[INFO] [stdout]    |
[INFO] [stdout]  4 |     #![you_can::turn_off_the_borrow_checker]
[INFO] [stdout] -  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] +  |        ^^^^^^^
[INFO] [stdout] +  |
[INFO] [stdout] +  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib
[INFO] [stdout] +  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib
[INFO] [stdout]  
[INFO] [stdout] -warning: the borrow checker is suppressed for these references.
[INFO] [stdout] -  --> $DIR/in_fn.rs:9:17
[INFO] [stdout] +error[E0499]: cannot borrow `owned` as mutable more than once at a time
[INFO] [stdout] +  --> $DIR/in_fn.rs:10:22
[INFO] [stdout]     |
[INFO] [stdout]  9  |     let mut_1 = &mut owned[0];
[INFO] [stdout] -   |                 ^^^^^^^^^^^^^
[INFO] [stdout] +   |                      ----- first mutable borrow occurs here
[INFO] [stdout]  10 |     let mut_2 = &mut owned[1];
[INFO] [stdout] -   |                 ^^^^^^^^^^^^^
[INFO] [stdout] +   |                      ^^^^^ second mutable borrow occurs here
[INFO] [stdout] +...
[INFO] [stdout] +14 |     let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                     ------ first borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices
[INFO] [stdout]  
[INFO] [stdout] -warning: 2 warnings emitted
[INFO] [stdout] +error[E0505]: cannot move out of `owned` because it is borrowed
[INFO] [stdout] +  --> $DIR/in_fn.rs:13:10
[INFO] [stdout] +   |
[INFO] [stdout] +6  |     let mut owned = vec![1, 32];
[INFO] [stdout] +   |         --------- binding `owned` declared here
[INFO] [stdout] +...
[INFO] [stdout] +9  |     let mut_1 = &mut owned[0];
[INFO] [stdout] +   |                      ----- borrow of `owned` occurs here
[INFO] [stdout] +...
[INFO] [stdout] +13 |     drop(owned);
[INFO] [stdout] +   |          ^^^^^ move out of `owned` occurs here
[INFO] [stdout] +14 |     let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                     ------ borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout] +   |
[INFO] [stdout] +9  |     let mut_1 = &mut owned.clone()[0];
[INFO] [stdout] +   |                           ++++++++
[INFO] [stdout]  
[INFO] [stdout] +error: aborting due to 3 previous errors
[INFO] [stdout] +
[INFO] [stdout] +Some errors have detailed explanations: E0464, E0499, E0505.
[INFO] [stdout] +For more information about an error, try `rustc --explain E0464`.
[INFO] [stdout]  
[INFO] [stdout] -warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout] - --> $DIR/on_block.rs:6:5
[INFO] [stdout] +error[E0464]: multiple candidates for `rlib` dependency `you_can` found
[INFO] [stdout] + --> $DIR/on_block.rs:6:7
[INFO] [stdout]    |
[INFO] [stdout]  6 |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout] -  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] +  |       ^^^^^^^
[INFO] [stdout] +  |
[INFO] [stdout] +  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib
[INFO] [stdout] +  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib
[INFO] [stdout]  
[INFO] [stdout] -warning: the borrow checker is suppressed for these references.
[INFO] [stdout] -  --> $DIR/on_block.rs:9:21
[INFO] [stdout] +error[E0499]: cannot borrow `owned` as mutable more than once at a time
[INFO] [stdout] +  --> $DIR/on_block.rs:10:26
[INFO] [stdout]     |
[INFO] [stdout]  9  |         let mut_1 = &mut owned[0];
[INFO] [stdout] -   |                     ^^^^^^^^^^^^^
[INFO] [stdout] +   |                          ----- first mutable borrow occurs here
[INFO] [stdout]  10 |         let mut_2 = &mut owned[1];
[INFO] [stdout] -   |                     ^^^^^^^^^^^^^
[INFO] [stdout] +   |                          ^^^^^ second mutable borrow occurs here
[INFO] [stdout] +...
[INFO] [stdout] +14 |         let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                         ------ first borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices
[INFO] [stdout]  
[INFO] [stdout] -warning: 2 warnings emitted
[INFO] [stdout] +error[E0505]: cannot move out of `owned` because it is borrowed
[INFO] [stdout] +  --> $DIR/on_block.rs:13:14
[INFO] [stdout] +   |
[INFO] [stdout] +4  |     let mut owned = vec![1, 32];
[INFO] [stdout] +   |         --------- binding `owned` declared here
[INFO] [stdout] +...
[INFO] [stdout] +9  |         let mut_1 = &mut owned[0];
[INFO] [stdout] +   |                          ----- borrow of `owned` occurs here
[INFO] [stdout] +...
[INFO] [stdout] +13 |         drop(owned);
[INFO] [stdout] +   |              ^^^^^ move out of `owned` occurs here
[INFO] [stdout] +14 |         let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                         ------ borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout] +   |
[INFO] [stdout] +9  |         let mut_1 = &mut owned.clone()[0];
[INFO] [stdout] +   |                               ++++++++
[INFO] [stdout]  
[INFO] [stdout] +error: aborting due to 3 previous errors
[INFO] [stdout] +
[INFO] [stdout] +Some errors have detailed explanations: E0464, E0499, E0505.
[INFO] [stdout] +For more information about an error, try `rustc --explain E0464`.
[INFO] [stdout]  
[INFO] [stdout] 
[INFO] [stdout] The actual stderr differed from the expected stderr.
[INFO] [stdout] Actual stderr saved to /tmp/in_fn.stage-id.stderr
[INFO] [stdout] To update references, rerun the tests and pass the `--bless` flag
[INFO] [stdout] To only update this specific test, also pass `--test-args in_fn.rs`
[INFO] [stdout] 
[INFO] [stdout] error: 1 errors occurred comparing output.
[INFO] [stdout] status: exit status: 1
[INFO] [stdout] command: "rustc" "tests/unstable-pass/in_fn.rs" "-L" "/tmp" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-C" "prefer-dynamic" "-o" "/tmp/in_fn.stage-id" "-A" "unused" "--extern" "you_can" "--extern" "unbounded" "-L" "target/debug/deps" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/target/debug" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib" "--edition=2021" "-L" "/tmp/in_fn.stage-id.aux"
[INFO] [stdout] stdout:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] stderr:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] {"$message_type":"diagnostic","message":"multiple candidates for `rlib` dependency `you_can` found","code":{"code":"E0464","explanation":"The compiler found multiple library files with the requested crate name.\n\n```compile_fail\n// aux-build:crateresolve-1.rs\n// aux-build:crateresolve-2.rs\n// aux-build:crateresolve-3.rs\n\nextern crate crateresolve;\n//~^ ERROR multiple candidates for `rlib` dependency `crateresolve` found\n\nfn main() {}\n```\n\nThis error can occur in several different cases -- for example, when using\n`extern crate` or passing `--extern` options without crate paths. It can also be\ncaused by caching issues with the build directory, in which case `cargo clean`\nmay help.\n\nIn the above example, there are three different library files, all of which\ndefine the same crate name. Without providing a full path, there is no way for\nthe compiler to know which crate it should use.\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/in_fn.rs","byte_start":61,"byte_end":68,"line_start":4,"line_end":4,"column_start":8,"column_end":15,"is_primary":true,"text":[{"text":"    #![you_can::turn_off_the_borrow_checker]","highlight_start":8,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"candidate #2: /opt/rustwide/target/debug/libyou_can.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0464]: multiple candidates for `rlib` dependency `you_can` found\n --> tests/unstable-pass/in_fn.rs:4:8\n  |\n4 |     #![you_can::turn_off_the_borrow_checker]\n  |        ^^^^^^^\n  |\n  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib\n  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot borrow `owned` as mutable more than once at a time","code":{"code":"E0499","explanation":"A variable was borrowed as mutable more than once.\n\nErroneous code example:\n\n```compile_fail,E0499\nlet mut i = 0;\nlet mut x = &mut i;\nlet mut a = &mut i;\nx;\n// error: cannot borrow `i` as mutable more than once at a time\n```\n\nPlease note that in Rust, you can either have many immutable references, or one\nmutable reference. For more details you may want to read the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n\nExample:\n\n```\nlet mut i = 0;\nlet mut x = &mut i; // ok!\n\n// or:\nlet mut i = 0;\nlet a = &i; // ok!\nlet b = &i; // still ok!\nlet c = &i; // still ok!\nb;\na;\n```\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/in_fn.rs","byte_start":187,"byte_end":192,"line_start":9,"line_end":9,"column_start":22,"column_end":27,"is_primary":false,"text":[{"text":"    let mut_1 = &mut owned[0];","highlight_start":22,"highlight_end":27}],"label":"first mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_fn.rs","byte_start":218,"byte_end":223,"line_start":10,"line_end":10,"column_start":22,"column_end":27,"is_primary":true,"text":[{"text":"    let mut_2 = &mut owned[1];","highlight_start":22,"highlight_end":27}],"label":"second mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_fn.rs","byte_start":288,"byte_end":294,"line_start":14,"line_end":14,"column_start":21,"column_end":27,"is_primary":false,"text":[{"text":"    let undefined = *mut_1 + *mut_2;","highlight_start":21,"highlight_end":27}],"label":"first borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0499]: cannot borrow `owned` as mutable more than once at a time\n  --> tests/unstable-pass/in_fn.rs:10:22\n   |\n9  |     let mut_1 = &mut owned[0];\n   |                      ----- first mutable borrow occurs here\n10 |     let mut_2 = &mut owned[1];\n   |                      ^^^^^ second mutable borrow occurs here\n...\n14 |     let undefined = *mut_1 + *mut_2;\n   |                     ------ first borrow later used here\n   |\n   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot move out of `owned` because it is borrowed","code":{"code":"E0505","explanation":"A value was moved out while it was still borrowed.\n\nErroneous code example:\n\n```compile_fail,E0505\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let _ref_to_val: &Value = &x;\n    eat(x);\n    borrow(_ref_to_val);\n}\n```\n\nHere, the function `eat` takes ownership of `x`. However,\n`x` cannot be moved because the borrow to `_ref_to_val`\nneeds to last till the function `borrow`.\nTo fix that you can do a few different things:\n\n* Try to avoid moving the variable.\n* Release borrow before move.\n* Implement the `Copy` trait on the type.\n\nExamples:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: &Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    eat(&x); // pass by reference, if it's possible\n    borrow(ref_to_val);\n}\n```\n\nOr:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    borrow(ref_to_val);\n    // ref_to_val is no longer used.\n    eat(x);\n}\n```\n\nOr:\n\n```\n#[derive(Clone, Copy)] // implement Copy trait\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let ref_to_val: &Value = &x;\n    eat(x); // it will be copied here.\n    borrow(ref_to_val);\n}\n```\n\nFor more information on Rust's ownership system, take a look at the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/in_fn.rs","byte_start":260,"byte_end":265,"line_start":13,"line_end":13,"column_start":10,"column_end":15,"is_primary":true,"text":[{"text":"    drop(owned);","highlight_start":10,"highlight_end":15}],"label":"move out of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_fn.rs","byte_start":187,"byte_end":192,"line_start":9,"line_end":9,"column_start":22,"column_end":27,"is_primary":false,"text":[{"text":"    let mut_1 = &mut owned[0];","highlight_start":22,"highlight_end":27}],"label":"borrow of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_fn.rs","byte_start":108,"byte_end":117,"line_start":6,"line_end":6,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"    let mut owned = vec![1, 32];","highlight_start":9,"highlight_end":18}],"label":"binding `owned` declared here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/in_fn.rs","byte_start":288,"byte_end":294,"line_start":14,"line_end":14,"column_start":21,"column_end":27,"is_primary":false,"text":[{"text":"    let undefined = *mut_1 + *mut_2;","highlight_start":21,"highlight_end":27}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider cloning the value if the performance cost is acceptable","code":null,"level":"help","spans":[{"file_name":"tests/unstable-pass/in_fn.rs","byte_start":192,"byte_end":192,"line_start":9,"line_end":9,"column_start":27,"column_end":27,"is_primary":true,"text":[{"text":"    let mut_1 = &mut owned[0];","highlight_start":27,"highlight_end":27}],"label":null,"suggested_replacement":".clone()","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error[E0505]: cannot move out of `owned` because it is borrowed\n  --> tests/unstable-pass/in_fn.rs:13:10\n   |\n6  |     let mut owned = vec![1, 32];\n   |         --------- binding `owned` declared here\n...\n9  |     let mut_1 = &mut owned[0];\n   |                      ----- borrow of `owned` occurs here\n...\n13 |     drop(owned);\n   |          ^^^^^ move out of `owned` occurs here\n14 |     let undefined = *mut_1 + *mut_2;\n   |                     ------ borrow later used here\n   |\nhelp: consider cloning the value if the performance cost is acceptable\n   |\n9  |     let mut_1 = &mut owned.clone()[0];\n   |                           ++++++++\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"aborting due to 3 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 3 previous errors\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0464, E0499, E0505.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"Some errors have detailed explanations: E0464, E0499, E0505.\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0464`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"For more information about an error, try `rustc --explain E0464`.\n"}
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] The actual stderr differed from the expected stderr.
[INFO] [stdout] Actual stderr saved to /tmp/on_block.stage-id.stderr
[INFO] [stdout] To update references, rerun the tests and pass the `--bless` flag
[INFO] [stdout] To only update this specific test, also pass `--test-args on_block.rs`
[INFO] [stdout] 
[INFO] [stdout] error: 1 errors occurred comparing output.
[INFO] [stdout] status: exit status: 1
[INFO] [stdout] command: "rustc" "tests/unstable-pass/on_block.rs" "-L" "/tmp" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-C" "prefer-dynamic" "-o" "/tmp/on_block.stage-id" "-A" "unused" "--extern" "you_can" "--extern" "unbounded" "-L" "target/debug/deps" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/target/debug" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib" "--edition=2021" "-L" "/tmp/on_block.stage-id.aux"
[INFO] [stdout] stdout:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] stderr:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] {"$message_type":"diagnostic","message":"multiple candidates for `rlib` dependency `you_can` found","code":{"code":"E0464","explanation":"The compiler found multiple library files with the requested crate name.\n\n```compile_fail\n// aux-build:crateresolve-1.rs\n// aux-build:crateresolve-2.rs\n// aux-build:crateresolve-3.rs\n\nextern crate crateresolve;\n//~^ ERROR multiple candidates for `rlib` dependency `crateresolve` found\n\nfn main() {}\n```\n\nThis error can occur in several different cases -- for example, when using\n`extern crate` or passing `--extern` options without crate paths. It can also be\ncaused by caching issues with the build directory, in which case `cargo clean`\nmay help.\n\nIn the above example, there are three different library files, all of which\ndefine the same crate name. Without providing a full path, there is no way for\nthe compiler to know which crate it should use.\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_block.rs","byte_start":111,"byte_end":118,"line_start":6,"line_end":6,"column_start":7,"column_end":14,"is_primary":true,"text":[{"text":"    #[you_can::turn_off_the_borrow_checker]","highlight_start":7,"highlight_end":14}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"candidate #2: /opt/rustwide/target/debug/libyou_can.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0464]: multiple candidates for `rlib` dependency `you_can` found\n --> tests/unstable-pass/on_block.rs:6:7\n  |\n6 |     #[you_can::turn_off_the_borrow_checker]\n  |       ^^^^^^^\n  |\n  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib\n  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot borrow `owned` as mutable more than once at a time","code":{"code":"E0499","explanation":"A variable was borrowed as mutable more than once.\n\nErroneous code example:\n\n```compile_fail,E0499\nlet mut i = 0;\nlet mut x = &mut i;\nlet mut a = &mut i;\nx;\n// error: cannot borrow `i` as mutable more than once at a time\n```\n\nPlease note that in Rust, you can either have many immutable references, or one\nmutable reference. For more details you may want to read the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n\nExample:\n\n```\nlet mut i = 0;\nlet mut x = &mut i; // ok!\n\n// or:\nlet mut i = 0;\nlet a = &i; // ok!\nlet b = &i; // still ok!\nlet c = &i; // still ok!\nb;\na;\n```\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_block.rs","byte_start":216,"byte_end":221,"line_start":9,"line_end":9,"column_start":26,"column_end":31,"is_primary":false,"text":[{"text":"        let mut_1 = &mut owned[0];","highlight_start":26,"highlight_end":31}],"label":"first mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_block.rs","byte_start":251,"byte_end":256,"line_start":10,"line_end":10,"column_start":26,"column_end":31,"is_primary":true,"text":[{"text":"        let mut_2 = &mut owned[1];","highlight_start":26,"highlight_end":31}],"label":"second mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_block.rs","byte_start":333,"byte_end":339,"line_start":14,"line_end":14,"column_start":25,"column_end":31,"is_primary":false,"text":[{"text":"        let undefined = *mut_1 + *mut_2;","highlight_start":25,"highlight_end":31}],"label":"first borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0499]: cannot borrow `owned` as mutable more than once at a time\n  --> tests/unstable-pass/on_block.rs:10:26\n   |\n9  |         let mut_1 = &mut owned[0];\n   |                          ----- first mutable borrow occurs here\n10 |         let mut_2 = &mut owned[1];\n   |                          ^^^^^ second mutable borrow occurs here\n...\n14 |         let undefined = *mut_1 + *mut_2;\n   |                         ------ first borrow later used here\n   |\n   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot move out of `owned` because it is borrowed","code":{"code":"E0505","explanation":"A value was moved out while it was still borrowed.\n\nErroneous code example:\n\n```compile_fail,E0505\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let _ref_to_val: &Value = &x;\n    eat(x);\n    borrow(_ref_to_val);\n}\n```\n\nHere, the function `eat` takes ownership of `x`. However,\n`x` cannot be moved because the borrow to `_ref_to_val`\nneeds to last till the function `borrow`.\nTo fix that you can do a few different things:\n\n* Try to avoid moving the variable.\n* Release borrow before move.\n* Implement the `Copy` trait on the type.\n\nExamples:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: &Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    eat(&x); // pass by reference, if it's possible\n    borrow(ref_to_val);\n}\n```\n\nOr:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    borrow(ref_to_val);\n    // ref_to_val is no longer used.\n    eat(x);\n}\n```\n\nOr:\n\n```\n#[derive(Clone, Copy)] // implement Copy trait\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let ref_to_val: &Value = &x;\n    eat(x); // it will be copied here.\n    borrow(ref_to_val);\n}\n```\n\nFor more information on Rust's ownership system, take a look at the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_block.rs","byte_start":301,"byte_end":306,"line_start":13,"line_end":13,"column_start":14,"column_end":19,"is_primary":true,"text":[{"text":"        drop(owned);","highlight_start":14,"highlight_end":19}],"label":"move out of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_block.rs","byte_start":216,"byte_end":221,"line_start":9,"line_end":9,"column_start":26,"column_end":31,"is_primary":false,"text":[{"text":"        let mut_1 = &mut owned[0];","highlight_start":26,"highlight_end":31}],"label":"borrow of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_block.rs","byte_start":79,"byte_end":88,"line_start":4,"line_end":4,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"    let mut owned = vec![1, 32];","highlight_start":9,"highlight_end":18}],"label":"binding `owned` declared here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_block.rs","byte_start":333,"byte_end":339,"line_start":14,"line_end":14,"column_start":25,"column_end":31,"is_primary":false,"text":[{"text":"        let undefined = *mut_1 + *mut_2;","highlight_start":25,"highlight_end":31}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider cloning the value if the performance cost is acceptable","code":null,"level":"help","spans":[{"file_name":"tests/unstable-pass/on_block.rs","byte_start":221,"byte_end":221,"line_start":9,"line_end":9,"column_start":31,"column_end":31,"is_primary":true,"text":[{"text":"        let mut_1 = &mut owned[0];","highlight_start":31,"highlight_end":31}],"label":null,"suggested_replacement":".clone()","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error[E0505]: cannot move out of `owned` because it is borrowed\n  --> tests/unstable-pass/on_block.rs:13:14\n   |\n4  |     let mut owned = vec![1, 32];\n   |         --------- binding `owned` declared here\n...\n9  |         let mut_1 = &mut owned[0];\n   |                          ----- borrow of `owned` occurs here\n...\n13 |         drop(owned);\n   |              ^^^^^ move out of `owned` occurs here\n14 |         let undefined = *mut_1 + *mut_2;\n   |                         ------ borrow later used here\n   |\nhelp: consider cloning the value if the performance cost is acceptable\n   |\n9  |         let mut_1 = &mut owned.clone()[0];\n   |                               ++++++++\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"aborting due to 3 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 3 previous errors\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0464, E0499, E0505.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"Some errors have detailed explanations: E0464, E0499, E0505.\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0464`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"For more information about an error, try `rustc --explain E0464`.\n"}
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] diff of stderr:
[INFO] [stdout] 
[INFO] [stdout] -warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout] - --> $DIR/on_fn.rs:1:1
[INFO] [stdout] +error[E0464]: multiple candidates for `rlib` dependency `you_can` found
[INFO] [stdout] + --> $DIR/on_fn.rs:1:3
[INFO] [stdout]    |
[INFO] [stdout]  1 | #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout] -  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] -
[INFO] [stdout] -warning: the borrow checker is suppressed for these references.
[INFO] [stdout] - --> $DIR/on_fn.rs:6:17
[INFO] [stdout] +  |   ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] -6 |     let mut_1 = &mut owned[0];
[INFO] [stdout] -  |                 ^^^^^^^^^^^^^
[INFO] [stdout] -7 |     let mut_2 = &mut owned[1];
[INFO] [stdout] -  |                 ^^^^^^^^^^^^^
[INFO] [stdout] +  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib
[INFO] [stdout] +  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib
[INFO] [stdout]  
[INFO] [stdout] -warning: 2 warnings emitted
[INFO] [stdout] +error[E0499]: cannot borrow `owned` as mutable more than once at a time
[INFO] [stdout] +  --> $DIR/on_fn.rs:7:22
[INFO] [stdout] +   |
[INFO] [stdout] +6  |     let mut_1 = &mut owned[0];
[INFO] [stdout] +   |                      ----- first mutable borrow occurs here
[INFO] [stdout] +7  |     let mut_2 = &mut owned[1];
[INFO] [stdout] +   |                      ^^^^^ second mutable borrow occurs here
[INFO] [stdout] +...
[INFO] [stdout] +11 |     let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                     ------ first borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices
[INFO] [stdout]  
[INFO] [stdout] +error[E0505]: cannot move out of `owned` because it is borrowed
[INFO] [stdout] +  --> $DIR/on_fn.rs:10:10
[INFO] [stdout] +   |
[INFO] [stdout] +3  |     let mut owned = vec![1, 32];
[INFO] [stdout] +   |         --------- binding `owned` declared here
[INFO] [stdout] +...
[INFO] [stdout] +6  |     let mut_1 = &mut owned[0];
[INFO] [stdout] +   |                      ----- borrow of `owned` occurs here
[INFO] [stdout] +...
[INFO] [stdout] +10 |     drop(owned);
[INFO] [stdout] +   |          ^^^^^ move out of `owned` occurs here
[INFO] [stdout] +11 |     let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                     ------ borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout] +   |
[INFO] [stdout] +6  |     let mut_1 = &mut owned.clone()[0];
[INFO] [stdout] +   |                           ++++++++
[INFO] [stdout] +
[INFO] [stdout] +error: aborting due to 3 previous errors
[INFO] [stdout] +
[INFO] [stdout] +Some errors have detailed explanations: E0464, E0499, E0505.
[INFO] [stdout] +For more information about an error, try `rustc --explain E0464`.
[INFO] [stdout]  
[INFO] [stdout] 
[INFO] [stdout] The actual stderr differed from the expected stderr.
[INFO] [stdout] Actual stderr saved to /tmp/on_fn.stage-id.stderr
[INFO] [stdout] To update references, rerun the tests and pass the `--bless` flag
[INFO] [stdout] To only update this specific test, also pass `--test-args on_fn.rs`
[INFO] [stdout] 
[INFO] [stdout] error: 1 errors occurred comparing output.
[INFO] [stdout] status: exit status: 1
[INFO] [stdout] command: "rustc" "tests/unstable-pass/on_fn.rs" "-L" "/tmp" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-C" "prefer-dynamic" "-o" "/tmp/on_fn.stage-id" "-A" "unused" "--extern" "you_can" "--extern" "unbounded" "-L" "target/debug/deps" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/target/debug" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib" "--edition=2021" "-L" "/tmp/on_fn.stage-id.aux"
[INFO] [stdout] stdout:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] stderr:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] {"$message_type":"diagnostic","message":"multiple candidates for `rlib` dependency `you_can` found","code":{"code":"E0464","explanation":"The compiler found multiple library files with the requested crate name.\n\n```compile_fail\n// aux-build:crateresolve-1.rs\n// aux-build:crateresolve-2.rs\n// aux-build:crateresolve-3.rs\n\nextern crate crateresolve;\n//~^ ERROR multiple candidates for `rlib` dependency `crateresolve` found\n\nfn main() {}\n```\n\nThis error can occur in several different cases -- for example, when using\n`extern crate` or passing `--extern` options without crate paths. It can also be\ncaused by caching issues with the build directory, in which case `cargo clean`\nmay help.\n\nIn the above example, there are three different library files, all of which\ndefine the same crate name. Without providing a full path, there is no way for\nthe compiler to know which crate it should use.\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_fn.rs","byte_start":2,"byte_end":9,"line_start":1,"line_end":1,"column_start":3,"column_end":10,"is_primary":true,"text":[{"text":"#[you_can::turn_off_the_borrow_checker]","highlight_start":3,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"candidate #2: /opt/rustwide/target/debug/libyou_can.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0464]: multiple candidates for `rlib` dependency `you_can` found\n --> tests/unstable-pass/on_fn.rs:1:3\n  |\n1 | #[you_can::turn_off_the_borrow_checker]\n  |   ^^^^^^^\n  |\n  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib\n  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot borrow `owned` as mutable more than once at a time","code":{"code":"E0499","explanation":"A variable was borrowed as mutable more than once.\n\nErroneous code example:\n\n```compile_fail,E0499\nlet mut i = 0;\nlet mut x = &mut i;\nlet mut a = &mut i;\nx;\n// error: cannot borrow `i` as mutable more than once at a time\n```\n\nPlease note that in Rust, you can either have many immutable references, or one\nmutable reference. For more details you may want to read the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n\nExample:\n\n```\nlet mut i = 0;\nlet mut x = &mut i; // ok!\n\n// or:\nlet mut i = 0;\nlet a = &i; // ok!\nlet b = &i; // still ok!\nlet c = &i; // still ok!\nb;\na;\n```\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_fn.rs","byte_start":139,"byte_end":144,"line_start":6,"line_end":6,"column_start":22,"column_end":27,"is_primary":false,"text":[{"text":"    let mut_1 = &mut owned[0];","highlight_start":22,"highlight_end":27}],"label":"first mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_fn.rs","byte_start":170,"byte_end":175,"line_start":7,"line_end":7,"column_start":22,"column_end":27,"is_primary":true,"text":[{"text":"    let mut_2 = &mut owned[1];","highlight_start":22,"highlight_end":27}],"label":"second mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_fn.rs","byte_start":240,"byte_end":246,"line_start":11,"line_end":11,"column_start":21,"column_end":27,"is_primary":false,"text":[{"text":"    let undefined = *mut_1 + *mut_2;","highlight_start":21,"highlight_end":27}],"label":"first borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0499]: cannot borrow `owned` as mutable more than once at a time\n  --> tests/unstable-pass/on_fn.rs:7:22\n   |\n6  |     let mut_1 = &mut owned[0];\n   |                      ----- first mutable borrow occurs here\n7  |     let mut_2 = &mut owned[1];\n   |                      ^^^^^ second mutable borrow occurs here\n...\n11 |     let undefined = *mut_1 + *mut_2;\n   |                     ------ first borrow later used here\n   |\n   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot move out of `owned` because it is borrowed","code":{"code":"E0505","explanation":"A value was moved out while it was still borrowed.\n\nErroneous code example:\n\n```compile_fail,E0505\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let _ref_to_val: &Value = &x;\n    eat(x);\n    borrow(_ref_to_val);\n}\n```\n\nHere, the function `eat` takes ownership of `x`. However,\n`x` cannot be moved because the borrow to `_ref_to_val`\nneeds to last till the function `borrow`.\nTo fix that you can do a few different things:\n\n* Try to avoid moving the variable.\n* Release borrow before move.\n* Implement the `Copy` trait on the type.\n\nExamples:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: &Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    eat(&x); // pass by reference, if it's possible\n    borrow(ref_to_val);\n}\n```\n\nOr:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    borrow(ref_to_val);\n    // ref_to_val is no longer used.\n    eat(x);\n}\n```\n\nOr:\n\n```\n#[derive(Clone, Copy)] // implement Copy trait\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let ref_to_val: &Value = &x;\n    eat(x); // it will be copied here.\n    borrow(ref_to_val);\n}\n```\n\nFor more information on Rust's ownership system, take a look at the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_fn.rs","byte_start":212,"byte_end":217,"line_start":10,"line_end":10,"column_start":10,"column_end":15,"is_primary":true,"text":[{"text":"    drop(owned);","highlight_start":10,"highlight_end":15}],"label":"move out of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_fn.rs","byte_start":139,"byte_end":144,"line_start":6,"line_end":6,"column_start":22,"column_end":27,"is_primary":false,"text":[{"text":"    let mut_1 = &mut owned[0];","highlight_start":22,"highlight_end":27}],"label":"borrow of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_fn.rs","byte_start":60,"byte_end":69,"line_start":3,"line_end":3,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"    let mut owned = vec![1, 32];","highlight_start":9,"highlight_end":18}],"label":"binding `owned` declared here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_fn.rs","byte_start":240,"byte_end":246,"line_start":11,"line_end":11,"column_start":21,"column_end":27,"is_primary":false,"text":[{"text":"    let undefined = *mut_1 + *mut_2;","highlight_start":21,"highlight_end":27}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider cloning the value if the performance cost is acceptable","code":null,"level":"help","spans":[{"file_name":"tests/unstable-pass/on_fn.rs","byte_start":144,"byte_end":144,"line_start":6,"line_end":6,"column_start":27,"column_end":27,"is_primary":true,"text":[{"text":"    let mut_1 = &mut owned[0];","highlight_start":27,"highlight_end":27}],"label":null,"suggested_replacement":".clone()","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error[E0505]: cannot move out of `owned` because it is borrowed\n  --> tests/unstable-pass/on_fn.rs:10:10\n   |\n3  |     let mut owned = vec![1, 32];\n   |         --------- binding `owned` declared here\n...\n6  |     let mut_1 = &mut owned[0];\n   |                      ----- borrow of `owned` occurs here\n...\n10 |     drop(owned);\n   |          ^^^^^ move out of `owned` occurs here\n11 |     let undefined = *mut_1 + *mut_2;\n   |                     ------ borrow later used here\n   |\nhelp: consider cloning the value if the performance cost is acceptable\n   |\n6  |     let mut_1 = &mut owned.clone()[0];\n   |                           ++++++++\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"aborting due to 3 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 3 previous errors\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0464, E0499, E0505.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"Some errors have detailed explanations: E0464, E0499, E0505.\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0464`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"For more information about an error, try `rustc --explain E0464`.\n"}
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] diff of stderr:
[INFO] [stdout] 
[INFO] [stdout] -warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout] - --> $DIR/on_fn_empty.rs:1:1
[INFO] [stdout] +error[E0464]: multiple candidates for `rlib` dependency `you_can` found
[INFO] [stdout] + --> $DIR/on_fn_empty.rs:1:3
[INFO] [stdout]    |
[INFO] [stdout]  1 | #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout] -  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] +  |   ^^^^^^^
[INFO] [stdout] +  |
[INFO] [stdout] +  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib
[INFO] [stdout] +  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib
[INFO] [stdout]  
[INFO] [stdout] -warning: 1 warning emitted
[INFO] [stdout] +error: aborting due to 1 previous error
[INFO] [stdout]  
[INFO] [stdout] +For more information about this error, try `rustc --explain E0464`.
[INFO] [stdout]  
[INFO] [stdout] 
[INFO] [stdout] The actual stderr differed from the expected stderr.
[INFO] [stdout] Actual stderr saved to /tmp/on_fn_empty.stage-id.stderr
[INFO] [stdout] To update references, rerun the tests and pass the `--bless` flag
[INFO] [stdout] To only update this specific test, also pass `--test-args on_fn_empty.rs`
[INFO] [stdout] 
[INFO] [stdout] error: 1 errors occurred comparing output.
[INFO] [stdout] status: exit status: 1
[INFO] [stdout] command: "rustc" "tests/unstable-pass/on_fn_empty.rs" "-L" "/tmp" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-C" "prefer-dynamic" "-o" "/tmp/on_fn_empty.stage-id" "-A" "unused" "--extern" "you_can" "--extern" "unbounded" "-L" "target/debug/deps" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/target/debug" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib" "--edition=2021" "-L" "/tmp/on_fn_empty.stage-id.aux"
[INFO] [stdout] stdout:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] stderr:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] {"$message_type":"diagnostic","message":"multiple candidates for `rlib` dependency `you_can` found","code":{"code":"E0464","explanation":"The compiler found multiple library files with the requested crate name.\n\n```compile_fail\n// aux-build:crateresolve-1.rs\n// aux-build:crateresolve-2.rs\n// aux-build:crateresolve-3.rs\n\nextern crate crateresolve;\n//~^ ERROR multiple candidates for `rlib` dependency `crateresolve` found\n\nfn main() {}\n```\n\nThis error can occur in several different cases -- for example, when using\n`extern crate` or passing `--extern` options without crate paths. It can also be\ncaused by caching issues with the build directory, in which case `cargo clean`\nmay help.\n\nIn the above example, there are three different library files, all of which\ndefine the same crate name. Without providing a full path, there is no way for\nthe compiler to know which crate it should use.\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_fn_empty.rs","byte_start":2,"byte_end":9,"line_start":1,"line_end":1,"column_start":3,"column_end":10,"is_primary":true,"text":[{"text":"#[you_can::turn_off_the_borrow_checker]","highlight_start":3,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"candidate #2: /opt/rustwide/target/debug/libyou_can.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0464]: multiple candidates for `rlib` dependency `you_can` found\n --> tests/unstable-pass/on_fn_empty.rs:1:3\n  |\n1 | #[you_can::turn_off_the_borrow_checker]\n  |   ^^^^^^^\n  |\n  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib\n  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"aborting due to 1 previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"For more information about this error, try `rustc --explain E0464`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0464`.\n"}
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] diff of stderr:
[INFO] [stdout] 
[INFO] [stdout] -warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout] - --> $DIR/on_mod.rs:1:1
[INFO] [stdout] +error[E0464]: multiple candidates for `rlib` dependency `you_can` found
[INFO] [stdout] + --> $DIR/on_mod.rs:1:3
[INFO] [stdout]    |
[INFO] [stdout]  1 | #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout] -  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] -
[INFO] [stdout] -warning: the borrow checker is suppressed for these references.
[INFO] [stdout] - --> $DIR/on_mod.rs:7:21
[INFO] [stdout] +  |   ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] -7 |         let mut_1 = &mut owned[0];
[INFO] [stdout] -  |                     ^^^^^^^^^^^^^
[INFO] [stdout] -8 |         let mut_2 = &mut owned[1];
[INFO] [stdout] -  |                     ^^^^^^^^^^^^^
[INFO] [stdout] +  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib
[INFO] [stdout] +  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib
[INFO] [stdout]  
[INFO] [stdout] -warning: 2 warnings emitted
[INFO] [stdout] +error[E0499]: cannot borrow `owned` as mutable more than once at a time
[INFO] [stdout] +  --> $DIR/on_mod.rs:8:26
[INFO] [stdout] +   |
[INFO] [stdout] +7  |         let mut_1 = &mut owned[0];
[INFO] [stdout] +   |                          ----- first mutable borrow occurs here
[INFO] [stdout] +8  |         let mut_2 = &mut owned[1];
[INFO] [stdout] +   |                          ^^^^^ second mutable borrow occurs here
[INFO] [stdout] +...
[INFO] [stdout] +12 |         let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                         ------ first borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices
[INFO] [stdout]  
[INFO] [stdout] +error[E0505]: cannot move out of `owned` because it is borrowed
[INFO] [stdout] +  --> $DIR/on_mod.rs:11:14
[INFO] [stdout] +   |
[INFO] [stdout] +4  |         let mut owned = vec![1, 32];
[INFO] [stdout] +   |             --------- binding `owned` declared here
[INFO] [stdout] +...
[INFO] [stdout] +7  |         let mut_1 = &mut owned[0];
[INFO] [stdout] +   |                          ----- borrow of `owned` occurs here
[INFO] [stdout] +...
[INFO] [stdout] +11 |         drop(owned);
[INFO] [stdout] +   |              ^^^^^ move out of `owned` occurs here
[INFO] [stdout] +12 |         let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                         ------ borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout] +   |
[INFO] [stdout] +7  |         let mut_1 = &mut owned.clone()[0];
[INFO] [stdout] +   |                               ++++++++
[INFO] [stdout] +
[INFO] [stdout] +error: aborting due to 3 previous errors
[INFO] [stdout] +
[INFO] [stdout] +Some errors have detailed explanations: E0464, E0499, E0505.
[INFO] [stdout] +For more information about an error, try `rustc --explain E0464`.
[INFO] [stdout]  
[INFO] [stdout] 
[INFO] [stdout] The actual stderr differed from the expected stderr.
[INFO] [stdout] Actual stderr saved to /tmp/on_mod.stage-id.stderr
[INFO] [stdout] To update references, rerun the tests and pass the `--bless` flag
[INFO] [stdout] To only update this specific test, also pass `--test-args on_mod.rs`
[INFO] [stdout] 
[INFO] [stdout] error: 1 errors occurred comparing output.
[INFO] [stdout] status: exit status: 1
[INFO] [stdout] command: "rustc" "tests/unstable-pass/on_mod.rs" "-L" "/tmp" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-C" "prefer-dynamic" "-o" "/tmp/on_mod.stage-id" "-A" "unused" "--extern" "you_can" "--extern" "unbounded" "-L" "target/debug/deps" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/target/debug" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib" "--edition=2021" "-L" "/tmp/on_mod.stage-id.aux"
[INFO] [stdout] stdout:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] stderr:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] {"$message_type":"diagnostic","message":"multiple candidates for `rlib` dependency `you_can` found","code":{"code":"E0464","explanation":"The compiler found multiple library files with the requested crate name.\n\n```compile_fail\n// aux-build:crateresolve-1.rs\n// aux-build:crateresolve-2.rs\n// aux-build:crateresolve-3.rs\n\nextern crate crateresolve;\n//~^ ERROR multiple candidates for `rlib` dependency `crateresolve` found\n\nfn main() {}\n```\n\nThis error can occur in several different cases -- for example, when using\n`extern crate` or passing `--extern` options without crate paths. It can also be\ncaused by caching issues with the build directory, in which case `cargo clean`\nmay help.\n\nIn the above example, there are three different library files, all of which\ndefine the same crate name. Without providing a full path, there is no way for\nthe compiler to know which crate it should use.\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_mod.rs","byte_start":2,"byte_end":9,"line_start":1,"line_end":1,"column_start":3,"column_end":10,"is_primary":true,"text":[{"text":"#[you_can::turn_off_the_borrow_checker]","highlight_start":3,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"candidate #2: /opt/rustwide/target/debug/libyou_can.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0464]: multiple candidates for `rlib` dependency `you_can` found\n --> tests/unstable-pass/on_mod.rs:1:3\n  |\n1 | #[you_can::turn_off_the_borrow_checker]\n  |   ^^^^^^^\n  |\n  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib\n  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot borrow `owned` as mutable more than once at a time","code":{"code":"E0499","explanation":"A variable was borrowed as mutable more than once.\n\nErroneous code example:\n\n```compile_fail,E0499\nlet mut i = 0;\nlet mut x = &mut i;\nlet mut a = &mut i;\nx;\n// error: cannot borrow `i` as mutable more than once at a time\n```\n\nPlease note that in Rust, you can either have many immutable references, or one\nmutable reference. For more details you may want to read the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n\nExample:\n\n```\nlet mut i = 0;\nlet mut x = &mut i; // ok!\n\n// or:\nlet mut i = 0;\nlet a = &i; // ok!\nlet b = &i; // still ok!\nlet c = &i; // still ok!\nb;\na;\n```\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_mod.rs","byte_start":171,"byte_end":176,"line_start":7,"line_end":7,"column_start":26,"column_end":31,"is_primary":false,"text":[{"text":"        let mut_1 = &mut owned[0];","highlight_start":26,"highlight_end":31}],"label":"first mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_mod.rs","byte_start":206,"byte_end":211,"line_start":8,"line_end":8,"column_start":26,"column_end":31,"is_primary":true,"text":[{"text":"        let mut_2 = &mut owned[1];","highlight_start":26,"highlight_end":31}],"label":"second mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_mod.rs","byte_start":288,"byte_end":294,"line_start":12,"line_end":12,"column_start":25,"column_end":31,"is_primary":false,"text":[{"text":"        let undefined = *mut_1 + *mut_2;","highlight_start":25,"highlight_end":31}],"label":"first borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0499]: cannot borrow `owned` as mutable more than once at a time\n  --> tests/unstable-pass/on_mod.rs:8:26\n   |\n7  |         let mut_1 = &mut owned[0];\n   |                          ----- first mutable borrow occurs here\n8  |         let mut_2 = &mut owned[1];\n   |                          ^^^^^ second mutable borrow occurs here\n...\n12 |         let undefined = *mut_1 + *mut_2;\n   |                         ------ first borrow later used here\n   |\n   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot move out of `owned` because it is borrowed","code":{"code":"E0505","explanation":"A value was moved out while it was still borrowed.\n\nErroneous code example:\n\n```compile_fail,E0505\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let _ref_to_val: &Value = &x;\n    eat(x);\n    borrow(_ref_to_val);\n}\n```\n\nHere, the function `eat` takes ownership of `x`. However,\n`x` cannot be moved because the borrow to `_ref_to_val`\nneeds to last till the function `borrow`.\nTo fix that you can do a few different things:\n\n* Try to avoid moving the variable.\n* Release borrow before move.\n* Implement the `Copy` trait on the type.\n\nExamples:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: &Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    eat(&x); // pass by reference, if it's possible\n    borrow(ref_to_val);\n}\n```\n\nOr:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    borrow(ref_to_val);\n    // ref_to_val is no longer used.\n    eat(x);\n}\n```\n\nOr:\n\n```\n#[derive(Clone, Copy)] // implement Copy trait\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let ref_to_val: &Value = &x;\n    eat(x); // it will be copied here.\n    borrow(ref_to_val);\n}\n```\n\nFor more information on Rust's ownership system, take a look at the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_mod.rs","byte_start":256,"byte_end":261,"line_start":11,"line_end":11,"column_start":14,"column_end":19,"is_primary":true,"text":[{"text":"        drop(owned);","highlight_start":14,"highlight_end":19}],"label":"move out of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_mod.rs","byte_start":171,"byte_end":176,"line_start":7,"line_end":7,"column_start":26,"column_end":31,"is_primary":false,"text":[{"text":"        let mut_1 = &mut owned[0];","highlight_start":26,"highlight_end":31}],"label":"borrow of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_mod.rs","byte_start":84,"byte_end":93,"line_start":4,"line_end":4,"column_start":13,"column_end":22,"is_primary":false,"text":[{"text":"        let mut owned = vec![1, 32];","highlight_start":13,"highlight_end":22}],"label":"binding `owned` declared here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_mod.rs","byte_start":288,"byte_end":294,"line_start":12,"line_end":12,"column_start":25,"column_end":31,"is_primary":false,"text":[{"text":"        let undefined = *mut_1 + *mut_2;","highlight_start":25,"highlight_end":31}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider cloning the value if the performance cost is acceptable","code":null,"level":"help","spans":[{"file_name":"tests/unstable-pass/on_mod.rs","byte_start":176,"byte_end":176,"line_start":7,"line_end":7,"column_start":31,"column_end":31,"is_primary":true,"text":[{"text":"        let mut_1 = &mut owned[0];","highlight_start":31,"highlight_end":31}],"label":null,"suggested_replacement":".clone()","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error[E0505]: cannot move out of `owned` because it is borrowed\n  --> tests/unstable-pass/on_mod.rs:11:14\n   |\n4  |         let mut owned = vec![1, 32];\n   |             --------- binding `owned` declared here\n...\n7  |         let mut_1 = &mut owned[0];\n   |                          ----- borrow of `owned` occurs here\n...\n11 |         drop(owned);\n   |              ^^^^^ move out of `owned` occurs here\n12 |         let undefined = *mut_1 + *mut_2;\n   |                         ------ borrow later used here\n   |\nhelp: consider cloning the value if the performance cost is acceptable\n   |\n7  |         let mut_1 = &mut owned.clone()[0];\n   |                               ++++++++\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"aborting due to 3 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 3 previous errors\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0464, E0499, E0505.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"Some errors have detailed explanations: E0464, E0499, E0505.\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0464`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"For more information about an error, try `rustc --explain E0464`.\n"}
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] diff of stderr:
[INFO] [stdout] 
[INFO] [stdout] -warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout] - --> $DIR/on_statement.rs:6:5
[INFO] [stdout] +error[E0464]: multiple candidates for `rlib` dependency `you_can` found
[INFO] [stdout] + --> $DIR/on_statement.rs:6:7
[INFO] [stdout]    |
[INFO] [stdout]  6 |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout] -  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] +  |       ^^^^^^^
[INFO] [stdout] +  |
[INFO] [stdout] +  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib
[INFO] [stdout] +  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib
[INFO] [stdout]  
[INFO] [stdout] -warning: this suppresses the borrow checker in an unsafe, unsound, and unstable way that produces undefined behaviour. this is not suitable for any purpose beyond educational experimentation.
[INFO] [stdout] - --> $DIR/on_statement.rs:8:5
[INFO] [stdout] +error[E0464]: multiple candidates for `rlib` dependency `you_can` found
[INFO] [stdout] + --> $DIR/on_statement.rs:8:7
[INFO] [stdout]    |
[INFO] [stdout]  8 |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout] -  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] +  |       ^^^^^^^
[INFO] [stdout] +  |
[INFO] [stdout] +  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib
[INFO] [stdout] +  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib
[INFO] [stdout]  
[INFO] [stdout] -warning: 2 warnings emitted
[INFO] [stdout] +error[E0499]: cannot borrow `owned` as mutable more than once at a time
[INFO] [stdout] +  --> $DIR/on_statement.rs:9:22
[INFO] [stdout] +   |
[INFO] [stdout] +7  |     let mut_1 = &mut owned[0];
[INFO] [stdout] +   |                      ----- first mutable borrow occurs here
[INFO] [stdout] +8  |     #[you_can::turn_off_the_borrow_checker]
[INFO] [stdout] +9  |     let mut_2 = &mut owned[1];
[INFO] [stdout] +   |                      ^^^^^ second mutable borrow occurs here
[INFO] [stdout] +...
[INFO] [stdout] +13 |     let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                     ------ first borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices
[INFO] [stdout]  
[INFO] [stdout] +error[E0505]: cannot move out of `owned` because it is borrowed
[INFO] [stdout] +  --> $DIR/on_statement.rs:12:10
[INFO] [stdout] +   |
[INFO] [stdout] +4  |     let mut owned = vec![1, 32];
[INFO] [stdout] +   |         --------- binding `owned` declared here
[INFO] [stdout] +...
[INFO] [stdout] +7  |     let mut_1 = &mut owned[0];
[INFO] [stdout] +   |                      ----- borrow of `owned` occurs here
[INFO] [stdout] +...
[INFO] [stdout] +12 |     drop(owned);
[INFO] [stdout] +   |          ^^^^^ move out of `owned` occurs here
[INFO] [stdout] +13 |     let undefined = *mut_1 + *mut_2;
[INFO] [stdout] +   |                     ------ borrow later used here
[INFO] [stdout] +   |
[INFO] [stdout] +help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout] +   |
[INFO] [stdout] +7  |     let mut_1 = &mut owned.clone()[0];
[INFO] [stdout] +   |                           ++++++++
[INFO] [stdout] +
[INFO] [stdout] +error: aborting due to 4 previous errors
[INFO] [stdout] +
[INFO] [stdout] +Some errors have detailed explanations: E0464, E0499, E0505.
[INFO] [stdout] +For more information about an error, try `rustc --explain E0464`.
[INFO] [stdout]  
[INFO] [stdout] 
[INFO] [stdout] The actual stderr differed from the expected stderr.
[INFO] [stdout] Actual stderr saved to /tmp/on_statement.stage-id.stderr
[INFO] [stdout] To update references, rerun the tests and pass the `--bless` flag
[INFO] [stdout] To only update this specific test, also pass `--test-args on_statement.rs`
[INFO] [stdout] 
[INFO] [stdout] error: 1 errors occurred comparing output.
[INFO] [stdout] status: exit status: 1
[INFO] [stdout] command: "rustc" "tests/unstable-pass/on_statement.rs" "-L" "/tmp" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-C" "prefer-dynamic" "-o" "/tmp/on_statement.stage-id" "-A" "unused" "--extern" "you_can" "--extern" "unbounded" "-L" "target/debug/deps" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/target/debug" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/opt/rustwide/rustup-home/toolchains/1871252fc8bb672d40787e67404e6eaae7059369/lib" "--edition=2021" "-L" "/tmp/on_statement.stage-id.aux"
[INFO] [stdout] stdout:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] stderr:
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] {"$message_type":"diagnostic","message":"multiple candidates for `rlib` dependency `you_can` found","code":{"code":"E0464","explanation":"The compiler found multiple library files with the requested crate name.\n\n```compile_fail\n// aux-build:crateresolve-1.rs\n// aux-build:crateresolve-2.rs\n// aux-build:crateresolve-3.rs\n\nextern crate crateresolve;\n//~^ ERROR multiple candidates for `rlib` dependency `crateresolve` found\n\nfn main() {}\n```\n\nThis error can occur in several different cases -- for example, when using\n`extern crate` or passing `--extern` options without crate paths. It can also be\ncaused by caching issues with the build directory, in which case `cargo clean`\nmay help.\n\nIn the above example, there are three different library files, all of which\ndefine the same crate name. Without providing a full path, there is no way for\nthe compiler to know which crate it should use.\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":142,"byte_end":149,"line_start":6,"line_end":6,"column_start":7,"column_end":14,"is_primary":true,"text":[{"text":"    #[you_can::turn_off_the_borrow_checker]","highlight_start":7,"highlight_end":14}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"candidate #2: /opt/rustwide/target/debug/libyou_can.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0464]: multiple candidates for `rlib` dependency `you_can` found\n --> tests/unstable-pass/on_statement.rs:6:7\n  |\n6 |     #[you_can::turn_off_the_borrow_checker]\n  |       ^^^^^^^\n  |\n  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib\n  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"multiple candidates for `rlib` dependency `you_can` found","code":{"code":"E0464","explanation":"The compiler found multiple library files with the requested crate name.\n\n```compile_fail\n// aux-build:crateresolve-1.rs\n// aux-build:crateresolve-2.rs\n// aux-build:crateresolve-3.rs\n\nextern crate crateresolve;\n//~^ ERROR multiple candidates for `rlib` dependency `crateresolve` found\n\nfn main() {}\n```\n\nThis error can occur in several different cases -- for example, when using\n`extern crate` or passing `--extern` options without crate paths. It can also be\ncaused by caching issues with the build directory, in which case `cargo clean`\nmay help.\n\nIn the above example, there are three different library files, all of which\ndefine the same crate name. Without providing a full path, there is no way for\nthe compiler to know which crate it should use.\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":217,"byte_end":224,"line_start":8,"line_end":8,"column_start":7,"column_end":14,"is_primary":true,"text":[{"text":"    #[you_can::turn_off_the_borrow_checker]","highlight_start":7,"highlight_end":14}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"candidate #2: /opt/rustwide/target/debug/libyou_can.rlib","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0464]: multiple candidates for `rlib` dependency `you_can` found\n --> tests/unstable-pass/on_statement.rs:8:7\n  |\n8 |     #[you_can::turn_off_the_borrow_checker]\n  |       ^^^^^^^\n  |\n  = note: candidate #1: /opt/rustwide/target/debug/deps/libyou_can-da562efb35b91f9d.rlib\n  = note: candidate #2: /opt/rustwide/target/debug/libyou_can.rlib\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot borrow `owned` as mutable more than once at a time","code":{"code":"E0499","explanation":"A variable was borrowed as mutable more than once.\n\nErroneous code example:\n\n```compile_fail,E0499\nlet mut i = 0;\nlet mut x = &mut i;\nlet mut a = &mut i;\nx;\n// error: cannot borrow `i` as mutable more than once at a time\n```\n\nPlease note that in Rust, you can either have many immutable references, or one\nmutable reference. For more details you may want to read the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n\nExample:\n\n```\nlet mut i = 0;\nlet mut x = &mut i; // ok!\n\n// or:\nlet mut i = 0;\nlet a = &i; // ok!\nlet b = &i; // still ok!\nlet c = &i; // still ok!\nb;\na;\n```\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":201,"byte_end":206,"line_start":7,"line_end":7,"column_start":22,"column_end":27,"is_primary":false,"text":[{"text":"    let mut_1 = &mut owned[0];","highlight_start":22,"highlight_end":27}],"label":"first mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":276,"byte_end":281,"line_start":9,"line_end":9,"column_start":22,"column_end":27,"is_primary":true,"text":[{"text":"    let mut_2 = &mut owned[1];","highlight_start":22,"highlight_end":27}],"label":"second mutable borrow occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":346,"byte_end":352,"line_start":13,"line_end":13,"column_start":21,"column_end":27,"is_primary":false,"text":[{"text":"    let undefined = *mut_1 + *mut_2;","highlight_start":21,"highlight_end":27}],"label":"first borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0499]: cannot borrow `owned` as mutable more than once at a time\n  --> tests/unstable-pass/on_statement.rs:9:22\n   |\n7  |     let mut_1 = &mut owned[0];\n   |                      ----- first mutable borrow occurs here\n8  |     #[you_can::turn_off_the_borrow_checker]\n9  |     let mut_2 = &mut owned[1];\n   |                      ^^^^^ second mutable borrow occurs here\n...\n13 |     let undefined = *mut_1 + *mut_2;\n   |                     ------ first borrow later used here\n   |\n   = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"cannot move out of `owned` because it is borrowed","code":{"code":"E0505","explanation":"A value was moved out while it was still borrowed.\n\nErroneous code example:\n\n```compile_fail,E0505\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let _ref_to_val: &Value = &x;\n    eat(x);\n    borrow(_ref_to_val);\n}\n```\n\nHere, the function `eat` takes ownership of `x`. However,\n`x` cannot be moved because the borrow to `_ref_to_val`\nneeds to last till the function `borrow`.\nTo fix that you can do a few different things:\n\n* Try to avoid moving the variable.\n* Release borrow before move.\n* Implement the `Copy` trait on the type.\n\nExamples:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: &Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    eat(&x); // pass by reference, if it's possible\n    borrow(ref_to_val);\n}\n```\n\nOr:\n\n```\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n\n    let ref_to_val: &Value = &x;\n    borrow(ref_to_val);\n    // ref_to_val is no longer used.\n    eat(x);\n}\n```\n\nOr:\n\n```\n#[derive(Clone, Copy)] // implement Copy trait\nstruct Value {}\n\nfn borrow(val: &Value) {}\n\nfn eat(val: Value) {}\n\nfn main() {\n    let x = Value{};\n    let ref_to_val: &Value = &x;\n    eat(x); // it will be copied here.\n    borrow(ref_to_val);\n}\n```\n\nFor more information on Rust's ownership system, take a look at the\n[References & Borrowing][references-and-borrowing] section of the Book.\n\n[references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html\n"},"level":"error","spans":[{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":318,"byte_end":323,"line_start":12,"line_end":12,"column_start":10,"column_end":15,"is_primary":true,"text":[{"text":"    drop(owned);","highlight_start":10,"highlight_end":15}],"label":"move out of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":201,"byte_end":206,"line_start":7,"line_end":7,"column_start":22,"column_end":27,"is_primary":false,"text":[{"text":"    let mut_1 = &mut owned[0];","highlight_start":22,"highlight_end":27}],"label":"borrow of `owned` occurs here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":79,"byte_end":88,"line_start":4,"line_end":4,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"    let mut owned = vec![1, 32];","highlight_start":9,"highlight_end":18}],"label":"binding `owned` declared here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":346,"byte_end":352,"line_start":13,"line_end":13,"column_start":21,"column_end":27,"is_primary":false,"text":[{"text":"    let undefined = *mut_1 + *mut_2;","highlight_start":21,"highlight_end":27}],"label":"borrow later used here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider cloning the value if the performance cost is acceptable","code":null,"level":"help","spans":[{"file_name":"tests/unstable-pass/on_statement.rs","byte_start":206,"byte_end":206,"line_start":7,"line_end":7,"column_start":27,"column_end":27,"is_primary":true,"text":[{"text":"    let mut_1 = &mut owned[0];","highlight_start":27,"highlight_end":27}],"label":null,"suggested_replacement":".clone()","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error[E0505]: cannot move out of `owned` because it is borrowed\n  --> tests/unstable-pass/on_statement.rs:12:10\n   |\n4  |     let mut owned = vec![1, 32];\n   |         --------- binding `owned` declared here\n...\n7  |     let mut_1 = &mut owned[0];\n   |                      ----- borrow of `owned` occurs here\n...\n12 |     drop(owned);\n   |          ^^^^^ move out of `owned` occurs here\n13 |     let undefined = *mut_1 + *mut_2;\n   |                     ------ borrow later used here\n   |\nhelp: consider cloning the value if the performance cost is acceptable\n   |\n7  |     let mut_1 = &mut owned.clone()[0];\n   |                           ++++++++\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"aborting due to 4 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 4 previous errors\n\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0464, E0499, E0505.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"Some errors have detailed explanations: E0464, E0499, E0505.\n"}
[INFO] [stdout] {"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0464`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"For more information about an error, try `rustc --explain E0464`.\n"}
[INFO] [stdout] 
[INFO] [stdout] ------------------------------------------
[INFO] [stdout] 
[INFO] [stdout] thread 'run_pass' panicked at /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/compiletest_rs-0.8.0/src/lib.rs:111:22:
[INFO] [stdout] Some tests failed
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x562520926915 - std::backtrace_rs::backtrace::libunwind::trace::h59d96bdb08384354
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
[INFO] [stdout]    1:     0x562520926915 - std::backtrace_rs::backtrace::trace_unsynchronized::h9cf5becacfc93fba
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x562520926915 - std::sys_common::backtrace::_print_fmt::h10b76d10405dbd48
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x562520926915 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6ed9e62a156d84e4
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x56252095041b - core::fmt::rt::Argument::fmt::h645c680983f03c9f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/rt.rs:165:63
[INFO] [stdout]    5:     0x56252095041b - core::fmt::write::h8bcd80919a02be29
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/mod.rs:1169:21
[INFO] [stdout]    6:     0x56252092353f - std::io::Write::write_fmt::h8d0c47c662cad79c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/io/mod.rs:1835:15
[INFO] [stdout]    7:     0x5625209266ee - std::sys_common::backtrace::_print::h6306f131a28d62b0
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x5625209266ee - std::sys_common::backtrace::print::h7079288e0a26dfcc
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x562520928799 - std::panicking::default_hook::{{closure}}::hb063ecec81a736ba
[INFO] [stdout]   10:     0x56252092845e - std::panicking::default_hook::hd56ee406bf547b5c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:295:9
[INFO] [stdout]   11:     0x5625205e7c8a - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::he5eacdef44c8728f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   12:     0x5625205e7c8a - test::test_main::{{closure}}::h0ec9aed229e79095
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x562520928d9b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcbd0d80e1ad4e4f9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   14:     0x562520928d9b - std::panicking::rust_panic_with_hook::h624aa3ca42ebb8f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:799:13
[INFO] [stdout]   15:     0x5625206ceaf8 - std::panicking::begin_panic::{{closure}}::h3ff6ee2d664305b1
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:694:9
[INFO] [stdout]   16:     0x5625206cea5a - std::sys_common::backtrace::__rust_end_short_backtrace::h3b10997f86d40817
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x5625206cea97 - std::panicking::begin_panic::h4636108395ff8f73
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:693:12
[INFO] [stdout]   18:     0x562520622fe4 - compiletest_rs::run_tests::h1ebd7f14b2bee33c
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/compiletest_rs-0.8.0/src/lib.rs:111:22
[INFO] [stdout]   19:     0x56252059af0a - compile_tests::run_pass::h0065037c0593a2cd
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/compile_tests.rs:28:5
[INFO] [stdout]   20:     0x56252059a6c7 - compile_tests::run_pass::{{closure}}::h69df984bb2caa963
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/compile_tests.rs:4:14
[INFO] [stdout]   21:     0x562520599ac6 - core::ops::function::FnOnce::call_once::h6e5ec5ca9f25fedc
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5625205ec66b - core::ops::function::FnOnce::call_once::h2e43a8f6f3d94b99
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5625205ec66b - test::__rust_begin_short_backtrace::h214c9f2d2d3fee90
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:625:18
[INFO] [stdout]   24:     0x5625205ebd71 - test::run_test_in_process::{{closure}}::h510b7ba7990692a5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:60
[INFO] [stdout]   25:     0x5625205ebd71 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4157186197a93871
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   26:     0x5625205ebd71 - std::panicking::try::do_call::h1bf2463bccd4b28c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   27:     0x5625205ebd71 - std::panicking::try::hd6d4808c9fab4fa5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   28:     0x5625205ebd71 - std::panic::catch_unwind::hd5641d97d123f9f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   29:     0x5625205ebd71 - test::run_test_in_process::hc273b71c8b878a4c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:27
[INFO] [stdout]   30:     0x5625205ebd71 - test::run_test::{{closure}}::h6838df834eb8467e
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:569:43
[INFO] [stdout]   31:     0x5625205b4734 - test::run_test::{{closure}}::h608b98ecff5665fb
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:599:41
[INFO] [stdout]   32:     0x5625205b4734 - std::sys_common::backtrace::__rust_begin_short_backtrace::hdc4182b97d1042e9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   33:     0x5625205b9162 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h571773fd21d674c8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:542:17
[INFO] [stdout]   34:     0x5625205b9162 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hdcd384cf2fa70ba3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   35:     0x5625205b9162 - std::panicking::try::do_call::h4f1a44bd81423be1
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   36:     0x5625205b9162 - std::panicking::try::h5e02afcb81dcd361
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   37:     0x5625205b9162 - std::panic::catch_unwind::h022f75775bfd8c45
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   38:     0x5625205b9162 - std::thread::Builder::spawn_unchecked_::{{closure}}::hf5a62e9e4e6df1f8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:541:30
[INFO] [stdout]   39:     0x5625205b9162 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6d56360aeb9509a7
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x56252092ecfb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7a343dc551c06baa
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   41:     0x56252092ecfb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h30b8111cbaa644f3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   42:     0x56252092ecfb - std::sys::pal::unix::thread::Thread::new::thread_start::h7404e134e61e7a11
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys/pal/unix/thread.rs:108:17
[INFO] [stdout]   43:     0x7f923c396ac3 - <unknown>
[INFO] [stdout]   44:     0x7f923c427a04 - __clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     run_pass
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test compile_tests`
[INFO] running `Command { std: "docker" "inspect" "9c4f59af8672918716ac50b6aaa3d07441c769b0172f574cf278410153104e4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9c4f59af8672918716ac50b6aaa3d07441c769b0172f574cf278410153104e4f", kill_on_drop: false }`
[INFO] [stdout] 9c4f59af8672918716ac50b6aaa3d07441c769b0172f574cf278410153104e4f
