[INFO] cloning repository https://github.com/lingoo12138/rs-learn01
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lingoo12138/rs-learn01" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flingoo12138%2Frs-learn01", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flingoo12138%2Frs-learn01'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1695225dc66bcb29993d4566c854d3149bc3e4c0
[INFO] testing lingoo12138/rs-learn01 against 1.98.0-beta.8+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flingoo12138%2Frs-learn01" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  11% (602/5206)
Updating files:  12% (625/5206)
Updating files:  13% (677/5206)
Updating files:  14% (729/5206)
Updating files:  15% (781/5206)
Updating files:  16% (833/5206)
Updating files:  17% (886/5206)
Updating files:  18% (938/5206)
Updating files:  19% (990/5206)
Updating files:  20% (1042/5206)
Updating files:  21% (1094/5206)
Updating files:  22% (1146/5206)
Updating files:  23% (1198/5206)
Updating files:  24% (1250/5206)
Updating files:  25% (1302/5206)
Updating files:  26% (1354/5206)
Updating files:  27% (1406/5206)
Updating files:  28% (1458/5206)
Updating files:  29% (1510/5206)
Updating files:  30% (1562/5206)
Updating files:  31% (1614/5206)
Updating files:  32% (1666/5206)
Updating files:  33% (1718/5206)
Updating files:  34% (1771/5206)
Updating files:  35% (1823/5206)
Updating files:  36% (1875/5206)
Updating files:  37% (1927/5206)
Updating files:  38% (1979/5206)
Updating files:  39% (2031/5206)
Updating files:  40% (2083/5206)
Updating files:  41% (2135/5206)
Updating files:  42% (2187/5206)
Updating files:  43% (2239/5206)
Updating files:  44% (2291/5206)
Updating files:  45% (2343/5206)
Updating files:  46% (2395/5206)
Updating files:  46% (2436/5206)
Updating files:  47% (2447/5206)
Updating files:  48% (2499/5206)
Updating files:  48% (2520/5206)
Updating files:  49% (2551/5206)
Updating files:  50% (2603/5206)
Updating files:  50% (2632/5206)
Updating files:  51% (2656/5206)
Updating files:  52% (2708/5206)
Updating files:  52% (2715/5206)
Updating files:  53% (2760/5206)
Updating files:  54% (2812/5206)
Updating files:  55% (2864/5206)
Updating files:  56% (2916/5206)
Updating files:  56% (2928/5206)
Updating files:  57% (2968/5206)
Updating files:  58% (3020/5206)
Updating files:  59% (3072/5206)
Updating files:  60% (3124/5206)
Updating files:  61% (3176/5206)
Updating files:  62% (3228/5206)
Updating files:  63% (3280/5206)
Updating files:  64% (3332/5206)
Updating files:  65% (3384/5206)
Updating files:  66% (3436/5206)
Updating files:  67% (3489/5206)
Updating files:  68% (3541/5206)
Updating files:  69% (3593/5206)
Updating files:  70% (3645/5206)
Updating files:  71% (3697/5206)
Updating files:  72% (3749/5206)
Updating files:  73% (3801/5206)
Updating files:  74% (3853/5206)
Updating files:  75% (3905/5206)
Updating files:  76% (3957/5206)
Updating files:  77% (4009/5206)
Updating files:  78% (4061/5206)
Updating files:  78% (4077/5206)
Updating files:  79% (4113/5206)
Updating files:  80% (4165/5206)
Updating files:  81% (4217/5206)
Updating files:  82% (4269/5206)
Updating files:  83% (4321/5206)
Updating files:  84% (4374/5206)
Updating files:  85% (4426/5206)
Updating files:  86% (4478/5206)
Updating files:  87% (4530/5206)
Updating files:  88% (4582/5206)
Updating files:  89% (4634/5206)
Updating files:  90% (4686/5206)
Updating files:  90% (4721/5206)
Updating files:  91% (4738/5206)
Updating files:  92% (4790/5206)
Updating files:  93% (4842/5206)
Updating files:  94% (4894/5206)
Updating files:  95% (4946/5206)
Updating files:  96% (4998/5206)
Updating files:  97% (5050/5206)
Updating files:  98% (5102/5206)
Updating files:  99% (5154/5206)
Updating files: 100% (5206/5206)
Updating files: 100% (5206/5206), done.
[INFO] started tweaking git repo https://github.com/lingoo12138/rs-learn01
[INFO] finished tweaking git repo https://github.com/lingoo12138/rs-learn01
[INFO] tweaked toml for git repo https://github.com/lingoo12138/rs-learn01 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lingoo12138/rs-learn01 on toolchain 1.98.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lingoo12138/rs-learn01 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" "+1.98.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d
[INFO] running `Command { std: "docker" "start" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling exercises v0.1.0 (/opt/rustwide/workdir/exercises)
[INFO] [stdout] warning: unused variable: `person`
[INFO] [stdout]   --> exercises/src/chapter01_variables/practice.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let person = ("Alice", 30, "engineer");
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_person`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]  --> exercises/src/chapter02_ownership/practice.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let s1 = String::from("rust");
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> exercises/src/chapter02_ownership/practice.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let s1 = String::from("hello");
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> exercises/src/chapter02_ownership/practice.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn string_len(s: &String) -> usize {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]  --> exercises/src/chapter03_borrow/practice.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let x = 42;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> exercises/src/chapter03_borrow/practice.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn practice2(x: &mut i32) {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> exercises/src/chapter03_borrow/practice.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn practice3(s: &str) -> char {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> exercises/src/chapter04_string/practice.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let s = "hello world";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> exercises/src/chapter04_string/practice.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let a = "Hello";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> exercises/src/chapter04_string/practice.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let b = "Rust";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> exercises/src/chapter05_struct_enum/practice.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn is_author(&self, name: &str) -> bool {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> exercises/src/chapter05_struct_enum/practice.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn practice3(x: Option<i32>) -> i32 {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]  --> exercises/src/chapter06_lifetime/practice.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn longer<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]   |                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> exercises/src/chapter06_lifetime/practice.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn longer<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]   |                               ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]  --> exercises/src/chapter07_generics_trait/practice.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn practice1<T>(x: T) -> T {
[INFO] [stdout]   |                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]  --> exercises/src/chapter08_error/practice.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn practice1(n: i32) -> Result<i32, String> {
[INFO] [stdout]   |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]  --> exercises/src/chapter08_error/practice.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn practice2(a: i32, b: i32) -> Result<i32, String> {
[INFO] [stdout]   |                          ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]  --> exercises/src/chapter08_error/practice.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let result = practice1(a)?;
[INFO] [stdout]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> exercises/src/chapter08_error/practice.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn practice3(s: &str) -> Option<i32> {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]  --> exercises/src/chapter09_closure_iter/practice.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let add = |a: i32, b: i32| -> i32 { todo!() };
[INFO] [stdout]   |                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]  --> exercises/src/chapter09_closure_iter/practice.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let add = |a: i32, b: i32| -> i32 { todo!() };
[INFO] [stdout]   |                        ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nums`
[INFO] [stdout]   --> exercises/src/chapter09_closure_iter/practice.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let nums = vec![1, 2, 3];
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_nums`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nums`
[INFO] [stdout]   --> exercises/src/chapter09_closure_iter/practice.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let nums = vec![1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_nums`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell`
[INFO] [stdout]   --> exercises/src/chapter10_smartptr/practice.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let cell = RefCell::new(10);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]   --> exercises/src/chapter11_concurrency/practice.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let (tx, rx): (mpsc::Sender<String>, mpsc::Receiver<String>) = mpsc::channel();
[INFO] [stdout]    |          ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx`
[INFO] [stdout]   --> exercises/src/chapter11_concurrency/practice.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let (tx, rx): (mpsc::Sender<String>, mpsc::Receiver<String>) = mpsc::channel();
[INFO] [stdout]    |              ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Book` is more private than the item `chapter05_struct_enum::practice::practice1`
[INFO] [stdout]   --> exercises/src/chapter05_struct_enum/practice.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn practice1() -> Book {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ function `chapter05_struct_enum::practice::practice1` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Book` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> exercises/src/chapter05_struct_enum/practice.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | struct Book {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Describe` is more private than the item `print_description`
[INFO] [stdout]   --> exercises/src/chapter07_generics_trait/practice.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn print_description(item: impl Describe) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `print_description` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Describe` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> exercises/src/chapter07_generics_trait/practice.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | trait Describe {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3.10s
[INFO] running `Command { std: "docker" "inspect" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling exercises v0.1.0 (/opt/rustwide/workdir/exercises)
[INFO] [stdout] warning: unused variable: `person`
[INFO] [stdout]   --> exercises/src/chapter01_variables/practice.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let person = ("Alice", 30, "engineer");
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_person`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]  --> exercises/src/chapter02_ownership/practice.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let s1 = String::from("rust");
[INFO] [stdout]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> exercises/src/chapter02_ownership/practice.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let s1 = String::from("hello");
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> exercises/src/chapter02_ownership/practice.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn string_len(s: &String) -> usize {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]  --> exercises/src/chapter03_borrow/practice.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let x = 42;
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> exercises/src/chapter03_borrow/practice.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn practice2(x: &mut i32) {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> exercises/src/chapter03_borrow/practice.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn practice3(s: &str) -> char {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> exercises/src/chapter04_string/practice.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let s = "hello world";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> exercises/src/chapter04_string/practice.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let a = "Hello";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> exercises/src/chapter04_string/practice.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let b = "Rust";
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> exercises/src/chapter05_struct_enum/practice.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn is_author(&self, name: &str) -> bool {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> exercises/src/chapter05_struct_enum/practice.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn practice3(x: Option<i32>) -> i32 {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]  --> exercises/src/chapter06_lifetime/practice.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn longer<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]   |                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]  --> exercises/src/chapter06_lifetime/practice.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn longer<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]   |                               ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]  --> exercises/src/chapter07_generics_trait/practice.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn practice1<T>(x: T) -> T {
[INFO] [stdout]   |                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]  --> exercises/src/chapter08_error/practice.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn practice1(n: i32) -> Result<i32, String> {
[INFO] [stdout]   |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]  --> exercises/src/chapter08_error/practice.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn practice2(a: i32, b: i32) -> Result<i32, String> {
[INFO] [stdout]   |                          ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]  --> exercises/src/chapter08_error/practice.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let result = practice1(a)?;
[INFO] [stdout]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> exercises/src/chapter08_error/practice.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn practice3(s: &str) -> Option<i32> {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]  --> exercises/src/chapter09_closure_iter/practice.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let add = |a: i32, b: i32| -> i32 { todo!() };
[INFO] [stdout]   |                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]  --> exercises/src/chapter09_closure_iter/practice.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let add = |a: i32, b: i32| -> i32 { todo!() };
[INFO] [stdout]   |                        ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nums`
[INFO] [stdout]   --> exercises/src/chapter09_closure_iter/practice.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let nums = vec![1, 2, 3];
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_nums`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nums`
[INFO] [stdout]   --> exercises/src/chapter09_closure_iter/practice.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let nums = vec![1, 2, 3, 4, 5];
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_nums`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell`
[INFO] [stdout]   --> exercises/src/chapter10_smartptr/practice.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let cell = RefCell::new(10);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]   --> exercises/src/chapter11_concurrency/practice.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let (tx, rx): (mpsc::Sender<String>, mpsc::Receiver<String>) = mpsc::channel();
[INFO] [stdout]    |          ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx`
[INFO] [stdout]   --> exercises/src/chapter11_concurrency/practice.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let (tx, rx): (mpsc::Sender<String>, mpsc::Receiver<String>) = mpsc::channel();
[INFO] [stdout]    |              ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `chapter05_struct_enum::practice::Book` is more private than the item `chapter05_struct_enum::practice::practice1`
[INFO] [stdout]   --> exercises/src/chapter05_struct_enum/practice.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn practice1() -> Book {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ function `chapter05_struct_enum::practice::practice1` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `chapter05_struct_enum::practice::Book` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> exercises/src/chapter05_struct_enum/practice.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout]  4 | struct Book {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `chapter07_generics_trait::practice::Describe` is more private than the item `chapter07_generics_trait::practice::print_description`
[INFO] [stdout]   --> exercises/src/chapter07_generics_trait/practice.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn print_description(item: impl Describe) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `chapter07_generics_trait::practice::print_description` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `chapter07_generics_trait::practice::Describe` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> exercises/src/chapter07_generics_trait/practice.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | trait Describe {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2.29s
[INFO] running `Command { std: "docker" "inspect" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stdout] 
[INFO] [stdout] running 124 tests
[INFO] [stdout] test chapter01_variables::practice::tests::test_practice1 ... ignored
[INFO] [stdout] test chapter01_variables::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter01_variables::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter01_variables::tests::test_exercise1 ... ok
[INFO] [stdout] test chapter01_variables::tests::test_exercise5 ... ok
[INFO] [stdout] test chapter01_variables::tests::test_exercise2 ... ok
[INFO] [stdout] test chapter01_variables::tests::test_exercise6 ... ok
[INFO] [stdout] test chapter01_variables::tests::test_exercise7 ... ok
[INFO] [stdout] test chapter01_variables::tests::test_exercise8 ... ok
[INFO] [stdout] test chapter02_ownership::practice::tests::test_practice1 ... ignored
[INFO] [stdout] test chapter02_ownership::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter02_ownership::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter02_ownership::tests::test_classify ... ok
[INFO] [stdout] test chapter02_ownership::tests::test_exercise1 ... ok
[INFO] [stdout] test chapter02_ownership::tests::test_exercise2 ... ok
[INFO] [stdout] test chapter02_ownership::tests::test_exercise3 ... ok
[INFO] [stdout] test chapter02_ownership::tests::test_exercise4 ... ok
[INFO] [stdout] test chapter03_borrow::practice::tests::test_practice1 ... ignored
[INFO] [stdout] test chapter03_borrow::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter03_borrow::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter03_borrow::tests::test_exercise1 ... ok
[INFO] [stdout] test chapter03_borrow::tests::test_exercise2 ... ok
[INFO] [stdout] test chapter03_borrow::tests::test_exercise3 ... ok
[INFO] [stdout] test chapter02_ownership::tests::test_make_string ... ok
[INFO] [stdout] test chapter02_ownership::tests::test_string_length ... ok
[INFO] [stdout] test chapter03_borrow::tests::test_reason ... ok
[INFO] [stdout] test chapter02_ownership::tests::test_take_and_give_back ... ok
[INFO] [stdout] test chapter03_borrow::tests::test_swap ... ok
[INFO] [stdout] test chapter03_borrow::tests::test_add_forty ... ok
[INFO] [stdout] test chapter03_borrow::tests::test_first_char ... ok
[INFO] [stdout] test chapter04_string::practice::tests::test_practice1 ... ignored
[INFO] [stdout] test chapter04_string::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter04_string::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter04_string::tests::test_contains_rs ... ok
[INFO] [stdout] test chapter04_string::tests::test_push_hello ... ok
[INFO] [stdout] test chapter05_struct_enum::practice::tests::test_practice1 ... ignored
[INFO] [stderr] warning: unused variable: `person`
[INFO] [stderr]   --> exercises/src/chapter01_variables/practice.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 |     let person = ("Alice", 30, "engineer");
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_person`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s1`
[INFO] [stderr]  --> exercises/src/chapter02_ownership/practice.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let s1 = String::from("rust");
[INFO] [stderr]   |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s1`
[INFO] [stderr]   --> exercises/src/chapter02_ownership/practice.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |     let s1 = String::from("hello");
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> exercises/src/chapter02_ownership/practice.rs:17:19
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub fn string_len(s: &String) -> usize {
[INFO] [stderr]    |                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]  --> exercises/src/chapter03_borrow/practice.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let x = 42;
[INFO] [stderr]   |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]   --> exercises/src/chapter03_borrow/practice.rs:11:18
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn practice2(x: &mut i32) {
[INFO] [stderr]    |                  ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> exercises/src/chapter03_borrow/practice.rs:16:18
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub fn practice3(s: &str) -> char {
[INFO] [stderr]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> exercises/src/chapter04_string/practice.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 |     let s = "hello world";
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]   --> exercises/src/chapter04_string/practice.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let a = "Hello";
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b`
[INFO] [stderr]   --> exercises/src/chapter04_string/practice.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |     let b = "Rust";
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> exercises/src/chapter05_struct_enum/practice.rs:10:29
[INFO] [stderr]    |
[INFO] [stderr] 10 |     pub fn is_author(&self, name: &str) -> bool {
[INFO] [stderr]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]   --> exercises/src/chapter05_struct_enum/practice.rs:19:18
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn practice3(x: Option<i32>) -> i32 {
[INFO] [stderr]    |                  ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]  --> exercises/src/chapter06_lifetime/practice.rs:4:19
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn longer<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stderr]   |                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]  --> exercises/src/chapter06_lifetime/practice.rs:4:31
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn longer<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stderr]   |                               ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]  --> exercises/src/chapter07_generics_trait/practice.rs:4:21
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn practice1<T>(x: T) -> T {
[INFO] [stderr]   |                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]  --> exercises/src/chapter08_error/practice.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn practice1(n: i32) -> Result<i32, String> {
[INFO] [stderr]   |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b`
[INFO] [stderr]  --> exercises/src/chapter08_error/practice.rs:8:26
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn practice2(a: i32, b: i32) -> Result<i32, String> {
[INFO] [stderr]   |                          ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result`
[INFO] [stderr]  --> exercises/src/chapter08_error/practice.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let result = practice1(a)?;
[INFO] [stderr]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> exercises/src/chapter08_error/practice.rs:13:18
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub fn practice3(s: &str) -> Option<i32> {
[INFO] [stderr]    |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]  --> exercises/src/chapter09_closure_iter/practice.rs:5:16
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let add = |a: i32, b: i32| -> i32 { todo!() };
[INFO] [stderr]   |                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b`
[INFO] [stderr]  --> exercises/src/chapter09_closure_iter/practice.rs:5:24
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let add = |a: i32, b: i32| -> i32 { todo!() };
[INFO] [stderr]   |                        ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nums`
[INFO] [stderr]   --> exercises/src/chapter09_closure_iter/practice.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let nums = vec![1, 2, 3];
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_nums`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nums`
[INFO] [stderr]   --> exercises/src/chapter09_closure_iter/practice.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let nums = vec![1, 2, 3, 4, 5];
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_nums`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cell`
[INFO] [stderr]   --> exercises/src/chapter10_smartptr/practice.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |     let cell = RefCell::new(10);
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cell`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tx`
[INFO] [stderr]   --> exercises/src/chapter11_concurrency/practice.rs:15:10
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let (tx, rx): (mpsc::Sender<String>, mpsc::Receiver<String>) = mpsc::channel();
[INFO] [stderr]    |          ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rx`
[INFO] [stderr]   --> exercises/src/chapter11_concurrency/practice.rs:15:14
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let (tx, rx): (mpsc::Sender<String>, mpsc::Receiver<String>) = mpsc::channel();
[INFO] [stderr]    |              ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stderr] 
[INFO] [stderr] warning: type `chapter05_struct_enum::practice::Book` is more private than the item `chapter05_struct_enum::practice::practice1`
[INFO] [stderr]   --> exercises/src/chapter05_struct_enum/practice.rs:15:1
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn practice1() -> Book {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ function `chapter05_struct_enum::practice::practice1` is reachable at visibility `pub(crate)`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `chapter05_struct_enum::practice::Book` is only usable at visibility `pub(self)`
[INFO] [stderr]   --> exercises/src/chapter05_struct_enum/practice.rs:4:1
[INFO] [stderr]    |
[INFO] [stderr]  4 | struct Book {
[INFO] [stderr]    | ^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `chapter07_generics_trait::practice::Describe` is more private than the item `chapter07_generics_trait::practice::print_description`
[INFO] [stderr]   --> exercises/src/chapter07_generics_trait/practice.rs:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub fn print_description(item: impl Describe) -> String {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `chapter07_generics_trait::practice::print_description` is reachable at visibility `pub(crate)`
[INFO] [stderr]    |
[INFO] [stderr] note: but trait `chapter07_generics_trait::practice::Describe` is only usable at visibility `pub(self)`
[INFO] [stderr]   --> exercises/src/chapter07_generics_trait/practice.rs:8:1
[INFO] [stderr]    |
[INFO] [stderr]  8 | trait Describe {
[INFO] [stderr]    | ^^^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `exercises` (bin "exercises" test) generated 28 warnings (run `cargo fix --bin "exercises" -p exercises --tests` to apply 26 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.20s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/exercises-e8d78ca92010aac4)
[INFO] [stdout] test chapter05_struct_enum::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter05_struct_enum::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter04_string::tests::test_replace_hello ... ok
[INFO] [stdout] test chapter04_string::tests::test_char_count ... ok
[INFO] [stdout] test chapter04_string::tests::test_slice_world ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_area ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_can_hold ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_black ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_create_person ... ok
[INFO] [stdout] test chapter01_variables::tests::test_is_even ... ok
[INFO] [stdout] test chapter04_string::tests::test_string_len ... ok
[INFO] [stdout] test chapter01_variables::tests::test_exercise3 ... ok
[INFO] [stdout] test chapter03_borrow::tests::test_ref_length ... ok
[INFO] [stdout] test chapter04_string::tests::test_exercise1 ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_describe ... ok
[INFO] [stdout] test chapter04_string::tests::test_format_greeting ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_greet ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_message_write ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_option_none ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_person_age ... ok
[INFO] [stdout] test chapter06_lifetime::practice::tests::test_practice1 ... ignored
[INFO] [stdout] test chapter05_struct_enum::tests::test_result_err ... ok
[INFO] [stdout] test chapter06_lifetime::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter05_struct_enum::tests::test_result_ok ... ok
[INFO] [stdout] test chapter06_lifetime::tests::test_excerpt ... ok
[INFO] [stdout] test chapter06_lifetime::tests::test_first_second ... ok
[INFO] [stdout] test chapter06_lifetime::tests::test_first_word ... ok
[INFO] [stdout] test chapter06_lifetime::tests::test_get_part ... ok
[INFO] [stdout] test chapter07_generics_trait::practice::tests::test_practice1 ... ignored
[INFO] [stdout] test chapter07_generics_trait::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter06_lifetime::tests::test_longest ... ok
[INFO] [stdout] test chapter07_generics_trait::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter06_lifetime::tests::test_static ... ok
[INFO] [stdout] test chapter07_generics_trait::tests::test_cat_hello ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_option_some ... ok
[INFO] [stdout] test chapter07_generics_trait::tests::test_compare ... ok
[INFO] [stdout] test chapter07_generics_trait::tests::test_dog_greet ... ok
[INFO] [stdout] test chapter07_generics_trait::tests::test_greet_twice ... ok
[INFO] [stdout] test chapter07_generics_trait::tests::test_identity ... ok
[INFO] [stdout] test chapter07_generics_trait::tests::test_make_greeter ... ok
[INFO] [stdout] test chapter07_generics_trait::tests::test_max_i32 ... ok
[INFO] [stdout] test chapter07_generics_trait::tests::test_max_str ... ok
[INFO] [stdout] test chapter07_generics_trait::tests::test_pair ... ok
[INFO] [stdout] test chapter08_error::practice::tests::test_practice1_err ... ignored
[INFO] [stdout] test chapter08_error::practice::tests::test_practice1_ok ... ignored
[INFO] [stdout] test chapter08_error::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter08_error::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter08_error::practice::tests::test_practice3_invalid ... ignored
[INFO] [stdout] test chapter08_error::tests::test_calc_err ... ok
[INFO] [stdout] test chapter08_error::tests::test_map ... ok
[INFO] [stdout] test chapter08_error::tests::test_process ... ok
[INFO] [stdout] test chapter08_error::tests::test_process_err ... ok
[INFO] [stdout] test chapter08_error::tests::test_question_mark ... ok
[INFO] [stdout] test chapter08_error::tests::test_safe_divide_err ... ok
[INFO] [stdout] test chapter09_closure_iter::practice::tests::test_practice1 ... ignored
[INFO] [stdout] test chapter09_closure_iter::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter07_generics_trait::tests::test_say_greet ... ok
[INFO] [stdout] test chapter08_error::tests::test_will_panic ... ok
[INFO] [stdout] test chapter09_closure_iter::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter08_error::tests::test_unwrap ... ok
[INFO] [stdout] test chapter08_error::tests::test_safe_divide_ok ... ok
[INFO] [stdout] test chapter09_closure_iter::tests::test_collect ... ok
[INFO] [stdout] test chapter09_closure_iter::tests::test_call_fn ... ok
[INFO] [stdout] test chapter09_closure_iter::tests::test_capture ... ok
[INFO] [stdout] test chapter09_closure_iter::tests::test_first ... ok
[INFO] [stdout] test chapter05_struct_enum::tests::test_if_let ... ok
[INFO] [stdout] test chapter09_closure_iter::tests::test_fold ... ok
[INFO] [stdout] test chapter10_smartptr::practice::tests::test_practice1 ... ignored
[INFO] [stdout] test chapter10_smartptr::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter10_smartptr::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter09_closure_iter::tests::test_make_adder ... ok
[INFO] [stdout] test chapter09_closure_iter::tests::test_filter ... ok
[INFO] [stdout] test chapter09_closure_iter::tests::test_square ... ok
[INFO] [stdout] test chapter10_smartptr::tests::test_rc ... ok
[INFO] [stdout] test chapter10_smartptr::tests::test_rc_count ... ok
[INFO] [stdout] test chapter11_concurrency::practice::tests::test_practice1 ... ignored
[INFO] [stdout] test chapter11_concurrency::practice::tests::test_practice2 ... ignored
[INFO] [stdout] test chapter11_concurrency::practice::tests::test_practice3 ... ignored
[INFO] [stdout] test chapter10_smartptr::tests::test_refcell ... ok
[INFO] [stdout] test chapter10_smartptr::tests::test_shared_mutable ... ok
[INFO] [stdout] test chapter11_concurrency::tests::test_async ... ok
[INFO] [stdout] test chapter11_concurrency::tests::test_channel ... ok
[INFO] [stdout] test chapter11_concurrency::tests::test_move ... ok
[INFO] [stdout] test chapter10_smartptr::tests::test_list ... ok
[INFO] [stdout] test chapter11_concurrency::tests::test_multi_send ... ok
[INFO] [stdout] test chapter10_smartptr::tests::test_box ... ok
[INFO] [stdout] test chapter11_concurrency::tests::test_shared_counter ... ok
[INFO] [stdout] test chapter11_concurrency::tests::test_spawn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 90 passed; 0 failed; 34 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d", kill_on_drop: false }`
[INFO] [stdout] d4fab02d14ec07a4c7705a6a38d06bfdc9faa63b002bb62634d50d77f4d0dd8d
