[INFO] fetching crate tao-of-rust 1.0.2...
[INFO] testing tao-of-rust-1.0.2 against 1.90.0 for beta-1.91-3
[INFO] extracting crate tao-of-rust 1.0.2 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate tao-of-rust 1.0.2
[INFO] finished tweaking crates.io crate tao-of-rust 1.0.2
[INFO] tweaked toml for crates.io crate tao-of-rust 1.0.2 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate tao-of-rust 1.0.2 on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 41 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded csv_challenge v0.1.0
[INFO] [stderr]   Downloaded structopt-derive v0.2.18
[INFO] [stderr]   Downloaded structopt v0.2.18
[INFO] [stderr]   Downloaded failures_crate v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cbc8a8840882bb389c224ea6c621f4a9a7f93b775583736ffce682d8f482d674
[INFO] running `Command { std: "docker" "start" "-a" "cbc8a8840882bb389c224ea6c621f4a9a7f93b775583736ffce682d8f482d674", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cbc8a8840882bb389c224ea6c621f4a9a7f93b775583736ffce682d8f482d674", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cbc8a8840882bb389c224ea6c621f4a9a7f93b775583736ffce682d8f482d674", kill_on_drop: false }`
[INFO] [stdout] cbc8a8840882bb389c224ea6c621f4a9a7f93b775583736ffce682d8f482d674
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5b910bb5113e6d75537f777a6db6e19b49e44c8d89670d191d7bb8bf2b46bad9
[INFO] running `Command { std: "docker" "start" "-a" "5b910bb5113e6d75537f777a6db6e19b49e44c8d89670d191d7bb8bf2b46bad9", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling structopt-derive v0.2.18
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling structopt v0.2.18
[INFO] [stderr]    Compiling csv_challenge v0.1.0
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling failures_crate v0.1.0
[INFO] [stderr]    Compiling tao-of-rust v1.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(const_fn)]
[INFO] [stdout]   |            ^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: removed in 1.54.0; see <https://github.com/rust-lang/rust/pull/85109> for more information
[INFO] [stdout]   = note: split into finer-grained feature gates
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> src/lib.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(const_fn)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(never_type)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> src/lib.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(specialization)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> src/lib.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(unboxed_closures, fn_traits)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(specialization)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
[INFO] [stdout]   = help: consider using `min_specialization` instead, which is more stable and complete
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/ch02/control_flow.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     while true {
[INFO] [stdout]     |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ch02/control_flow.rs:199:10
[INFO] [stdout]     |
[INFO] [stdout] 199 |         1...3 => println!("All"),
[INFO] [stdout]     |          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/ch02/primitives.rs:170:14
[INFO] [stdout]     |
[INFO] [stdout] 170 |     for i in (1..5) {
[INFO] [stdout]     |              ^    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 170 -     for i in (1..5) {
[INFO] [stdout] 170 +     for i in 1..5 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/ch02/primitives.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 |     for i in (1..=5) {
[INFO] [stdout]     |              ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 173 -     for i in (1..=5) {
[INFO] [stdout] 173 +     for i in 1..=5 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/ch02/structs.rs:58:23
[INFO] [stdout]    |
[INFO] [stdout] 58 |       let gender = if (self.gender == 1) {"boy"} else {"girl"};
[INFO] [stdout]    |                       ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 58 -       let gender = if (self.gender == 1) {"boy"} else {"girl"};
[INFO] [stdout] 58 +       let gender = if self.gender == 1 {"boy"} else {"girl"};
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]    --> src/ch06/closures.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     #![feature(unboxed_closures, fn_traits)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch01/mod.rs:106:20
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn fly_dyn(s: &Fly) -> bool {
[INFO] [stdout]     |                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn fly_dyn(s: &dyn Fly) -> bool {
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch02/function.rs:188:27
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub fn two_times() -> Box<Fn(i32) -> i32> {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub fn two_times() -> Box<dyn Fn(i32) -> i32> {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch03/abstract_type.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn dynamic_dispatch(t: &Bar) {
[INFO] [stdout]    |                             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn dynamic_dispatch(t: &dyn Bar) {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0520]: `swim` specializes an item from a parent `impl`, but that item is not marked `default`
[INFO] [stdout]    --> src/ch03/trait_limit.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     impl<T> Swimmer for Diver<T> {}
[INFO] [stdout]     |     ---------------------------- parent `impl` is here
[INFO] [stdout] ...
[INFO] [stdout] 157 |         fn swim(&self) {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ cannot specialize default item `swim`
[INFO] [stdout]     |
[INFO] [stdout]     = note: to specialize, `swim` in the parent `impl` must be marked `default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ch06/closures.rs:48:31
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn counter(i: i32) -> Box<Fn(i32) -> i32> {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn counter(i: i32) -> Box<dyn Fn(i32) -> i32> {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch06/closures.rs:512:38
[INFO] [stdout]     |
[INFO] [stdout] 512 |     fn boxed_closure(c: &mut Vec<Box<Fn()>>){
[INFO] [stdout]     |                                      ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 512 |     fn boxed_closure(c: &mut Vec<Box<dyn Fn()>>){
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch06/closures.rs:638:19
[INFO] [stdout]     |
[INFO] [stdout] 638 |     fn bar(b: Box<for<'f> DoSomething<&'f usize>>) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 638 |     fn bar(b: Box<dyn for<'f> DoSomething<&'f usize>>) {
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ch06/closures.rs:519:28
[INFO] [stdout]     |
[INFO] [stdout] 519 |         let mut c: Vec<Box<Fn()>> = vec![];
[INFO] [stdout]     |                            ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 519 |         let mut c: Vec<Box<dyn Fn()>> = vec![];
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/ch02/binding.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let a = 1;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `b` is assigned to, but never used
[INFO] [stdout]   --> src/ch02/binding.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut b = 2;
[INFO] [stdout]    |             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_b` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `b` is never read
[INFO] [stdout]   --> src/ch02/binding.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     b = 3; // mutable
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v2`
[INFO] [stdout]   --> src/ch02/collections.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut v2 = vec![0; 10];
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_v2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ch02/collections.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut v2 = vec![0; 10];
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/ch02/primitives.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let x = true;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]   --> src/ch02/primitives.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let num = 42u32;
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]   --> src/ch02/primitives.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let num: u32 = 42;
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]   --> src/ch02/primitives.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let num = 0x2A;  // 16进制
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]   --> src/ch02/primitives.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let num = 0o106;  // 8进制
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]   --> src/ch02/primitives.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let num = 0b1101_1011; // 2进制
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]   --> src/ch02/primitives.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let num = 3.1415926f64;
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/ch02/primitives.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let x = 'r';
[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]   --> src/ch02/primitives.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let x = 'Ú';
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr`
[INFO] [stdout]    --> src/ch02/primitives.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let arr: [i32; 3] = [1, 2, 3];
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ch02/primitives.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |     let x: ! = {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/ch03/traits.rs:246:28
[INFO] [stdout]     |
[INFO] [stdout] 246 |         fn set_page(&self, p: i32){
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]    --> src/ch03/traits.rs:251:31
[INFO] [stdout]     |
[INFO] [stdout] 251 |         fn set_perpage(&self, num: i32){
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/ch03/tag_trait.rs:53:27
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn test_copy<T: Copy>(i: T) {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/ch03/type_cast.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let y = x.clone();  // Rc<&str>
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]   --> src/ch03/type_cast.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let z = (*x).clone();   // &str
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/ch04/general_concepts.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let y = x;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]   --> src/ch04/general_concepts.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let z = 100;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/ch04/raii.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let s = String::from("hello");
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/ch04/raii.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let v = vec![1,2,3];
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stolen`
[INFO] [stdout]   --> src/ch05/semantic.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let stolen = orig;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stolen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/ch05/semantic.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let b = a;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/ch05/share_mutable.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let x = "hello".to_string();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/ch05/share_mutable.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let a = "hello";   // -------scope a-------+
[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]    --> src/ch05/share_mutable.rs:134:13
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let b = "rust";    // -----scope b------+  |
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/ch05/share_mutable.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let d = c;         // - scope d ---  |  |  |
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/ch06/closures.rs:130:47
[INFO] [stdout]     |
[INFO] [stdout] 130 |         extern "rust-call" fn call_once(self, args: ()) -> u32 {
[INFO] [stdout]     |                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/ch06/closures.rs:136:51
[INFO] [stdout]     |
[INFO] [stdout] 136 |         extern "rust-call" fn call_mut(&mut self, args: ()) -> u32 {
[INFO] [stdout]     |                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/ch06/closures.rs:142:43
[INFO] [stdout]     |
[INFO] [stdout] 142 |         extern "rust-call" fn call(&self, args: ()) -> u32 {
[INFO] [stdout]     |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0520, E0554, E0557.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0520`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tao-of-rust` (lib) due to 6 previous errors; 48 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "5b910bb5113e6d75537f777a6db6e19b49e44c8d89670d191d7bb8bf2b46bad9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5b910bb5113e6d75537f777a6db6e19b49e44c8d89670d191d7bb8bf2b46bad9", kill_on_drop: false }`
[INFO] [stdout] 5b910bb5113e6d75537f777a6db6e19b49e44c8d89670d191d7bb8bf2b46bad9
