[INFO] fetching crate tao-of-rust 1.0.2... [INFO] checking tao-of-rust-1.0.2 against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] extracting crate tao-of-rust 1.0.2 into /workspace/builds/worker-0-tc1/source [INFO] validating manifest of crates.io crate tao-of-rust 1.0.2 on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-0-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 49 packages to latest compatible versions [INFO] [stderr] Adding bitflags v1.3.2 (available: v2.6.0) [INFO] [stderr] Adding clap v2.34.0 (available: v4.5.18) [INFO] [stderr] Adding heck v0.3.3 (available: v0.5.0) [INFO] [stderr] Adding hermit-abi v0.1.19 (available: v0.4.0) [INFO] [stderr] Adding proc-macro2 v0.4.30 (available: v1.0.86) [INFO] [stderr] Adding quote v0.6.13 (available: v1.0.37) [INFO] [stderr] Adding strsim v0.8.0 (available: v0.11.1) [INFO] [stderr] Adding structopt v0.2.18 (available: v0.3.26) [INFO] [stderr] Adding structopt-derive v0.2.18 (available: v0.4.18) [INFO] [stderr] Adding syn v0.15.44 (available: v2.0.77) [INFO] [stderr] Adding syn v1.0.109 (available: v2.0.77) [INFO] [stderr] Adding synstructure v0.12.6 (available: v0.13.1) [INFO] [stderr] Adding textwrap v0.11.0 (available: v0.16.1) [INFO] [stderr] Adding unicode-width v0.1.14 (available: v0.2.0) [INFO] [stderr] Adding unicode-xid v0.1.0 (available: v0.2.6) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded csv_challenge v0.1.0 [INFO] [stderr] Downloaded failures_crate v0.1.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 56e35e5caa77d0fe4ce1327905223c687f127e3ddaeab7c4b2dc55a4c8028430 [INFO] running `Command { std: "docker" "start" "-a" "56e35e5caa77d0fe4ce1327905223c687f127e3ddaeab7c4b2dc55a4c8028430", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "56e35e5caa77d0fe4ce1327905223c687f127e3ddaeab7c4b2dc55a4c8028430", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "56e35e5caa77d0fe4ce1327905223c687f127e3ddaeab7c4b2dc55a4c8028430", kill_on_drop: false }` [INFO] [stdout] 56e35e5caa77d0fe4ce1327905223c687f127e3ddaeab7c4b2dc55a4c8028430 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] da01a6f76e9d1d010e3a7e6cc60f9f4818dd30f5c9ada0a60cd9a91c88fe880f [INFO] running `Command { std: "docker" "start" "-a" "da01a6f76e9d1d010e3a7e6cc60f9f4818dd30f5c9ada0a60cd9a91c88fe880f", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Compiling libc v0.2.159 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Checking gimli v0.31.0 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking object v0.36.4 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking ansi_term v0.12.1 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking rustc-demangle v0.1.24 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stderr] Checking addr2line v0.24.1 [INFO] [stderr] Compiling structopt-derive v0.2.18 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking structopt v0.2.18 [INFO] [stderr] Checking csv_challenge v0.1.0 [INFO] [stderr] Checking backtrace v0.3.74 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Checking failures_crate v0.1.0 [INFO] [stderr] Checking 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: split into finer-grained feature gates [INFO] [stdout] [INFO] [stdout] [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: split into finer-grained feature gates [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 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 [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: 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 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: 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: 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 [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: 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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe 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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 188 | pub fn two_times() -> Box i32> { [INFO] [stdout] | +++ [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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe 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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 188 | pub fn two_times() -> Box 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 | fn dynamic_dispatch(t: &dyn Bar) { [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 [INFO] [stdout] help: if this is an object-safe 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 Swimmer for Diver {} [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] 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 Swimmer for Diver {} [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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 | fn counter(i: i32) -> Box i32> { [INFO] [stdout] | +++ [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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 | fn counter(i: i32) -> Box 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>){ [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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 512 | fn boxed_closure(c: &mut Vec>){ [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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 638 | fn bar(b: Box 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:512:38 [INFO] [stdout] | [INFO] [stdout] 512 | fn boxed_closure(c: &mut 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 512 | fn boxed_closure(c: &mut Vec>){ [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 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 638 | fn bar(b: Box 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> = 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 519 | let mut c: Vec> = vec![]; [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> = 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 519 | let mut c: Vec> = 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: 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: 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: 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: `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: `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: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: `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: `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: `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: `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: `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(i: T) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [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(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/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: `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: `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: `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: `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: `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] 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] error: aborting due to 2 previous errors; 48 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0520, E0557. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0520`. [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors; 48 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0520, 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 test) due to 3 previous errors; 48 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `tao-of-rust` (lib) due to 3 previous errors; 48 warnings emitted [INFO] running `Command { std: "docker" "inspect" "da01a6f76e9d1d010e3a7e6cc60f9f4818dd30f5c9ada0a60cd9a91c88fe880f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "da01a6f76e9d1d010e3a7e6cc60f9f4818dd30f5c9ada0a60cd9a91c88fe880f", kill_on_drop: false }` [INFO] [stdout] da01a6f76e9d1d010e3a7e6cc60f9f4818dd30f5c9ada0a60cd9a91c88fe880f