[INFO] cloning repository https://github.com/zhangblue/rust_official_tutorial
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zhangblue/rust_official_tutorial" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhangblue%2Frust_official_tutorial", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhangblue%2Frust_official_tutorial'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a39a58e10991bddae9b569c47fb5d8bd17e6569a
[INFO] testing zhangblue/rust_official_tutorial against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhangblue%2Frust_official_tutorial" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zhangblue/rust_official_tutorial
[INFO] finished tweaking git repo https://github.com/zhangblue/rust_official_tutorial
[INFO] tweaked toml for git repo https://github.com/zhangblue/rust_official_tutorial written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zhangblue/rust_official_tutorial on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zhangblue/rust_official_tutorial 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4afa103c81d10d27c4bc08c2c8b23133acf43027c6037e682c8382761ec459b4
[INFO] running `Command { std: "docker" "start" "-a" "4afa103c81d10d27c4bc08c2c8b23133acf43027c6037e682c8382761ec459b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4afa103c81d10d27c4bc08c2c8b23133acf43027c6037e682c8382761ec459b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4afa103c81d10d27c4bc08c2c8b23133acf43027c6037e682c8382761ec459b4", kill_on_drop: false }`
[INFO] [stdout] 4afa103c81d10d27c4bc08c2c8b23133acf43027c6037e682c8382761ec459b4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 59f6976a75d3c3081a86dadba05b423bc86e85cd610d143cac7b159a86455189
[INFO] running `Command { std: "docker" "start" "-a" "59f6976a75d3c3081a86dadba05b423bc86e85cd610d143cac7b159a86455189", kill_on_drop: false }`
[INFO] [stderr]    Compiling ch16 v0.1.0 (/opt/rustwide/workdir/ch16)
[INFO] [stderr]    Compiling ch17 v0.1.0 (/opt/rustwide/workdir/ch17)
[INFO] [stderr]    Compiling ch15 v0.1.0 (/opt/rustwide/workdir/ch15)
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]   --> ch16/src/ch16_02_message_passing.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let handle = thread::spawn(move || {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list`
[INFO] [stdout]   --> ch15/src/ch15_01_box.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let list = Cons(1, Box::new(Cons(2, Box::new(Cons(3, Box::new(Nil))))));
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_list`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_thread_use_spawn` is never used
[INFO] [stdout]  --> ch16/src/ch16_01_threads.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn create_thread_use_spawn() {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_thread_use_join` is never used
[INFO] [stdout]   --> ch16/src/ch16_01_threads.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn wait_thread_use_join() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thead_ownership_movement` is never used
[INFO] [stdout]   --> ch16/src/ch16_01_threads.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn thead_ownership_movement() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_channel_and_send_single_value` is never used
[INFO] [stdout]   --> ch16/src/ch16_02_message_passing.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn create_channel_and_send_single_value() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_mutex_lock_in_single_thread` is never used
[INFO] [stdout]   --> ch16/src/ch16_03_shared_state.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn create_mutex_lock_in_single_thread() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MyBox` is never constructed
[INFO] [stdout]   --> ch15/src/ch15_02_deref.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct MyBox<T>(T);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> ch15/src/ch15_02_deref.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl<T> MyBox<T> {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 23 |     fn new(x: T) -> MyBox<T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]   --> ch15/src/ch15_04_rc.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum List {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> ch15/src/ch15_05_interior_mutability.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 54 -     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stdout] 54 +     Cons((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]  --> ch15/src/ch15_06_reference_cycles.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum List {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tail` is never used
[INFO] [stdout]   --> ch15/src/ch15_06_reference_cycles.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl List {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 15 |     /// 用于获取List中的第二个值
[INFO] [stdout] 16 |     fn tail(&self) -> Option<&RefCell<Rc<List>>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> ch15/src/ch15_06_reference_cycles.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling main v0.1.0 (/opt/rustwide/workdir/main)
[INFO] [stdout] warning: unused import: `ch16::ch16_02_message_passing`
[INFO] [stdout]  --> main/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ch16::ch16_02_message_passing;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.62s
[INFO] running `Command { std: "docker" "inspect" "59f6976a75d3c3081a86dadba05b423bc86e85cd610d143cac7b159a86455189", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59f6976a75d3c3081a86dadba05b423bc86e85cd610d143cac7b159a86455189", kill_on_drop: false }`
[INFO] [stdout] 59f6976a75d3c3081a86dadba05b423bc86e85cd610d143cac7b159a86455189
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ff8c1fb5ab3455b15193079207643b5961963c6fecfd6bb52a93192e0c448d6f
[INFO] running `Command { std: "docker" "start" "-a" "ff8c1fb5ab3455b15193079207643b5961963c6fecfd6bb52a93192e0c448d6f", kill_on_drop: false }`
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]   --> ch16/src/ch16_02_message_passing.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let handle = thread::spawn(move || {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_thread_use_spawn` is never used
[INFO] [stdout]  --> ch16/src/ch16_01_threads.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn create_thread_use_spawn() {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_thread_use_join` is never used
[INFO] [stdout]   --> ch16/src/ch16_01_threads.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn wait_thread_use_join() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thead_ownership_movement` is never used
[INFO] [stdout]   --> ch16/src/ch16_01_threads.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn thead_ownership_movement() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_channel_and_send_single_value` is never used
[INFO] [stdout]   --> ch16/src/ch16_02_message_passing.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn create_channel_and_send_single_value() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_mutex_lock_in_single_thread` is never used
[INFO] [stdout]   --> ch16/src/ch16_03_shared_state.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn create_mutex_lock_in_single_thread() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling main v0.1.0 (/opt/rustwide/workdir/main)
[INFO] [stdout] warning: unused variable: `list`
[INFO] [stdout]   --> ch15/src/ch15_01_box.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let list = Cons(1, Box::new(Cons(2, Box::new(Cons(3, Box::new(Nil))))));
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_list`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MyBox` is never constructed
[INFO] [stdout]   --> ch15/src/ch15_02_deref.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct MyBox<T>(T);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> ch15/src/ch15_02_deref.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl<T> MyBox<T> {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 23 |     fn new(x: T) -> MyBox<T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]   --> ch15/src/ch15_04_rc.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum List {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> ch15/src/ch15_05_interior_mutability.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 54 -     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stdout] 54 +     Cons((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]  --> ch15/src/ch15_06_reference_cycles.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum List {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tail` is never used
[INFO] [stdout]   --> ch15/src/ch15_06_reference_cycles.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl List {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 15 |     /// 用于获取List中的第二个值
[INFO] [stdout] 16 |     fn tail(&self) -> Option<&RefCell<Rc<List>>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> ch15/src/ch15_06_reference_cycles.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ch16 v0.1.0 (/opt/rustwide/workdir/ch16)
[INFO] [stderr]    Compiling ch15 v0.1.0 (/opt/rustwide/workdir/ch15)
[INFO] [stderr]    Compiling ch17 v0.1.0 (/opt/rustwide/workdir/ch17)
[INFO] [stdout] warning: unused import: `ch16::ch16_02_message_passing`
[INFO] [stdout]  --> main/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ch16::ch16_02_message_passing;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]   --> ch16/src/ch16_02_message_passing.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let handle = thread::spawn(move || {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list`
[INFO] [stdout]   --> ch15/src/ch15_01_box.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let list = Cons(1, Box::new(Cons(2, Box::new(Cons(3, Box::new(Nil))))));
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_list`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> ch15/src/ch15_03_drop.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let c = CustomSmartPointer {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> ch15/src/ch15_03_drop.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let d = CustomSmartPointer {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> ch15/src/ch15_04_rc.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let b = Cons(3, Rc::clone(&a));
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> ch15/src/ch15_04_rc.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let c = Cons(4, Rc::clone(&a));
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> ch15/src/ch15_04_rc.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let b = Cons(3, Rc::clone(&a));
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> ch15/src/ch15_04_rc.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |             let c = Cons(4, Rc::clone(&a));
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> ch15/src/ch15_04_rc.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Cons(i32, Rc<List>),
[INFO] [stdout]    |     ---- ^^^  ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 12 -     Cons(i32, Rc<List>),
[INFO] [stdout] 12 +     Cons((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> ch15/src/ch15_05_interior_mutability.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 54 -     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stdout] 54 +     Cons((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> ch15/src/ch15_06_reference_cycles.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout]    |     ---- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 10 -     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout] 10 +     Cons((), RefCell<Rc<List>>),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `children` are never read
[INFO] [stdout]   --> ch15/src/ch15_06_reference_cycles.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Node {
[INFO] [stdout]    |        ---- fields in this struct
[INFO] [stdout] 29 |     value: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     children: RefCell<Vec<Rc<Node>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.90s
[INFO] running `Command { std: "docker" "inspect" "ff8c1fb5ab3455b15193079207643b5961963c6fecfd6bb52a93192e0c448d6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff8c1fb5ab3455b15193079207643b5961963c6fecfd6bb52a93192e0c448d6f", kill_on_drop: false }`
[INFO] [stdout] ff8c1fb5ab3455b15193079207643b5961963c6fecfd6bb52a93192e0c448d6f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d22694558b5d39a9c965444561b80e7f081890e66b3f241c40d3516b2497eb4e
[INFO] running `Command { std: "docker" "start" "-a" "d22694558b5d39a9c965444561b80e7f081890e66b3f241c40d3516b2497eb4e", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `handle`
[INFO] [stdout] 
[INFO] [stderr]   --> ch16/src/ch16_02_message_passing.rs:26:9
[INFO] [stdout] running 14 tests
[INFO] [stderr]    |
[INFO] [stdout] test ch15_01_box::tests::test01 ... ok
[INFO] [stderr] 26 |     let handle = thread::spawn(move || {
[INFO] [stdout] test ch15_01_box::tests::test02 ... ok
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] test ch15_02_deref::tests::box_dereference ... ok
[INFO] [stderr]    |
[INFO] [stdout] test ch15_02_deref::tests::my_box_dereference ... ok
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] test ch15_02_deref::tests::normal_dereference ... ok
[INFO] [stderr] 
[INFO] [stdout] test ch15_03_drop::tests::test_drop ... ok
[INFO] [stderr] warning: function `create_thread_use_spawn` is never used
[INFO] [stdout] test ch15_03_drop::tests::test_drop_2 ... ok
[INFO] [stderr]  --> ch16/src/ch16_01_threads.rs:7:4
[INFO] [stdout] test ch15_04_rc::tests::rc_test_1 ... ok
[INFO] [stderr]   |
[INFO] [stdout] test ch15_05_interior_mutability::tests::it_sends_an_over_75_percent_warning_message ... ok
[INFO] [stderr] 7 | fn create_thread_use_spawn() {
[INFO] [stdout] test ch15_06_reference_cycles::tests::create_circular_reference ... ok
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] test ch15_05_interior_mutability::tests::test_rc_and_refcell ... ok
[INFO] [stderr]   |
[INFO] [stdout] test ch15_04_rc::tests::rc_test_2 ... ok
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] test ch15_06_reference_cycles::tests::test_weak_reference ... ok
[INFO] [stderr] 
[INFO] [stdout] test ch15_06_reference_cycles::tests::test_weak_reference_count ... ok
[INFO] [stderr] warning: function `wait_thread_use_join` is never used
[INFO] [stdout] 
[INFO] [stderr]   --> ch16/src/ch16_01_threads.rs:24:4
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]    |
[INFO] [stdout] 
[INFO] [stderr] 24 | fn wait_thread_use_join() {
[INFO] [stdout] 
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] running 6 tests
[INFO] [stderr] 
[INFO] [stderr] warning: function `thead_ownership_movement` is never used
[INFO] [stderr]   --> ch16/src/ch16_01_threads.rs:43:4
[INFO] [stderr]    |
[INFO] [stderr] 43 | fn thead_ownership_movement() {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_channel_and_send_single_value` is never used
[INFO] [stderr]   --> ch16/src/ch16_02_message_passing.rs:10:4
[INFO] [stderr]    |
[INFO] [stderr] 10 | fn create_channel_and_send_single_value() {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_mutex_lock_in_single_thread` is never used
[INFO] [stderr]   --> ch16/src/ch16_03_shared_state.rs:10:4
[INFO] [stderr]    |
[INFO] [stderr] 10 | fn create_mutex_lock_in_single_thread() {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ch16` (lib) generated 6 warnings (run `cargo fix --lib -p ch16` to apply 1 suggestion)
[INFO] [stderr] warning: unused variable: `list`
[INFO] [stderr]   --> ch15/src/ch15_01_box.rs:23:9
[INFO] [stderr]    |
[INFO] [stderr] 23 |     let list = Cons(1, Box::new(Cons(2, Box::new(Cons(3, Box::new(Nil))))));
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_list`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MyBox` is never constructed
[INFO] [stderr]   --> ch15/src/ch15_02_deref.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | struct MyBox<T>(T);
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> ch15/src/ch15_02_deref.rs:23:8
[INFO] [stderr]    |
[INFO] [stderr] 22 | impl<T> MyBox<T> {
[INFO] [stderr]    | ---------------- associated function in this implementation
[INFO] [stderr] 23 |     fn new(x: T) -> MyBox<T> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `List` is never used
[INFO] [stderr]   --> ch15/src/ch15_04_rc.rs:11:6
[INFO] [stderr]    |
[INFO] [stderr] 11 | enum List {
[INFO] [stderr]    |      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> ch15/src/ch15_05_interior_mutability.rs:54:10
[INFO] [stderr]    |
[INFO] [stderr] 54 |     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stderr]    |     ---- ^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 54 -     Cons(Rc<RefCell<i32>>, Rc<List>),
[INFO] [stderr] 54 +     Cons((), ()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: enum `List` is never used
[INFO] [stderr]  --> ch15/src/ch15_06_reference_cycles.rs:9:6
[INFO] [stderr]   |
[INFO] [stderr] 9 | enum List {
[INFO] [stderr]   |      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `tail` is never used
[INFO] [stderr]   --> ch15/src/ch15_06_reference_cycles.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl List {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 15 |     /// 用于获取List中的第二个值
[INFO] [stderr] 16 |     fn tail(&self) -> Option<&RefCell<Rc<List>>> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Node` is never constructed
[INFO] [stderr]   --> ch15/src/ch15_06_reference_cycles.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | struct Node {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ch16::ch16_02_message_passing`
[INFO] [stderr]  --> main/src/main.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use ch16::ch16_02_message_passing;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] test ch16_01_threads::tests::test_create_thread_use_spawn ... ok
[INFO] [stderr]   |
[INFO] [stdout] test ch16_01_threads::tests::test_thead_ownership_movement ... ok
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] test ch16_03_shared_state::tests::test_create_mutex_lock_in_single_thread ... ok
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]   --> ch15/src/ch15_03_drop.rs:34:13
[INFO] [stderr]    |
[INFO] [stderr] 34 |         let c = CustomSmartPointer {
[INFO] [stdout] test ch16_02_message_passing::tests::test_get_channel ... ok
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `d`
[INFO] [stderr]   --> ch15/src/ch15_03_drop.rs:37:13
[INFO] [stderr]    |
[INFO] [stderr] 37 |         let d = CustomSmartPointer {
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b`
[INFO] [stderr]   --> ch15/src/ch15_04_rc.rs:26:13
[INFO] [stderr]    |
[INFO] [stderr] 26 |         let b = Cons(3, Rc::clone(&a));
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]   --> ch15/src/ch15_04_rc.rs:27:13
[INFO] [stderr]    |
[INFO] [stderr] 27 |         let c = Cons(4, Rc::clone(&a));
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b`
[INFO] [stderr]   --> ch15/src/ch15_04_rc.rs:34:13
[INFO] [stderr]    |
[INFO] [stderr] 34 |         let b = Cons(3, Rc::clone(&a));
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]   --> ch15/src/ch15_04_rc.rs:37:17
[INFO] [stderr]    |
[INFO] [stderr] 37 |             let c = Cons(4, Rc::clone(&a));
[INFO] [stderr]    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> ch15/src/ch15_04_rc.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 |     Cons(i32, Rc<List>),
[INFO] [stderr]    |     ---- ^^^  ^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 12 -     Cons(i32, Rc<List>),
[INFO] [stderr] 12 +     Cons((), ()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> ch15/src/ch15_06_reference_cycles.rs:10:10
[INFO] [stderr]    |
[INFO] [stderr] 10 |     Cons(i32, RefCell<Rc<List>>),
[INFO] [stderr]    |     ---- ^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 10 -     Cons(i32, RefCell<Rc<List>>),
[INFO] [stderr] 10 +     Cons((), RefCell<Rc<List>>),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `value` and `children` are never read
[INFO] [stderr]   --> ch15/src/ch15_06_reference_cycles.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 28 | struct Node {
[INFO] [stderr]    |        ---- fields in this struct
[INFO] [stderr] 29 |     value: i32,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     children: RefCell<Vec<Rc<Node>>>,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `ch15` (lib) generated 8 warnings (run `cargo fix --lib -p ch15` to apply 1 suggestion)
[INFO] [stderr] warning: `main` (bin "main" test) generated 1 warning (run `cargo fix --bin "main" -p main --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `ch15` (lib test) generated 11 warnings (2 duplicates) (run `cargo fix --lib -p ch15 --tests` to apply 6 suggestions)
[INFO] [stderr] warning: `ch16` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ch15-209377e3d18e89cf)
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ch16-38b67c6769bc109b)
[INFO] [stdout] test ch16_01_threads::tests::test_wait_thread_use_join ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ch17-be6885c3c812fc58)
[INFO] [stdout] test ch16_02_message_passing::tests::test_create_channel_and_send_multiple_value ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/main-93950b7d5b494ed3)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 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]    Doc-tests ch15
[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]    Doc-tests ch16
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ch17
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 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] running `Command { std: "docker" "inspect" "d22694558b5d39a9c965444561b80e7f081890e66b3f241c40d3516b2497eb4e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d22694558b5d39a9c965444561b80e7f081890e66b3f241c40d3516b2497eb4e", kill_on_drop: false }`
[INFO] [stdout] d22694558b5d39a9c965444561b80e7f081890e66b3f241c40d3516b2497eb4e
