[INFO] cloning repository https://github.com/tokiwadai/rust_prog_lang [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tokiwadai/rust_prog_lang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftokiwadai%2Frust_prog_lang", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftokiwadai%2Frust_prog_lang'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 34d19f5d2570b49f3aac99664021021050edada3 [INFO] testing tokiwadai/rust_prog_lang against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftokiwadai%2Frust_prog_lang" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/tokiwadai/rust_prog_lang on toolchain 1871252fc8bb672d40787e67404e6eaae7059369 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/tokiwadai/rust_prog_lang [INFO] finished tweaking git repo https://github.com/tokiwadai/rust_prog_lang [INFO] tweaked toml for git repo https://github.com/tokiwadai/rust_prog_lang written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/tokiwadai/rust_prog_lang already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0cdca08438bbe69ef59add6aba6d1421ff90f8d0066919abae44745a3ecad4d6 [INFO] running `Command { std: "docker" "start" "-a" "0cdca08438bbe69ef59add6aba6d1421ff90f8d0066919abae44745a3ecad4d6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0cdca08438bbe69ef59add6aba6d1421ff90f8d0066919abae44745a3ecad4d6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0cdca08438bbe69ef59add6aba6d1421ff90f8d0066919abae44745a3ecad4d6", kill_on_drop: false }` [INFO] [stdout] 0cdca08438bbe69ef59add6aba6d1421ff90f8d0066919abae44745a3ecad4d6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f38a3f842117b48dc5e17815b83a4ea1f005277aa6c98052cfc8ea33fca4ce83 [INFO] running `Command { std: "docker" "start" "-a" "f38a3f842117b48dc5e17815b83a4ea1f005277aa6c98052cfc8ea33fca4ce83", kill_on_drop: false }` [INFO] [stderr] Compiling rust_prog_lang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `order1` [INFO] [stdout] --> src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | let order1 = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order2` [INFO] [stdout] --> src/lib.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let order2 = back_of_house::Appetizer::Salad; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/lib.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `seat_at_table` is never used [INFO] [stdout] --> src/front_of_house/hosting.rs:2:4 [INFO] [stdout] | [INFO] [stdout] 2 | fn seat_at_table() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_order` is never used [INFO] [stdout] --> src/front_of_house.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | fn take_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/front_of_house.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_payment` is never used [INFO] [stdout] --> src/front_of_house.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | fn take_payment() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `seasonal_fruit` is never read [INFO] [stdout] --> src/lib.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Breakfast { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 20 | pub toast: String, [INFO] [stdout] 21 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cook_order` is never used [INFO] [stdout] --> src/lib.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fix_incorrect_order` is never used [INFO] [stdout] --> src/lib.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn greeting2(name: &str) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /** We create an Rc instance holding a List value in the variable a with an initial list of 5, Nil. */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | let a: Rc = Rc::new(Cons(5,RefCell::new(Rc::new(Nil)))); [INFO] [stdout] | -------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / /** We then create an Rc instance holding another List value in the variable b [INFO] [stdout] 37 | | that contains the value 10 and points to the list in a, pp. 381 */ [INFO] [stdout] | |__________________________________________________________________________^ [INFO] [stdout] 38 | let b: Rc = Rc::new(Cons(10,RefCell::new(Rc::clone(&a)))); [INFO] [stdout] | ---------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / /** We modify a so it points to b instead of Nil, creating a cycle. [INFO] [stdout] 44 | | We do that by using the tail method to get a reference to the RefCell>. [INFO] [stdout] 45 | | Then we use the borrow_mut method on the RefCell> to change the value inside from an Rc [INFO] [stdout] 46 | | that holds a Nil value to the Rc in b, pp. 381 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 47 | / if let Some(link) = a.tail() { [INFO] [stdout] 48 | | *link.borrow_mut() = Rc::clone(&b); [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Guess { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 14 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/bin/chap10/4_generic_trait_samples.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Pair { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 10 | fn new(x: T, y: T) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `newB` should have a snake case name [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn newB(value: i32) -> Guess { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `new_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | Cons(i32, RefCell>), [INFO] [stdout] | ---- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 16 | Cons((), RefCell>), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `list` [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_list` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let s = data.to_string(); [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] --> src/bin/chap8/4_string_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | let s = "initial contents".to_string(); [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] --> src/bin/chap8/4_string_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let s = String::from("initial contents"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let hello = String::from("السلام علیكم"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let hello = String::from("Dobrý den"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let hello = String::from("Hello"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let hello = String::from("Здравствуйте"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let hello = String::from("Hola"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `largest_not_work` is never used [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `List_Box` should have an upper camel case name [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:2:6 [INFO] [stdout] | [INFO] [stdout] 2 | enum List_Box { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ListBox` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [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 doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / /** The Cons variants own the data they hold, so when we create the b list, [INFO] [stdout] 22 | | a is moved into b and b owns a. Then, when we try to use a again when creating c, [INFO] [stdout] 23 | | we’re not allowed to because a has been moved, pp. 366 [INFO] [stdout] 24 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** Box allows immutable or mutable borrows checked at compile time, pp. 370 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let a = List_Box::Cons(5, [INFO] [stdout] 18 | | Box::new(List_Box::Cons(10, [INFO] [stdout] 19 | | Box::new(List_Box::Nil)))); [INFO] [stdout] | |______________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / /** pp 370 [INFO] [stdout] 30 | | - Rc ENABLES MULTIPLE OWNERS of the same data, [INFO] [stdout] 31 | | while Box and RefCell have single owners [INFO] [stdout] 32 | | - Rc allows only IMMUTABLE borrows checked at compile time [INFO] [stdout] 33 | | */ [INFO] [stdout] | |__________^ [INFO] [stdout] 34 | / let a: Rc = Rc::new(List::Cons(5, [INFO] [stdout] 35 | | Rc::new(List::Cons(10, [INFO] [stdout] 36 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** The implementation of Rc::clone doesn’t make a deep copy of all the data [INFO] [stdout] 38 | | like most types’ implementations of clone do. [INFO] [stdout] 39 | | The call to Rc::clone only increments the reference count, which doesn’t take much time. [INFO] [stdout] 40 | | Deep copies of data can take a lot of time, pp. 367 */ [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] 41 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | /** Printing the reference count, pp. 368 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | / let a = Rc::new(List::Cons(5, [INFO] [stdout] 50 | | Rc::new(List::Cons(10, [INFO] [stdout] 51 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let c = List::Cons(4, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `some_function` is never used [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 3 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | Cons(i32, Rc), [INFO] [stdout] | ---- ^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Shoe` is never constructed [INFO] [stdout] --> src/bin/chap13/5_closure_iter_samples.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Shoe { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shoes_in_my_size` is never used [INFO] [stdout] --> src/bin/chap13/5_closure_iter_samples.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn shoes_in_my_size(shoes: Vec, shoe_size: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/2_vec_immut_ref.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut v = vec![1, 2, 3, 4, 5]; [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: fields `kind` and `address` are never read [INFO] [stdout] --> src/bin/chap6/1_enum_sample.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | struct IpAddr { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | kind: IpAddrKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpAddr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/5_rc_refcell_samples.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | Cons(Rc>, Rc), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 8 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | / /** The closure uses v, so it will capture v and make it part of the closure’s environment. [INFO] [stdout] 10 | | Because thread::spawn runs this closure in a new thread, [INFO] [stdout] 11 | | we should be able to access v inside that new thread. */ [INFO] [stdout] 12 | | /** Compile ERROR [INFO] [stdout] ... | [INFO] [stdout] 31 | | we force the closure to take ownership of the values it’s using [INFO] [stdout] 32 | | rather than allowing Rust to infer that it should borrow the values, pp. 397 */ [INFO] [stdout] | |_______________________________________________________________________________________^ [INFO] [stdout] 33 | / let handle: JoinHandle<()> = thread::spawn(move || { [INFO] [stdout] 34 | | println!("Here's a vector: {:?}", v); [INFO] [stdout] 35 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** If we added move to the closure, we would move v into the closure’s environment, [INFO] [stdout] 38 | | and we could no longer call drop on it in the main thread, pp. 398 */ [INFO] [stdout] | |_____________________________________________________________________________^ [INFO] [stdout] 39 | // drop(v); // oh no! [INFO] [stdout] 40 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | / /** This won't compile, pp. 220 [INFO] [stdout] 65 | | let result; [INFO] [stdout] 66 | | { [INFO] [stdout] 67 | | let string2 = String::from("xyz"); [INFO] [stdout] ... | [INFO] [stdout] 70 | | println!("The longest string is {}", result); [INFO] [stdout] 71 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 72 | [INFO] [stdout] 73 | let string1 = String::from("abcd"); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | / /** Compile error. [INFO] [stdout] 61 | | The error shows this type “has infnite size.” [INFO] [stdout] 62 | | The reason is that we’ve defined List with a variant that is recursive: [INFO] [stdout] 63 | | it holds another value of itself directly. [INFO] [stdout] 64 | | As a result, Rust can’t figure out how much space it needs to store a List value. */ [INFO] [stdout] | |____________________________________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 68 | / let list: ListBox = Cons(1, [INFO] [stdout] 69 | | Box::new(Cons(2, [INFO] [stdout] 70 | | Box::new(Cons(3, [INFO] [stdout] 71 | | Box::new(Nil)))))); [INFO] [stdout] | |___________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / /** Following the Pointer to the Value with the Dereference Operator, pp. 354 [INFO] [stdout] 76 | | The variable x holds an i32 value, 5. [INFO] [stdout] 77 | | We set y equal to a reference to x. We can assert that x is equal to 5. [INFO] [stdout] 78 | | However, if we want to make an assertion about the value in y, [INFO] [stdout] 79 | | we have to use *y to follow the reference to the value it’s pointing to (hence dereference). [INFO] [stdout] 80 | | Once we dereference y, we have access to the integer value y is pointing to [INFO] [stdout] 81 | | that we can compare with 5, pp. 355 */ [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] 82 | let x = 5; [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | / /** [INFO] [stdout] 105 | | * Implicit Deref Coercions with Functions and Methods, pp. 359 */ [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 106 | // call the hello function with a string slice as an argument, pp. 359 [INFO] [stdout] 107 | hello("Rust1"); [INFO] [stdout] | -------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | / /** If Rust didn’t implement deref coercion, [INFO] [stdout] 116 | | we would have to write the code like below instead, [INFO] [stdout] 117 | | to call hello with a value of type &MyBox, pp. 359 [INFO] [stdout] 118 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 119 | let m = MyBox::new(String::from("Rust3")); [INFO] [stdout] | ------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / /** The (*m) dereferences the MyBox into a String . [INFO] [stdout] 121 | | Then the & and take a string slice of the String [INFO] [stdout] 122 | | that is equal to the whole string to match the signature of hello, pp. 360 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 123 | hello(&(*m)[..]); [INFO] [stdout] | ---------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `string1` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let string1 = String::from("long string is long"); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest_x` is never used [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Counter` is never constructed [INFO] [stdout] --> src/bin/chap13/6_create_own_iter_samples.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Counter { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/bin/chap13/6_create_own_iter_samples.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 5 | impl Counter { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 6 | fn new() -> Counter { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 15 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / /** The lack of infinite output indicates that this code didn’t create a reference cycle. [INFO] [stdout] 41 | | We can also tell this by looking at the values we get from calling Rc::strong_count and Rc::weak_count */ [INFO] [stdout] | |_________________________________________________________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** leaf starts out without a parent, so we create a new, empty Weak reference instance, pp. 386 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let leaf = Rc::new(Node { [INFO] [stdout] 18 | | value: 3, [INFO] [stdout] 19 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 20 | | children: RefCell::new(vec![]), [INFO] [stdout] 21 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | /** in an inner scope and examining strong and weak reference counts, pp. 388 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | / let leaf = Rc::new(Node { [INFO] [stdout] 48 | | value: 3, [INFO] [stdout] 49 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 50 | | children: RefCell::new(vec![]), [INFO] [stdout] 51 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value` and `children` are never read [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | struct Node { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | parent: RefCell>, [INFO] [stdout] 12 | children: RefCell>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `word` [INFO] [stdout] --> src/bin/chap4/7_string_slices.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let word = first_word(&s); // word will get the value 5 [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_word` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `addr1`, `addr2`, `addr3`, and `addr4` are never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Ipv4Addr { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 3 | // --snip-- [INFO] [stdout] 4 | addr1: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 5 | addr2: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | addr3: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | addr4: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv4Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `address` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 11 | struct Ipv6Addr { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 12 | // --snip-- [INFO] [stdout] 13 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv6Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | V4(Ipv4Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 | V4(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | V6(Ipv6Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 19 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `s2` is never read [INFO] [stdout] --> src/bin/chap4/1_variable_scope.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | let mut s2 = "hello world!"; [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: `f` [INFO] [stdout] --> src/bin/chap9/3_result_matching_samples.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let f = File::open("hello2.txt") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /** Mutex is smart pointer. [INFO] [stdout] 21 | | The call to lock returns a MutexGuard wrapped in a LockResult [INFO] [stdout] 22 | | that we handled with the call to unwrap. [INFO] [stdout] ... | [INFO] [stdout] 29 | | blocking the mutex from being used by other threads [INFO] [stdout] 30 | | because the lock release happens automatically, pp. 408 */ [INFO] [stdout] | |__________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / /** Sharing a Mutex Between Multiple Threads, pp. 408 */ [INFO] [stdout] 35 | | /** Compile Error [INFO] [stdout] 36 | | The error message states that the counter value was moved [INFO] [stdout] 37 | | in the previous iteration of the loop. [INFO] [stdout] ... | [INFO] [stdout] 56 | |/ /** [INFO] [stdout] 57 | || let counter = Rc::clone(&counter); [INFO] [stdout] 58 | || [INFO] [stdout] 59 | || let mut handles = vec![]; [INFO] [stdout] ... || [INFO] [stdout] 71 | || println!("Result: {}", *counter.lock().unwrap()); [INFO] [stdout] 72 | || */ [INFO] [stdout] | ||______^ [INFO] [stdout] | |______| [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | / /** To access the data inside the mutex, we use the method to acquire the lock. [INFO] [stdout] 11 | | This call will block the current thread so it can’t do any work [INFO] [stdout] 12 | | until it’s our turn to have the lock. [INFO] [stdout] ... | [INFO] [stdout] 15 | | In that case, no one would ever be able to get the lock, [INFO] [stdout] 16 | | so we’ve chosen to unwrap and have this thread panic in that situation, pp. 407 */ [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] 17 | let mut num: MutexGuard = m.lock().unwrap(); [INFO] [stdout] | ------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / /** The send function takes ownership of its parameter, [INFO] [stdout] 12 | | and when the value is moved, the receiver takes ownership of it. [INFO] [stdout] 13 | | This stops us from accidentally using the value again after sending it; [INFO] [stdout] 14 | | the ownership system checks that everything is okay, pp. 402 */ [INFO] [stdout] | |___________________________________________________________________________^ [INFO] [stdout] 15 | tx.send(val).unwrap(); [INFO] [stdout] | --------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / /** recv , short for receive, which will block the main thread’s execution and [INFO] [stdout] 23 | | wait until a value is sent down the channel. [INFO] [stdout] 24 | | Once a value is sent, recv will return it in a Result. [INFO] [stdout] 25 | | When the sending end of the channel closes, [INFO] [stdout] 26 | | recv will return an error to signal that no more values will be coming, pp. 401 */ [INFO] [stdout] | |__________________________________________________________________________________________^ [INFO] [stdout] 27 | let received = rx.recv().unwrap(); [INFO] [stdout] | ---------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / /** The spawned thread will now send multiple messages [INFO] [stdout] 34 | | and pause for a second between each message, pp. 403 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 35 | / thread::spawn(move || { [INFO] [stdout] 36 | | let vals = vec![ [INFO] [stdout] 37 | | String::from("hi"), [INFO] [stdout] 38 | | String::from("from"), [INFO] [stdout] ... | [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / /** We iterate over them, sending each individually, [INFO] [stdout] 43 | | and pause between each by calling the thread::sleep function [INFO] [stdout] 44 | | with a Duration value of 1 second */ [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] 45 | / for val in vals { [INFO] [stdout] 46 | | tx.send(val).unwrap(); [INFO] [stdout] 47 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / /** Treating rx as an iterator [INFO] [stdout] 52 | | For each value received, we’re printing it. [INFO] [stdout] 53 | | When the channel is closed, iteration will end. */ [INFO] [stdout] | |__________________________________________________________^ [INFO] [stdout] 54 | / for received in rx { [INFO] [stdout] 55 | | println!("Got: {}", received); [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / /** Use mpsc to create multiple threads that all send values to the same receiver. [INFO] [stdout] 62 | | We can do so by cloning the transmitting half of the channel */ [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] 63 | let tx1 = mpsc::Sender::clone(&tx); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/2_thread_samples.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / /** Calling join on the handle blocks the thread currently running [INFO] [stdout] 19 | | until the thread represented by the handle terminates. [INFO] [stdout] 20 | | Blocking a thread means that thread is prevented from performing work or exiting. [INFO] [stdout] ... | [INFO] [stdout] 23 | | but the main thread waits because of the call to handle.join() and [INFO] [stdout] 24 | | does not end until the spawned thread is nished., pp. 393 */ [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] 25 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap8/3_vec_iter.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | Int(i32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 26 | Int(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap8/3_vec_iter.rs:27:15 [INFO] [stdout] | [INFO] [stdout] 27 | Float(f64), [INFO] [stdout] | ----- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 27 | Float(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap8/3_vec_iter.rs:28:14 [INFO] [stdout] | [INFO] [stdout] 28 | Text(String), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 28 | Text(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | / /** [INFO] [stdout] 7 | | * you can have only one mutable reference [INFO] [stdout] 8 | | * to a particular piece of data in a particular scope [INFO] [stdout] 9 | | * [INFO] [stdout] 10 | | * Code below will fail [INFO] [stdout] 11 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r1` [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | let r1 = &mut s; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_r1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut s = String::from("hello"); [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: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/3_thread_samples.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / /** The main thread will wait for the spawned thread to finish and [INFO] [stdout] 14 | | then run its for loop, so the output won’t be interleaved anymore, pp. 394 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 15 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let d = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn read_username_from_file() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file2` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn read_username_from_file2() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file3` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn read_username_from_file3() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `some_string` [INFO] [stdout] --> src/bin/chap4/4_reference_borrowing.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | fn change_immut(some_string: &String) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `y` is never read [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 3 | x: T, [INFO] [stdout] 4 | y: T, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `distance_from_origin` is never used [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl Point { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 12 | fn distance_from_origin(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | V4(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 3 | V4(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | V6(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 4 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | V4(u8, u8, u8, u8), [INFO] [stdout] | -- ^^ ^^ ^^ ^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | V4((), (), (), ()), [INFO] [stdout] | ~~ ~~ ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | V6(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 10 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/bin/chap9/2_result_recoverable_samples.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.35s [INFO] running `Command { std: "docker" "inspect" "f38a3f842117b48dc5e17815b83a4ea1f005277aa6c98052cfc8ea33fca4ce83", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f38a3f842117b48dc5e17815b83a4ea1f005277aa6c98052cfc8ea33fca4ce83", kill_on_drop: false }` [INFO] [stdout] f38a3f842117b48dc5e17815b83a4ea1f005277aa6c98052cfc8ea33fca4ce83 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d089818be486c01a7c5e47d492c224045966342bb8ec56f453b55d11da20c7d9 [INFO] running `Command { std: "docker" "start" "-a" "d089818be486c01a7c5e47d492c224045966342bb8ec56f453b55d11da20c7d9", kill_on_drop: false }` [INFO] [stdout] warning: unused variable: `order1` [INFO] [stdout] --> src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | let order1 = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order2` [INFO] [stdout] --> src/lib.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let order2 = back_of_house::Appetizer::Salad; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/lib.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `seat_at_table` is never used [INFO] [stdout] --> src/front_of_house/hosting.rs:2:4 [INFO] [stdout] | [INFO] [stdout] 2 | fn seat_at_table() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_order` is never used [INFO] [stdout] --> src/front_of_house.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | fn take_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/front_of_house.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_payment` is never used [INFO] [stdout] --> src/front_of_house.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | fn take_payment() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `seasonal_fruit` is never read [INFO] [stdout] --> src/lib.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Breakfast { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 20 | pub toast: String, [INFO] [stdout] 21 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling rust_prog_lang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `cook_order` is never used [INFO] [stdout] --> src/lib.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fix_incorrect_order` is never used [INFO] [stdout] --> src/lib.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/2_vec_immut_ref.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut v = vec![1, 2, 3, 4, 5]; [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: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/bin/chap10/4_generic_trait_samples.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Pair { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 10 | fn new(x: T, y: T) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind` and `address` are never read [INFO] [stdout] --> src/bin/chap6/1_enum_sample.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | struct IpAddr { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | kind: IpAddrKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpAddr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/3_thread_samples.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / /** The main thread will wait for the spawned thread to finish and [INFO] [stdout] 14 | | then run its for loop, so the output won’t be interleaved anymore, pp. 394 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 15 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `List_Box` should have an upper camel case name [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:2:6 [INFO] [stdout] | [INFO] [stdout] 2 | enum List_Box { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ListBox` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / /** The Cons variants own the data they hold, so when we create the b list, [INFO] [stdout] 22 | | a is moved into b and b owns a. Then, when we try to use a again when creating c, [INFO] [stdout] 23 | | we’re not allowed to because a has been moved, pp. 366 [INFO] [stdout] 24 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** Box allows immutable or mutable borrows checked at compile time, pp. 370 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let a = List_Box::Cons(5, [INFO] [stdout] 18 | | Box::new(List_Box::Cons(10, [INFO] [stdout] 19 | | Box::new(List_Box::Nil)))); [INFO] [stdout] | |______________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / /** pp 370 [INFO] [stdout] 30 | | - Rc ENABLES MULTIPLE OWNERS of the same data, [INFO] [stdout] 31 | | while Box and RefCell have single owners [INFO] [stdout] 32 | | - Rc allows only IMMUTABLE borrows checked at compile time [INFO] [stdout] 33 | | */ [INFO] [stdout] | |__________^ [INFO] [stdout] 34 | / let a: Rc = Rc::new(List::Cons(5, [INFO] [stdout] 35 | | Rc::new(List::Cons(10, [INFO] [stdout] 36 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** The implementation of Rc::clone doesn’t make a deep copy of all the data [INFO] [stdout] 38 | | like most types’ implementations of clone do. [INFO] [stdout] 39 | | The call to Rc::clone only increments the reference count, which doesn’t take much time. [INFO] [stdout] 40 | | Deep copies of data can take a lot of time, pp. 367 */ [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] 41 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | /** Printing the reference count, pp. 368 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | / let a = Rc::new(List::Cons(5, [INFO] [stdout] 50 | | Rc::new(List::Cons(10, [INFO] [stdout] 51 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let c = List::Cons(4, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 3 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | Cons(i32, Rc), [INFO] [stdout] | ---- ^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | / /** [INFO] [stdout] 7 | | * you can have only one mutable reference [INFO] [stdout] 8 | | * to a particular piece of data in a particular scope [INFO] [stdout] 9 | | * [INFO] [stdout] 10 | | * Code below will fail [INFO] [stdout] 11 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r1` [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | let r1 = &mut s; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_r1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut s = String::from("hello"); [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: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /** We create an Rc instance holding a List value in the variable a with an initial list of 5, Nil. */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | let a: Rc = Rc::new(Cons(5,RefCell::new(Rc::new(Nil)))); [INFO] [stdout] | -------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / /** We then create an Rc instance holding another List value in the variable b [INFO] [stdout] 37 | | that contains the value 10 and points to the list in a, pp. 381 */ [INFO] [stdout] | |__________________________________________________________________________^ [INFO] [stdout] 38 | let b: Rc = Rc::new(Cons(10,RefCell::new(Rc::clone(&a)))); [INFO] [stdout] | ---------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / /** We modify a so it points to b instead of Nil, creating a cycle. [INFO] [stdout] 44 | | We do that by using the tail method to get a reference to the RefCell>. [INFO] [stdout] 45 | | Then we use the borrow_mut method on the RefCell> to change the value inside from an Rc [INFO] [stdout] 46 | | that holds a Nil value to the Rc in b, pp. 381 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 47 | / if let Some(link) = a.tail() { [INFO] [stdout] 48 | | *link.borrow_mut() = Rc::clone(&b); [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | Cons(i32, RefCell>), [INFO] [stdout] | ---- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 16 | Cons((), RefCell>), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | V4(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 3 | V4(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | V6(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 4 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | V4(u8, u8, u8, u8), [INFO] [stdout] | -- ^^ ^^ ^^ ^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | V4((), (), (), ()), [INFO] [stdout] | ~~ ~~ ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | V6(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 10 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | / /** This won't compile, pp. 220 [INFO] [stdout] 65 | | let result; [INFO] [stdout] 66 | | { [INFO] [stdout] 67 | | let string2 = String::from("xyz"); [INFO] [stdout] ... | [INFO] [stdout] 70 | | println!("The longest string is {}", result); [INFO] [stdout] 71 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 72 | [INFO] [stdout] 73 | let string1 = String::from("abcd"); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `string1` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let string1 = String::from("long string is long"); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest_x` is never used [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let s = data.to_string(); [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] --> src/bin/chap8/4_string_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | let s = "initial contents".to_string(); [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] --> src/bin/chap8/4_string_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let s = String::from("initial contents"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let hello = String::from("السلام علیكم"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let hello = String::from("Dobrý den"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let hello = String::from("Hello"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let hello = String::from("Здравствуйте"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let hello = String::from("Hola"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [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: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `y` is never read [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 3 | x: T, [INFO] [stdout] 4 | y: T, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `distance_from_origin` is never used [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl Point { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 12 | fn distance_from_origin(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `some_string` [INFO] [stdout] --> src/bin/chap4/4_reference_borrowing.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | fn change_immut(some_string: &String) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Shoe` is never constructed [INFO] [stdout] --> src/bin/chap13/5_closure_iter_samples.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Shoe { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shoes_in_my_size` is never used [INFO] [stdout] --> src/bin/chap13/5_closure_iter_samples.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn shoes_in_my_size(shoes: Vec, shoe_size: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/2_thread_samples.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / /** Calling join on the handle blocks the thread currently running [INFO] [stdout] 19 | | until the thread represented by the handle terminates. [INFO] [stdout] 20 | | Blocking a thread means that thread is prevented from performing work or exiting. [INFO] [stdout] ... | [INFO] [stdout] 23 | | but the main thread waits because of the call to handle.join() and [INFO] [stdout] 24 | | does not end until the spawned thread is nished., pp. 393 */ [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] 25 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn read_username_from_file() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let d = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file2` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn read_username_from_file2() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file3` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn read_username_from_file3() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/3_thread_samples.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / /** The main thread will wait for the spawned thread to finish and [INFO] [stdout] 14 | | then run its for loop, so the output won’t be interleaved anymore, pp. 394 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 15 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `some_string` [INFO] [stdout] --> src/bin/chap4/4_reference_borrowing.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | fn change_immut(some_string: &String) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/bin/chap10/4_generic_trait_samples.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Pair { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 10 | fn new(x: T, y: T) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `y` is never read [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 3 | x: T, [INFO] [stdout] 4 | y: T, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `distance_from_origin` is never used [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl Point { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 12 | fn distance_from_origin(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `some_function` is never used [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | / /** Compile error. [INFO] [stdout] 61 | | The error shows this type “has infnite size.” [INFO] [stdout] 62 | | The reason is that we’ve defined List with a variant that is recursive: [INFO] [stdout] 63 | | it holds another value of itself directly. [INFO] [stdout] 64 | | As a result, Rust can’t figure out how much space it needs to store a List value. */ [INFO] [stdout] | |____________________________________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 68 | / let list: ListBox = Cons(1, [INFO] [stdout] 69 | | Box::new(Cons(2, [INFO] [stdout] 70 | | Box::new(Cons(3, [INFO] [stdout] 71 | | Box::new(Nil)))))); [INFO] [stdout] | |___________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / /** Following the Pointer to the Value with the Dereference Operator, pp. 354 [INFO] [stdout] 76 | | The variable x holds an i32 value, 5. [INFO] [stdout] 77 | | We set y equal to a reference to x. We can assert that x is equal to 5. [INFO] [stdout] 78 | | However, if we want to make an assertion about the value in y, [INFO] [stdout] 79 | | we have to use *y to follow the reference to the value it’s pointing to (hence dereference). [INFO] [stdout] 80 | | Once we dereference y, we have access to the integer value y is pointing to [INFO] [stdout] 81 | | that we can compare with 5, pp. 355 */ [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] 82 | let x = 5; [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | / /** [INFO] [stdout] 105 | | * Implicit Deref Coercions with Functions and Methods, pp. 359 */ [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 106 | // call the hello function with a string slice as an argument, pp. 359 [INFO] [stdout] 107 | hello("Rust1"); [INFO] [stdout] | -------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | / /** If Rust didn’t implement deref coercion, [INFO] [stdout] 116 | | we would have to write the code like below instead, [INFO] [stdout] 117 | | to call hello with a value of type &MyBox, pp. 359 [INFO] [stdout] 118 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 119 | let m = MyBox::new(String::from("Rust3")); [INFO] [stdout] | ------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / /** The (*m) dereferences the MyBox into a String . [INFO] [stdout] 121 | | Then the & and take a string slice of the String [INFO] [stdout] 122 | | that is equal to the whole string to match the signature of hello, pp. 360 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 123 | hello(&(*m)[..]); [INFO] [stdout] | ---------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 15 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / /** The send function takes ownership of its parameter, [INFO] [stdout] 12 | | and when the value is moved, the receiver takes ownership of it. [INFO] [stdout] 13 | | This stops us from accidentally using the value again after sending it; [INFO] [stdout] 14 | | the ownership system checks that everything is okay, pp. 402 */ [INFO] [stdout] | |___________________________________________________________________________^ [INFO] [stdout] 15 | tx.send(val).unwrap(); [INFO] [stdout] | --------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / /** recv , short for receive, which will block the main thread’s execution and [INFO] [stdout] 23 | | wait until a value is sent down the channel. [INFO] [stdout] 24 | | Once a value is sent, recv will return it in a Result. [INFO] [stdout] 25 | | When the sending end of the channel closes, [INFO] [stdout] 26 | | recv will return an error to signal that no more values will be coming, pp. 401 */ [INFO] [stdout] | |__________________________________________________________________________________________^ [INFO] [stdout] 27 | let received = rx.recv().unwrap(); [INFO] [stdout] | ---------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / /** The spawned thread will now send multiple messages [INFO] [stdout] 34 | | and pause for a second between each message, pp. 403 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 35 | / thread::spawn(move || { [INFO] [stdout] 36 | | let vals = vec![ [INFO] [stdout] 37 | | String::from("hi"), [INFO] [stdout] 38 | | String::from("from"), [INFO] [stdout] ... | [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / /** We iterate over them, sending each individually, [INFO] [stdout] 43 | | and pause between each by calling the thread::sleep function [INFO] [stdout] 44 | | with a Duration value of 1 second */ [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] 45 | / for val in vals { [INFO] [stdout] 46 | | tx.send(val).unwrap(); [INFO] [stdout] 47 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / /** Treating rx as an iterator [INFO] [stdout] 52 | | For each value received, we’re printing it. [INFO] [stdout] 53 | | When the channel is closed, iteration will end. */ [INFO] [stdout] | |__________________________________________________________^ [INFO] [stdout] 54 | / for received in rx { [INFO] [stdout] 55 | | println!("Got: {}", received); [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / /** Use mpsc to create multiple threads that all send values to the same receiver. [INFO] [stdout] 62 | | We can do so by cloning the transmitting half of the channel */ [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] 63 | let tx1 = mpsc::Sender::clone(&tx); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / /** The send function takes ownership of its parameter, [INFO] [stdout] 12 | | and when the value is moved, the receiver takes ownership of it. [INFO] [stdout] 13 | | This stops us from accidentally using the value again after sending it; [INFO] [stdout] 14 | | the ownership system checks that everything is okay, pp. 402 */ [INFO] [stdout] | |___________________________________________________________________________^ [INFO] [stdout] 15 | tx.send(val).unwrap(); [INFO] [stdout] | --------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / /** recv , short for receive, which will block the main thread’s execution and [INFO] [stdout] 23 | | wait until a value is sent down the channel. [INFO] [stdout] 24 | | Once a value is sent, recv will return it in a Result. [INFO] [stdout] 25 | | When the sending end of the channel closes, [INFO] [stdout] 26 | | recv will return an error to signal that no more values will be coming, pp. 401 */ [INFO] [stdout] | |__________________________________________________________________________________________^ [INFO] [stdout] 27 | let received = rx.recv().unwrap(); [INFO] [stdout] | ---------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / /** The spawned thread will now send multiple messages [INFO] [stdout] 34 | | and pause for a second between each message, pp. 403 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 35 | / thread::spawn(move || { [INFO] [stdout] 36 | | let vals = vec![ [INFO] [stdout] 37 | | String::from("hi"), [INFO] [stdout] 38 | | String::from("from"), [INFO] [stdout] ... | [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / /** We iterate over them, sending each individually, [INFO] [stdout] 43 | | and pause between each by calling the thread::sleep function [INFO] [stdout] 44 | | with a Duration value of 1 second */ [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] 45 | / for val in vals { [INFO] [stdout] 46 | | tx.send(val).unwrap(); [INFO] [stdout] 47 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / /** Treating rx as an iterator [INFO] [stdout] 52 | | For each value received, we’re printing it. [INFO] [stdout] 53 | | When the channel is closed, iteration will end. */ [INFO] [stdout] | |__________________________________________________________^ [INFO] [stdout] 54 | / for received in rx { [INFO] [stdout] 55 | | println!("Got: {}", received); [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / /** Use mpsc to create multiple threads that all send values to the same receiver. [INFO] [stdout] 62 | | We can do so by cloning the transmitting half of the channel */ [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] 63 | let tx1 = mpsc::Sender::clone(&tx); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `word` [INFO] [stdout] --> src/bin/chap4/7_string_slices.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let word = first_word(&s); // word will get the value 5 [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_word` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | / /** The closure uses v, so it will capture v and make it part of the closure’s environment. [INFO] [stdout] 10 | | Because thread::spawn runs this closure in a new thread, [INFO] [stdout] 11 | | we should be able to access v inside that new thread. */ [INFO] [stdout] 12 | | /** Compile ERROR [INFO] [stdout] ... | [INFO] [stdout] 31 | | we force the closure to take ownership of the values it’s using [INFO] [stdout] 32 | | rather than allowing Rust to infer that it should borrow the values, pp. 397 */ [INFO] [stdout] | |_______________________________________________________________________________________^ [INFO] [stdout] 33 | / let handle: JoinHandle<()> = thread::spawn(move || { [INFO] [stdout] 34 | | println!("Here's a vector: {:?}", v); [INFO] [stdout] 35 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** If we added move to the closure, we would move v into the closure’s environment, [INFO] [stdout] 38 | | and we could no longer call drop on it in the main thread, pp. 398 */ [INFO] [stdout] | |_____________________________________________________________________________^ [INFO] [stdout] 39 | // drop(v); // oh no! [INFO] [stdout] 40 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v1` [INFO] [stdout] --> src/bin/chap13/2_closure_samples.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | let v1 = c.value(1); let v2 = c.value(2); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_v1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / /** The lack of infinite output indicates that this code didn’t create a reference cycle. [INFO] [stdout] 41 | | We can also tell this by looking at the values we get from calling Rc::strong_count and Rc::weak_count */ [INFO] [stdout] | |_________________________________________________________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/bin/chap9/3_result_matching_samples.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let f = File::open("hello2.txt") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** leaf starts out without a parent, so we create a new, empty Weak reference instance, pp. 386 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let leaf = Rc::new(Node { [INFO] [stdout] 18 | | value: 3, [INFO] [stdout] 19 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 20 | | children: RefCell::new(vec![]), [INFO] [stdout] 21 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | /** in an inner scope and examining strong and weak reference counts, pp. 388 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | / let leaf = Rc::new(Node { [INFO] [stdout] 48 | | value: 3, [INFO] [stdout] 49 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 50 | | children: RefCell::new(vec![]), [INFO] [stdout] 51 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /** Mutex is smart pointer. [INFO] [stdout] 21 | | The call to lock returns a MutexGuard wrapped in a LockResult [INFO] [stdout] 22 | | that we handled with the call to unwrap. [INFO] [stdout] ... | [INFO] [stdout] 29 | | blocking the mutex from being used by other threads [INFO] [stdout] 30 | | because the lock release happens automatically, pp. 408 */ [INFO] [stdout] | |__________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / /** Sharing a Mutex Between Multiple Threads, pp. 408 */ [INFO] [stdout] 35 | | /** Compile Error [INFO] [stdout] 36 | | The error message states that the counter value was moved [INFO] [stdout] 37 | | in the previous iteration of the loop. [INFO] [stdout] ... | [INFO] [stdout] 56 | |/ /** [INFO] [stdout] 57 | || let counter = Rc::clone(&counter); [INFO] [stdout] 58 | || [INFO] [stdout] 59 | || let mut handles = vec![]; [INFO] [stdout] ... || [INFO] [stdout] 71 | || println!("Result: {}", *counter.lock().unwrap()); [INFO] [stdout] 72 | || */ [INFO] [stdout] | ||______^ [INFO] [stdout] | |______| [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | / /** To access the data inside the mutex, we use the method to acquire the lock. [INFO] [stdout] 11 | | This call will block the current thread so it can’t do any work [INFO] [stdout] 12 | | until it’s our turn to have the lock. [INFO] [stdout] ... | [INFO] [stdout] 15 | | In that case, no one would ever be able to get the lock, [INFO] [stdout] 16 | | so we’ve chosen to unwrap and have this thread panic in that situation, pp. 407 */ [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] 17 | let mut num: MutexGuard = m.lock().unwrap(); [INFO] [stdout] | ------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | / /** This won't compile, pp. 220 [INFO] [stdout] 65 | | let result; [INFO] [stdout] 66 | | { [INFO] [stdout] 67 | | let string2 = String::from("xyz"); [INFO] [stdout] ... | [INFO] [stdout] 70 | | println!("The longest string is {}", result); [INFO] [stdout] 71 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 72 | [INFO] [stdout] 73 | let string1 = String::from("abcd"); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /** Mutex is smart pointer. [INFO] [stdout] 21 | | The call to lock returns a MutexGuard wrapped in a LockResult [INFO] [stdout] 22 | | that we handled with the call to unwrap. [INFO] [stdout] ... | [INFO] [stdout] 29 | | blocking the mutex from being used by other threads [INFO] [stdout] 30 | | because the lock release happens automatically, pp. 408 */ [INFO] [stdout] | |__________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / /** Sharing a Mutex Between Multiple Threads, pp. 408 */ [INFO] [stdout] 35 | | /** Compile Error [INFO] [stdout] 36 | | The error message states that the counter value was moved [INFO] [stdout] 37 | | in the previous iteration of the loop. [INFO] [stdout] ... | [INFO] [stdout] 56 | |/ /** [INFO] [stdout] 57 | || let counter = Rc::clone(&counter); [INFO] [stdout] 58 | || [INFO] [stdout] 59 | || let mut handles = vec![]; [INFO] [stdout] ... || [INFO] [stdout] 71 | || println!("Result: {}", *counter.lock().unwrap()); [INFO] [stdout] 72 | || */ [INFO] [stdout] | ||______^ [INFO] [stdout] | |______| [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `string1` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let string1 = String::from("long string is long"); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value` and `children` are never read [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | struct Node { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | parent: RefCell>, [INFO] [stdout] 12 | children: RefCell>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | / /** To access the data inside the mutex, we use the method to acquire the lock. [INFO] [stdout] 11 | | This call will block the current thread so it can’t do any work [INFO] [stdout] 12 | | until it’s our turn to have the lock. [INFO] [stdout] ... | [INFO] [stdout] 15 | | In that case, no one would ever be able to get the lock, [INFO] [stdout] 16 | | so we’ve chosen to unwrap and have this thread panic in that situation, pp. 407 */ [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] 17 | let mut num: MutexGuard = m.lock().unwrap(); [INFO] [stdout] | ------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/5_rc_refcell_samples.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | Cons(Rc>, Rc), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 8 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / /** The lack of infinite output indicates that this code didn’t create a reference cycle. [INFO] [stdout] 41 | | We can also tell this by looking at the values we get from calling Rc::strong_count and Rc::weak_count */ [INFO] [stdout] | |_________________________________________________________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** leaf starts out without a parent, so we create a new, empty Weak reference instance, pp. 386 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let leaf = Rc::new(Node { [INFO] [stdout] 18 | | value: 3, [INFO] [stdout] 19 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 20 | | children: RefCell::new(vec![]), [INFO] [stdout] 21 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | /** in an inner scope and examining strong and weak reference counts, pp. 388 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | / let leaf = Rc::new(Node { [INFO] [stdout] 48 | | value: 3, [INFO] [stdout] 49 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 50 | | children: RefCell::new(vec![]), [INFO] [stdout] 51 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value` and `children` are never read [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | struct Node { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | parent: RefCell>, [INFO] [stdout] 12 | children: RefCell>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/bin/chap9/3_result_matching_samples.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let f = File::open("hello2.txt") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest_x` is never used [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/2_vec_immut_ref.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut v = vec![1, 2, 3, 4, 5]; [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: `f` [INFO] [stdout] --> src/bin/chap9/2_result_recoverable_samples.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | / /** [INFO] [stdout] 7 | | * you can have only one mutable reference [INFO] [stdout] 8 | | * to a particular piece of data in a particular scope [INFO] [stdout] 9 | | * [INFO] [stdout] 10 | | * Code below will fail [INFO] [stdout] 11 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r1` [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | let r1 = &mut s; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_r1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut s = String::from("hello"); [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: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Counter` is never constructed [INFO] [stdout] --> src/bin/chap13/6_create_own_iter_samples.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Counter { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/bin/chap13/6_create_own_iter_samples.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 5 | impl Counter { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 6 | fn new() -> Counter { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn greeting2(name: &str) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Guess { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 14 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `newB` should have a snake case name [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn newB(value: i32) -> Guess { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `new_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/bin/chap9/2_result_recoverable_samples.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `some_function` is never used [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `word` [INFO] [stdout] --> src/bin/chap4/7_string_slices.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let word = first_word(&s); // word will get the value 5 [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_word` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | V4(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 3 | V4(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | V6(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 4 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | V4(u8, u8, u8, u8), [INFO] [stdout] | -- ^^ ^^ ^^ ^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | V4((), (), (), ()), [INFO] [stdout] | ~~ ~~ ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | V6(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 10 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let s = data.to_string(); [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] --> src/bin/chap8/4_string_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | let s = "initial contents".to_string(); [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] --> src/bin/chap8/4_string_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let s = String::from("initial contents"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/2_thread_samples.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / /** Calling join on the handle blocks the thread currently running [INFO] [stdout] 19 | | until the thread represented by the handle terminates. [INFO] [stdout] 20 | | Blocking a thread means that thread is prevented from performing work or exiting. [INFO] [stdout] ... | [INFO] [stdout] 23 | | but the main thread waits because of the call to handle.join() and [INFO] [stdout] 24 | | does not end until the spawned thread is nished., pp. 393 */ [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] 25 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let hello = String::from("السلام علیكم"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let hello = String::from("Dobrý den"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let hello = String::from("Hello"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let hello = String::from("Здравствуйте"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let hello = String::from("Hola"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `addr1`, `addr2`, `addr3`, and `addr4` are never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Ipv4Addr { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 3 | // --snip-- [INFO] [stdout] 4 | addr1: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 5 | addr2: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | addr3: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | addr4: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv4Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `address` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 11 | struct Ipv6Addr { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 12 | // --snip-- [INFO] [stdout] 13 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv6Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | V4(Ipv4Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 | V4(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | / /** Compile error. [INFO] [stdout] 61 | | The error shows this type “has infnite size.” [INFO] [stdout] 62 | | The reason is that we’ve defined List with a variant that is recursive: [INFO] [stdout] 63 | | it holds another value of itself directly. [INFO] [stdout] 64 | | As a result, Rust can’t figure out how much space it needs to store a List value. */ [INFO] [stdout] | |____________________________________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 68 | / let list: ListBox = Cons(1, [INFO] [stdout] 69 | | Box::new(Cons(2, [INFO] [stdout] 70 | | Box::new(Cons(3, [INFO] [stdout] 71 | | Box::new(Nil)))))); [INFO] [stdout] | |___________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | V6(Ipv6Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 19 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / /** Following the Pointer to the Value with the Dereference Operator, pp. 354 [INFO] [stdout] 76 | | The variable x holds an i32 value, 5. [INFO] [stdout] 77 | | We set y equal to a reference to x. We can assert that x is equal to 5. [INFO] [stdout] 78 | | However, if we want to make an assertion about the value in y, [INFO] [stdout] 79 | | we have to use *y to follow the reference to the value it’s pointing to (hence dereference). [INFO] [stdout] 80 | | Once we dereference y, we have access to the integer value y is pointing to [INFO] [stdout] 81 | | that we can compare with 5, pp. 355 */ [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] 82 | let x = 5; [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | / /** [INFO] [stdout] 105 | | * Implicit Deref Coercions with Functions and Methods, pp. 359 */ [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 106 | // call the hello function with a string slice as an argument, pp. 359 [INFO] [stdout] 107 | hello("Rust1"); [INFO] [stdout] | -------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | / /** If Rust didn’t implement deref coercion, [INFO] [stdout] 116 | | we would have to write the code like below instead, [INFO] [stdout] 117 | | to call hello with a value of type &MyBox, pp. 359 [INFO] [stdout] 118 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 119 | let m = MyBox::new(String::from("Rust3")); [INFO] [stdout] | ------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / /** The (*m) dereferences the MyBox into a String . [INFO] [stdout] 121 | | Then the & and take a string slice of the String [INFO] [stdout] 122 | | that is equal to the whole string to match the signature of hello, pp. 360 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 123 | hello(&(*m)[..]); [INFO] [stdout] | ---------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [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: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/5_rc_refcell_samples.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | Cons(Rc>, Rc), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 8 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `s2` is never read [INFO] [stdout] --> src/bin/chap4/1_variable_scope.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | let mut s2 = "hello world!"; [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: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 15 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind` and `address` are never read [INFO] [stdout] --> src/bin/chap6/1_enum_sample.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | struct IpAddr { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | kind: IpAddrKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpAddr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `addr1`, `addr2`, `addr3`, and `addr4` are never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Ipv4Addr { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 3 | // --snip-- [INFO] [stdout] 4 | addr1: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 5 | addr2: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | addr3: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | addr4: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv4Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `address` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 11 | struct Ipv6Addr { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 12 | // --snip-- [INFO] [stdout] 13 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv6Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | V4(Ipv4Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 | V4(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | V6(Ipv6Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 19 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `list` [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_list` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `largest_not_work` is never used [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap8/3_vec_iter.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | Int(i32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 26 | Int(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap8/3_vec_iter.rs:27:15 [INFO] [stdout] | [INFO] [stdout] 27 | Float(f64), [INFO] [stdout] | ----- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 27 | Float(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap8/3_vec_iter.rs:28:14 [INFO] [stdout] | [INFO] [stdout] 28 | Text(String), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 28 | Text(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let d = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `s2` is never read [INFO] [stdout] --> src/bin/chap4/1_variable_scope.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | let mut s2 = "hello world!"; [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: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | / /** The closure uses v, so it will capture v and make it part of the closure’s environment. [INFO] [stdout] 10 | | Because thread::spawn runs this closure in a new thread, [INFO] [stdout] 11 | | we should be able to access v inside that new thread. */ [INFO] [stdout] 12 | | /** Compile ERROR [INFO] [stdout] ... | [INFO] [stdout] 31 | | we force the closure to take ownership of the values it’s using [INFO] [stdout] 32 | | rather than allowing Rust to infer that it should borrow the values, pp. 397 */ [INFO] [stdout] | |_______________________________________________________________________________________^ [INFO] [stdout] 33 | / let handle: JoinHandle<()> = thread::spawn(move || { [INFO] [stdout] 34 | | println!("Here's a vector: {:?}", v); [INFO] [stdout] 35 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** If we added move to the closure, we would move v into the closure’s environment, [INFO] [stdout] 38 | | and we could no longer call drop on it in the main thread, pp. 398 */ [INFO] [stdout] | |_____________________________________________________________________________^ [INFO] [stdout] 39 | // drop(v); // oh no! [INFO] [stdout] 40 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/4_refcell_samples.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | / /** We can’t modify the to keep track of the messages, [INFO] [stdout] 77 | | because the send method takes an immutable reference to self, pp. 374. */ [INFO] [stdout] 78 | | // self.sent_messages.push(String::from(message)); [INFO] [stdout] ... | [INFO] [stdout] 82 | | Then we can call push on the mutable reference to the vector [INFO] [stdout] 83 | | to keep track of the messages sent during the test, pp. 375 */ [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] 84 | let mut one_borrow: RefMut> = self.sent_messages.borrow_mut(); [INFO] [stdout] | -------------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn read_username_from_file() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file2` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn read_username_from_file2() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file3` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn read_username_from_file3() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /** We create an Rc instance holding a List value in the variable a with an initial list of 5, Nil. */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | let a: Rc = Rc::new(Cons(5,RefCell::new(Rc::new(Nil)))); [INFO] [stdout] | -------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / /** We then create an Rc instance holding another List value in the variable b [INFO] [stdout] 37 | | that contains the value 10 and points to the list in a, pp. 381 */ [INFO] [stdout] | |__________________________________________________________________________^ [INFO] [stdout] 38 | let b: Rc = Rc::new(Cons(10,RefCell::new(Rc::clone(&a)))); [INFO] [stdout] | ---------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / /** We modify a so it points to b instead of Nil, creating a cycle. [INFO] [stdout] 44 | | We do that by using the tail method to get a reference to the RefCell>. [INFO] [stdout] 45 | | Then we use the borrow_mut method on the RefCell> to change the value inside from an Rc [INFO] [stdout] 46 | | that holds a Nil value to the Rc in b, pp. 381 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 47 | / if let Some(link) = a.tail() { [INFO] [stdout] 48 | | *link.borrow_mut() = Rc::clone(&b); [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn greeting2(name: &str) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Guess { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 14 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `newB` should have a snake case name [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn newB(value: i32) -> Guess { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `new_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `greater_than_100B` should have a snake case name [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | fn greater_than_100B() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `greater_than_100_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `List_Box` should have an upper camel case name [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:2:6 [INFO] [stdout] | [INFO] [stdout] 2 | enum List_Box { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ListBox` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / /** The Cons variants own the data they hold, so when we create the b list, [INFO] [stdout] 22 | | a is moved into b and b owns a. Then, when we try to use a again when creating c, [INFO] [stdout] 23 | | we’re not allowed to because a has been moved, pp. 366 [INFO] [stdout] 24 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | Cons(i32, RefCell>), [INFO] [stdout] | ---- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 16 | Cons((), RefCell>), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** Box allows immutable or mutable borrows checked at compile time, pp. 370 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let a = List_Box::Cons(5, [INFO] [stdout] 18 | | Box::new(List_Box::Cons(10, [INFO] [stdout] 19 | | Box::new(List_Box::Nil)))); [INFO] [stdout] | |______________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / /** pp 370 [INFO] [stdout] 30 | | - Rc ENABLES MULTIPLE OWNERS of the same data, [INFO] [stdout] 31 | | while Box and RefCell have single owners [INFO] [stdout] 32 | | - Rc allows only IMMUTABLE borrows checked at compile time [INFO] [stdout] 33 | | */ [INFO] [stdout] | |__________^ [INFO] [stdout] 34 | / let a: Rc = Rc::new(List::Cons(5, [INFO] [stdout] 35 | | Rc::new(List::Cons(10, [INFO] [stdout] 36 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** The implementation of Rc::clone doesn’t make a deep copy of all the data [INFO] [stdout] 38 | | like most types’ implementations of clone do. [INFO] [stdout] 39 | | The call to Rc::clone only increments the reference count, which doesn’t take much time. [INFO] [stdout] 40 | | Deep copies of data can take a lot of time, pp. 367 */ [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] 41 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | /** Printing the reference count, pp. 368 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | / let a = Rc::new(List::Cons(5, [INFO] [stdout] 50 | | Rc::new(List::Cons(10, [INFO] [stdout] 51 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let c = List::Cons(4, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 3 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | Cons(i32, Rc), [INFO] [stdout] | ---- ^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `list` [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_list` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `largest_not_work` is never used [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order1` [INFO] [stdout] --> src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | let order1 = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order2` [INFO] [stdout] --> src/lib.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let order2 = back_of_house::Appetizer::Salad; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/lib.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `seat_at_table` is never used [INFO] [stdout] --> src/front_of_house/hosting.rs:2:4 [INFO] [stdout] | [INFO] [stdout] 2 | fn seat_at_table() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_order` is never used [INFO] [stdout] --> src/front_of_house.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | fn take_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/front_of_house.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_payment` is never used [INFO] [stdout] --> src/front_of_house.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | fn take_payment() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `seasonal_fruit` is never read [INFO] [stdout] --> src/lib.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Breakfast { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 20 | pub toast: String, [INFO] [stdout] 21 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cook_order` is never used [INFO] [stdout] --> src/lib.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fix_incorrect_order` is never used [INFO] [stdout] --> src/lib.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.81s [INFO] running `Command { std: "docker" "inspect" "d089818be486c01a7c5e47d492c224045966342bb8ec56f453b55d11da20c7d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d089818be486c01a7c5e47d492c224045966342bb8ec56f453b55d11da20c7d9", kill_on_drop: false }` [INFO] [stdout] d089818be486c01a7c5e47d492c224045966342bb8ec56f453b55d11da20c7d9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3d2ccfe6e0dff1639d8ab658a846bb2111960800b424fbde54c66e18da1da34f [INFO] running `Command { std: "docker" "start" "-a" "3d2ccfe6e0dff1639d8ab658a846bb2111960800b424fbde54c66e18da1da34f", kill_on_drop: false }` [INFO] [stderr] warning: unused variable: `order1` [INFO] [stderr] --> src/lib.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | let order1 = back_of_house::Appetizer::Soup; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `order2` [INFO] [stderr] --> src/lib.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | let order2 = back_of_house::Appetizer::Salad; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stderr] [INFO] [stderr] warning: function `serve_order` is never used [INFO] [stderr] --> src/lib.rs:16:4 [INFO] [stderr] | [INFO] [stderr] 16 | fn serve_order() {} [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `seat_at_table` is never used [INFO] [stderr] --> src/front_of_house/hosting.rs:2:4 [INFO] [stderr] | [INFO] [stderr] 2 | fn seat_at_table() {} [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `take_order` is never used [INFO] [stderr] --> src/front_of_house.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | fn take_order() {} [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `serve_order` is never used [INFO] [stderr] --> src/front_of_house.rs:5:8 [INFO] [stderr] | [INFO] [stderr] 5 | fn serve_order() {} [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `take_payment` is never used [INFO] [stderr] --> src/front_of_house.rs:6:8 [INFO] [stderr] | [INFO] [stderr] 6 | fn take_payment() {} [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `seasonal_fruit` is never read [INFO] [stderr] --> src/lib.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct Breakfast { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] 20 | pub toast: String, [INFO] [stderr] 21 | seasonal_fruit: String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `cook_order` is never used [INFO] [stderr] --> src/lib.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 33 | fn cook_order() {} [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `fix_incorrect_order` is never used [INFO] [stderr] --> src/lib.rs:34:8 [INFO] [stderr] | [INFO] [stderr] 34 | fn fix_incorrect_order() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `rust_prog_lang` (lib) generated 10 warnings [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/bin/chap16/6_mutex_samples.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/6_mutex_samples.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / /** Mutex is smart pointer. [INFO] [stderr] 21 | | The call to lock returns a MutexGuard wrapped in a LockResult [INFO] [stderr] 22 | | that we handled with the call to unwrap. [INFO] [stderr] ... | [INFO] [stderr] 29 | | blocking the mutex from being used by other threads [INFO] [stderr] 30 | | because the lock release happens automatically, pp. 408 */ [INFO] [stderr] | |__________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stderr] | [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/6_mutex_samples.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | / /** Sharing a Mutex Between Multiple Threads, pp. 408 */ [INFO] [stderr] 35 | | /** Compile Error [INFO] [stderr] 36 | | The error message states that the counter value was moved [INFO] [stderr] 37 | | in the previous iteration of the loop. [INFO] [stderr] ... | [INFO] [stderr] 56 | |/ /** [INFO] [stderr] 57 | || let counter = Rc::clone(&counter); [INFO] [stderr] 58 | || [INFO] [stderr] 59 | || let mut handles = vec![]; [INFO] [stderr] ... || [INFO] [stderr] 71 | || println!("Result: {}", *counter.lock().unwrap()); [INFO] [stderr] 72 | || */ [INFO] [stderr] | ||______^ [INFO] [stderr] | |______| [INFO] [stderr] | rustdoc does not generate documentation for macro invocations [INFO] [stderr] | [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/6_mutex_samples.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | / /** To access the data inside the mutex, we use the method to acquire the lock. [INFO] [stderr] 11 | | This call will block the current thread so it can’t do any work [INFO] [stderr] 12 | | until it’s our turn to have the lock. [INFO] [stderr] ... | [INFO] [stderr] 15 | | In that case, no one would ever be able to get the lock, [INFO] [stderr] 16 | | so we’ve chosen to unwrap and have this thread panic in that situation, pp. 407 */ [INFO] [stderr] | |______________________________________________________________________________________________^ [INFO] [stderr] 17 | let mut num: MutexGuard = m.lock().unwrap(); [INFO] [stderr] | ------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/bin/chap10/2_trait_samples.rs:57:24 [INFO] [stderr] | [INFO] [stderr] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `u` [INFO] [stderr] --> src/bin/chap10/2_trait_samples.rs:57:31 [INFO] [stderr] | [INFO] [stderr] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stderr] [INFO] [stderr] warning: function `some_function` is never used [INFO] [stderr] --> src/bin/chap10/2_trait_samples.rs:57:4 [INFO] [stderr] | [INFO] [stderr] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `rust_prog_lang` (bin "6_mutex_samples" test) generated 4 warnings (run `cargo fix --bin "6_mutex_samples" --tests` to apply 1 suggestion) [INFO] [stderr] warning: `rust_prog_lang` (bin "2_trait_samples") generated 3 warnings [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/bin/chap8/3_vec_iter.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | Int(i32), [INFO] [stderr] | --- ^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 26 | Int(()), [INFO] [stderr] | ~~ [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/bin/chap8/3_vec_iter.rs:27:15 [INFO] [stderr] | [INFO] [stderr] 27 | Float(f64), [INFO] [stderr] | ----- ^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 27 | Float(()), [INFO] [stderr] | ~~ [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/bin/chap8/3_vec_iter.rs:28:14 [INFO] [stderr] | [INFO] [stderr] 28 | Text(String), [INFO] [stderr] | ---- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 28 | Text(()), [INFO] [stderr] | ~~ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:3:13 [INFO] [stderr] | [INFO] [stderr] 3 | let mut s = String::new(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 6 | let s = data.to_string(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | let s = "initial contents".to_string(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | let s = String::from("initial contents"); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hello` [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | let hello = String::from("السلام علیكم"); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hello` [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | let hello = String::from("Dobrý den"); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hello` [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | let hello = String::from("Hello"); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hello` [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | let hello = String::from("Здравствуйте"); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hello` [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | let hello = String::from("Hola"); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/bin/chap8/4_string_samples.rs:3:9 [INFO] [stderr] | [INFO] [stderr] 3 | let mut s = String::new(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `s2` is never read [INFO] [stderr] --> src/bin/chap4/1_variable_scope.rs:7:13 [INFO] [stderr] | [INFO] [stderr] 7 | let mut s2 = "hello world!"; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v1` [INFO] [stderr] --> src/bin/chap13/2_closure_samples.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | let v1 = c.value(1); let v2 = c.value(2); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_v1` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `read_username_from_file` is never used [INFO] [stderr] --> src/bin/chap9/4_propagating_error.rs:12:4 [INFO] [stderr] | [INFO] [stderr] 12 | fn read_username_from_file() -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `read_username_from_file2` is never used [INFO] [stderr] --> src/bin/chap9/4_propagating_error.rs:29:4 [INFO] [stderr] | [INFO] [stderr] 29 | fn read_username_from_file2() -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `read_username_from_file3` is never used [INFO] [stderr] --> src/bin/chap9/4_propagating_error.rs:38:4 [INFO] [stderr] | [INFO] [stderr] 38 | fn read_username_from_file3() -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/bin/chap8/2_vec_immut_ref.rs:4:9 [INFO] [stderr] | [INFO] [stderr] 4 | let mut v = vec![1, 2, 3, 4, 5]; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type `List_Box` should have an upper camel case name [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:2:6 [INFO] [stderr] | [INFO] [stderr] 2 | enum List_Box { [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to upper camel case: `ListBox` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / /** The Cons variants own the data they hold, so when we create the b list, [INFO] [stderr] 22 | | a is moved into b and b owns a. Then, when we try to use a again when creating c, [INFO] [stderr] 23 | | we’re not allowed to because a has been moved, pp. 366 [INFO] [stderr] 24 | | */ [INFO] [stderr] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stderr] | [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | /** Box allows immutable or mutable borrows checked at compile time, pp. 370 */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 17 | / let a = List_Box::Cons(5, [INFO] [stderr] 18 | | Box::new(List_Box::Cons(10, [INFO] [stderr] 19 | | Box::new(List_Box::Nil)))); [INFO] [stderr] | |______________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / /** pp 370 [INFO] [stderr] 30 | | - Rc ENABLES MULTIPLE OWNERS of the same data, [INFO] [stderr] 31 | | while Box and RefCell have single owners [INFO] [stderr] 32 | | - Rc allows only IMMUTABLE borrows checked at compile time [INFO] [stderr] 33 | | */ [INFO] [stderr] | |__________^ [INFO] [stderr] 34 | / let a: Rc = Rc::new(List::Cons(5, [INFO] [stderr] 35 | | Rc::new(List::Cons(10, [INFO] [stderr] 36 | | Rc::new(List::Nil))))); [INFO] [stderr] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / /** The implementation of Rc::clone doesn’t make a deep copy of all the data [INFO] [stderr] 38 | | like most types’ implementations of clone do. [INFO] [stderr] 39 | | The call to Rc::clone only increments the reference count, which doesn’t take much time. [INFO] [stderr] 40 | | Deep copies of data can take a lot of time, pp. 367 */ [INFO] [stderr] | |______________________________________________________________^ [INFO] [stderr] 41 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stderr] | ------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | /** Printing the reference count, pp. 368 */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 49 | / let a = Rc::new(List::Cons(5, [INFO] [stderr] 50 | | Rc::new(List::Cons(10, [INFO] [stderr] 51 | | Rc::new(List::Nil))))); [INFO] [stderr] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:53:9 [INFO] [stderr] | [INFO] [stderr] 53 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | let c = List::Cons(4, Rc::clone(&a)); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: fields `0` and `1` are never read [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:3:10 [INFO] [stderr] | [INFO] [stderr] 3 | Cons(i32, Box), [INFO] [stderr] | ---- ^^^ ^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this variant [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stderr] | [INFO] [stderr] 3 | Cons((), ()), [INFO] [stderr] | ~~ ~~ [INFO] [stderr] [INFO] [stderr] warning: fields `0` and `1` are never read [INFO] [stderr] --> src/bin/chap15/3_rc_samples.rs:9:10 [INFO] [stderr] | [INFO] [stderr] 9 | Cons(i32, Rc), [INFO] [stderr] | ---- ^^^ ^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stderr] | [INFO] [stderr] 9 | Cons((), ()), [INFO] [stderr] | ~~ ~~ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/bin/chap9/2_result_recoverable_samples.rs:5:9 [INFO] [stderr] | [INFO] [stderr] 5 | let f = match f { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/bin/chap9/3_result_matching_samples.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | let f = File::open("hello2.txt") [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `rust_prog_lang` (bin "3_vec_iter") generated 3 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "4_string_samples") generated 10 warnings (run `cargo fix --bin "4_string_samples"` to apply 1 suggestion) [INFO] [stderr] warning: `rust_prog_lang` (bin "1_variable_scope" test) generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "2_closure_samples" test) generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "4_propagating_error") generated 3 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "2_vec_immut_ref" test) generated 1 warning (run `cargo fix --bin "2_vec_immut_ref" --tests` to apply 1 suggestion) [INFO] [stderr] warning: `rust_prog_lang` (bin "1_variable_scope") generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (bin "3_rc_samples") generated 10 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "2_result_recoverable_samples") generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "3_result_matching_samples" test) generated 1 warning [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/6_ref_cycle_samples.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | /** We create an Rc instance holding a List value in the variable a with an initial list of 5, Nil. */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 32 | let a: Rc = Rc::new(Cons(5,RefCell::new(Rc::new(Nil)))); [INFO] [stderr] | -------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/6_ref_cycle_samples.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | / /** We then create an Rc instance holding another List value in the variable b [INFO] [stderr] 37 | | that contains the value 10 and points to the list in a, pp. 381 */ [INFO] [stderr] | |__________________________________________________________________________^ [INFO] [stderr] 38 | let b: Rc = Rc::new(Cons(10,RefCell::new(Rc::clone(&a)))); [INFO] [stderr] | ---------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/6_ref_cycle_samples.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / /** We modify a so it points to b instead of Nil, creating a cycle. [INFO] [stderr] 44 | | We do that by using the tail method to get a reference to the RefCell>. [INFO] [stderr] 45 | | Then we use the borrow_mut method on the RefCell> to change the value inside from an Rc [INFO] [stderr] 46 | | that holds a Nil value to the Rc in b, pp. 381 */ [INFO] [stderr] | |_______________________________________________________________^ [INFO] [stderr] 47 | / if let Some(link) = a.tail() { [INFO] [stderr] 48 | | *link.borrow_mut() = Rc::clone(&b); [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/bin/chap15/6_ref_cycle_samples.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | Cons(i32, RefCell>), [INFO] [stderr] | ---- ^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 16 | Cons((), RefCell>), [INFO] [stderr] | ~~ [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/1_box_samples.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / /** Compile error. [INFO] [stderr] 61 | | The error shows this type “has infnite size.” [INFO] [stderr] 62 | | The reason is that we’ve defined List with a variant that is recursive: [INFO] [stderr] 63 | | it holds another value of itself directly. [INFO] [stderr] 64 | | As a result, Rust can’t figure out how much space it needs to store a List value. */ [INFO] [stderr] | |____________________________________________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 68 | / let list: ListBox = Cons(1, [INFO] [stderr] 69 | | Box::new(Cons(2, [INFO] [stderr] 70 | | Box::new(Cons(3, [INFO] [stderr] 71 | | Box::new(Nil)))))); [INFO] [stderr] | |___________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/1_box_samples.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | / /** Following the Pointer to the Value with the Dereference Operator, pp. 354 [INFO] [stderr] 76 | | The variable x holds an i32 value, 5. [INFO] [stderr] 77 | | We set y equal to a reference to x. We can assert that x is equal to 5. [INFO] [stderr] 78 | | However, if we want to make an assertion about the value in y, [INFO] [stderr] 79 | | we have to use *y to follow the reference to the value it’s pointing to (hence dereference). [INFO] [stderr] 80 | | Once we dereference y, we have access to the integer value y is pointing to [INFO] [stderr] 81 | | that we can compare with 5, pp. 355 */ [INFO] [stderr] | |______________________________________________^ [INFO] [stderr] 82 | let x = 5; [INFO] [stderr] | ---------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/1_box_samples.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | / /** [INFO] [stderr] 105 | | * Implicit Deref Coercions with Functions and Methods, pp. 359 */ [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] 106 | // call the hello function with a string slice as an argument, pp. 359 [INFO] [stderr] 107 | hello("Rust1"); [INFO] [stderr] | -------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/1_box_samples.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | / /** If Rust didn’t implement deref coercion, [INFO] [stderr] 116 | | we would have to write the code like below instead, [INFO] [stderr] 117 | | to call hello with a value of type &MyBox, pp. 359 [INFO] [stderr] 118 | | */ [INFO] [stderr] | |______^ [INFO] [stderr] 119 | let m = MyBox::new(String::from("Rust3")); [INFO] [stderr] | ------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/1_box_samples.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | / /** The (*m) dereferences the MyBox into a String . [INFO] [stderr] 121 | | Then the & and take a string slice of the String [INFO] [stderr] 122 | | that is equal to the whole string to match the signature of hello, pp. 360 */ [INFO] [stderr] | |_____________________________________________________________________________________^ [INFO] [stderr] 123 | hello(&(*m)[..]); [INFO] [stderr] | ---------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: fields `0` and `1` are never read [INFO] [stderr] --> src/bin/chap15/1_box_samples.rs:15:10 [INFO] [stderr] | [INFO] [stderr] 15 | Cons(i32, Box), [INFO] [stderr] | ---- ^^^ ^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this variant [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stderr] | [INFO] [stderr] 15 | Cons((), ()), [INFO] [stderr] | ~~ ~~ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/bin/chap10/4_generic_trait_samples.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 9 | impl Pair { [INFO] [stderr] | --------------- associated function in this implementation [INFO] [stderr] 10 | fn new(x: T, y: T) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/5_channel_thread_samples.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | / /** The send function takes ownership of its parameter, [INFO] [stderr] 12 | | and when the value is moved, the receiver takes ownership of it. [INFO] [stderr] 13 | | This stops us from accidentally using the value again after sending it; [INFO] [stderr] 14 | | the ownership system checks that everything is okay, pp. 402 */ [INFO] [stderr] | |___________________________________________________________________________^ [INFO] [stderr] 15 | tx.send(val).unwrap(); [INFO] [stderr] | --------------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/5_channel_thread_samples.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / /** recv , short for receive, which will block the main thread’s execution and [INFO] [stderr] 23 | | wait until a value is sent down the channel. [INFO] [stderr] 24 | | Once a value is sent, recv will return it in a Result. [INFO] [stderr] 25 | | When the sending end of the channel closes, [INFO] [stderr] 26 | | recv will return an error to signal that no more values will be coming, pp. 401 */ [INFO] [stderr] | |__________________________________________________________________________________________^ [INFO] [stderr] 27 | let received = rx.recv().unwrap(); [INFO] [stderr] | ---------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/5_channel_thread_samples.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | / /** The spawned thread will now send multiple messages [INFO] [stderr] 34 | | and pause for a second between each message, pp. 403 */ [INFO] [stderr] | |_______________________________________________________________^ [INFO] [stderr] 35 | / thread::spawn(move || { [INFO] [stderr] 36 | | let vals = vec![ [INFO] [stderr] 37 | | String::from("hi"), [INFO] [stderr] 38 | | String::from("from"), [INFO] [stderr] ... | [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | }); [INFO] [stderr] | |______- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/5_channel_thread_samples.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | / /** We iterate over them, sending each individually, [INFO] [stderr] 43 | | and pause between each by calling the thread::sleep function [INFO] [stderr] 44 | | with a Duration value of 1 second */ [INFO] [stderr] | |________________________________________________^ [INFO] [stderr] 45 | / for val in vals { [INFO] [stderr] 46 | | tx.send(val).unwrap(); [INFO] [stderr] 47 | | thread::sleep(Duration::from_secs(1)); [INFO] [stderr] 48 | | } [INFO] [stderr] | |_________- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/5_channel_thread_samples.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / /** Treating rx as an iterator [INFO] [stderr] 52 | | For each value received, we’re printing it. [INFO] [stderr] 53 | | When the channel is closed, iteration will end. */ [INFO] [stderr] | |__________________________________________________________^ [INFO] [stderr] 54 | / for received in rx { [INFO] [stderr] 55 | | println!("Got: {}", received); [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/5_channel_thread_samples.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | / /** Use mpsc to create multiple threads that all send values to the same receiver. [INFO] [stderr] 62 | | We can do so by cloning the transmitting half of the channel */ [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] 63 | let tx1 = mpsc::Sender::clone(&tx); [INFO] [stderr] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/2_thread_samples.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | / /** Calling join on the handle blocks the thread currently running [INFO] [stderr] 19 | | until the thread represented by the handle terminates. [INFO] [stderr] 20 | | Blocking a thread means that thread is prevented from performing work or exiting. [INFO] [stderr] ... | [INFO] [stderr] 23 | | but the main thread waits because of the call to handle.join() and [INFO] [stderr] 24 | | does not end until the spawned thread is nished., pp. 393 */ [INFO] [stderr] | |____________________________________________________________________^ [INFO] [stderr] 25 | handle.join().unwrap(); [INFO] [stderr] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: fields `kind` and `address` are never read [INFO] [stderr] --> src/bin/chap6/1_enum_sample.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 8 | struct IpAddr { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 9 | kind: IpAddrKind, [INFO] [stderr] | ^^^^ [INFO] [stderr] 10 | address: String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `IpAddr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `rust_prog_lang` (bin "6_ref_cycle_samples" test) generated 4 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "1_box_samples") generated 6 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "4_generic_trait_samples" test) generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "4_generic_trait_samples") generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (bin "5_channel_thread_samples") generated 6 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "2_thread_samples" test) generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "2_result_recoverable_samples" test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (bin "1_enum_sample") generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "1_enum_sample" test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/bin/chap16/4_closure_thread_samples.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/4_closure_thread_samples.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / /** The closure uses v, so it will capture v and make it part of the closure’s environment. [INFO] [stderr] 10 | | Because thread::spawn runs this closure in a new thread, [INFO] [stderr] 11 | | we should be able to access v inside that new thread. */ [INFO] [stderr] 12 | | /** Compile ERROR [INFO] [stderr] ... | [INFO] [stderr] 31 | | we force the closure to take ownership of the values it’s using [INFO] [stderr] 32 | | rather than allowing Rust to infer that it should borrow the values, pp. 397 */ [INFO] [stderr] | |_______________________________________________________________________________________^ [INFO] [stderr] 33 | / let handle: JoinHandle<()> = thread::spawn(move || { [INFO] [stderr] 34 | | println!("Here's a vector: {:?}", v); [INFO] [stderr] 35 | | }); [INFO] [stderr] | |_______- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/4_closure_thread_samples.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / /** If we added move to the closure, we would move v into the closure’s environment, [INFO] [stderr] 38 | | and we could no longer call drop on it in the main thread, pp. 398 */ [INFO] [stderr] | |_____________________________________________________________________________^ [INFO] [stderr] 39 | // drop(v); // oh no! [INFO] [stderr] 40 | handle.join().unwrap(); [INFO] [stderr] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap16/3_thread_samples.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | / /** The main thread will wait for the spawned thread to finish and [INFO] [stderr] 14 | | then run its for loop, so the output won’t be interleaved anymore, pp. 394 */ [INFO] [stderr] | |_____________________________________________________________________________________^ [INFO] [stderr] 15 | handle.join().unwrap(); [INFO] [stderr] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap4/5_mut_immut_references.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | / /** [INFO] [stderr] 7 | | * you can have only one mutable reference [INFO] [stderr] 8 | | * to a particular piece of data in a particular scope [INFO] [stderr] 9 | | * [INFO] [stderr] 10 | | * Code below will fail [INFO] [stderr] 11 | | */ [INFO] [stderr] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stderr] | [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r1` [INFO] [stderr] --> src/bin/chap4/5_mut_immut_references.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | let r1 = &mut s; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_r1` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/bin/chap4/5_mut_immut_references.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | let mut s = String::from("hello"); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: fields `0` and `1` are never read [INFO] [stderr] --> src/bin/chap15/5_rc_refcell_samples.rs:8:10 [INFO] [stderr] | [INFO] [stderr] 8 | Cons(Rc>, Rc), [INFO] [stderr] | ---- ^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this variant [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stderr] | [INFO] [stderr] 8 | Cons((), ()), [INFO] [stderr] | ~~ ~~ [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/7_rc_weak_samples.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / /** The lack of infinite output indicates that this code didn’t create a reference cycle. [INFO] [stderr] 41 | | We can also tell this by looking at the values we get from calling Rc::strong_count and Rc::weak_count */ [INFO] [stderr] | |_________________________________________________________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stderr] | [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/7_rc_weak_samples.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | /** leaf starts out without a parent, so we create a new, empty Weak reference instance, pp. 386 */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 17 | / let leaf = Rc::new(Node { [INFO] [stderr] 18 | | value: 3, [INFO] [stderr] 19 | | parent: RefCell::new(Weak::new()), [INFO] [stderr] 20 | | children: RefCell::new(vec![]), [INFO] [stderr] 21 | | }); [INFO] [stderr] | |_______- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/7_rc_weak_samples.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | /** in an inner scope and examining strong and weak reference counts, pp. 388 */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 47 | / let leaf = Rc::new(Node { [INFO] [stderr] 48 | | value: 3, [INFO] [stderr] 49 | | parent: RefCell::new(Weak::new()), [INFO] [stderr] 50 | | children: RefCell::new(vec![]), [INFO] [stderr] 51 | | }); [INFO] [stderr] | |_______- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: fields `value` and `children` are never read [INFO] [stderr] --> src/bin/chap15/7_rc_weak_samples.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 9 | struct Node { [INFO] [stderr] | ---- fields in this struct [INFO] [stderr] 10 | value: i32, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 11 | parent: RefCell>, [INFO] [stderr] 12 | children: RefCell>>, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `word` [INFO] [stderr] --> src/bin/chap4/7_string_slices.rs:3:9 [INFO] [stderr] | [INFO] [stderr] 3 | let word = first_word(&s); // word will get the value 5 [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_word` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/bin/chap6/2_enum_sample.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | V4(String), [INFO] [stderr] | -- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 3 | V4(()), [INFO] [stderr] | ~~ [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/bin/chap6/2_enum_sample.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | V6(String), [INFO] [stderr] | -- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 4 | V6(()), [INFO] [stderr] | ~~ [INFO] [stderr] [INFO] [stderr] warning: fields `0`, `1`, `2`, and `3` are never read [INFO] [stderr] --> src/bin/chap6/2_enum_sample.rs:9:8 [INFO] [stderr] | [INFO] [stderr] 9 | V4(u8, u8, u8, u8), [INFO] [stderr] | -- ^^ ^^ ^^ ^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stderr] | [INFO] [stderr] 9 | V4((), (), (), ()), [INFO] [stderr] | ~~ ~~ ~~ ~~ [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/bin/chap6/2_enum_sample.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 10 | V6(String), [INFO] [stderr] | -- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 10 | V6(()), [INFO] [stderr] | ~~ [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap10/5_lifetime_generic_samples.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | / /** This won't compile, pp. 220 [INFO] [stderr] 65 | | let result; [INFO] [stderr] 66 | | { [INFO] [stderr] 67 | | let string2 = String::from("xyz"); [INFO] [stderr] ... | [INFO] [stderr] 70 | | println!("The longest string is {}", result); [INFO] [stderr] 71 | | */ [INFO] [stderr] | |______^ [INFO] [stderr] 72 | [INFO] [stderr] 73 | let string1 = String::from("abcd"); [INFO] [stderr] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:30 [INFO] [stderr] | [INFO] [stderr] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `string1` [INFO] [stderr] --> src/bin/chap10/5_lifetime_generic_samples.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | let string1 = String::from("long string is long"); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string1` [INFO] [stderr] [INFO] [stderr] warning: function `longest_x` is never used [INFO] [stderr] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:4 [INFO] [stderr] | [INFO] [stderr] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `rust_prog_lang` (bin "4_closure_thread_samples" test) generated 3 warnings (run `cargo fix --bin "4_closure_thread_samples" --tests` to apply 1 suggestion) [INFO] [stderr] warning: `rust_prog_lang` (bin "3_thread_samples") generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "6_mutex_samples") generated 4 warnings (4 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "5_mut_immut_references") generated 3 warnings (run `cargo fix --bin "5_mut_immut_references"` to apply 1 suggestion) [INFO] [stderr] warning: `rust_prog_lang` (bin "5_rc_refcell_samples") generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "7_rc_weak_samples") generated 4 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "7_string_slices") generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "2_enum_sample") generated 4 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "4_closure_thread_samples") generated 3 warnings (3 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "5_rc_refcell_samples" test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (bin "5_lifetime_generic_samples") generated 4 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "5_channel_thread_samples" test) generated 6 warnings (6 duplicates) [INFO] [stderr] warning: struct `Counter` is never constructed [INFO] [stderr] --> src/bin/chap13/6_create_own_iter_samples.rs:1:8 [INFO] [stderr] | [INFO] [stderr] 1 | struct Counter { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/bin/chap13/6_create_own_iter_samples.rs:6:8 [INFO] [stderr] | [INFO] [stderr] 5 | impl Counter { [INFO] [stderr] | ------------ associated function in this implementation [INFO] [stderr] 6 | fn new() -> Counter { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/bin/chap11/1_test_samples.rs:9:18 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn greeting2(name: &str) -> String { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `value` is never read [INFO] [stderr] --> src/bin/chap11/1_test_samples.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub struct Guess { [INFO] [stderr] | ----- field in this struct [INFO] [stderr] 14 | value: i32, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method `newB` should have a snake case name [INFO] [stderr] --> src/bin/chap11/1_test_samples.rs:24:12 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn newB(value: i32) -> Guess { [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `new_b` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `greater_than_100B` should have a snake case name [INFO] [stderr] --> src/bin/chap11/1_test_samples.rs:81:8 [INFO] [stderr] | [INFO] [stderr] 81 | fn greater_than_100B() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `greater_than_100_b` [INFO] [stderr] [INFO] [stderr] warning: field `y` is never read [INFO] [stderr] --> src/bin/chap10/1_generic_samples.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 2 | struct Point { [INFO] [stderr] | ----- field in this struct [INFO] [stderr] 3 | x: T, [INFO] [stderr] 4 | y: T, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method `distance_from_origin` is never used [INFO] [stderr] --> src/bin/chap10/1_generic_samples.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 11 | impl Point { [INFO] [stderr] | --------------- method in this implementation [INFO] [stderr] 12 | fn distance_from_origin(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `some_string` [INFO] [stderr] --> src/bin/chap4/4_reference_borrowing.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | fn change_immut(some_string: &String) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `rust_prog_lang` (bin "6_ref_cycle_samples") generated 4 warnings (4 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "5_mut_immut_references" test) generated 3 warnings (3 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "6_create_own_iter_samples") generated 2 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "1_test_samples" test) generated 4 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "1_test_samples") generated 3 warnings (3 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "1_generic_samples") generated 2 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "4_reference_borrowing") generated 1 warning [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/chap15/4_refcell_samples.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | / /** We can’t modify the to keep track of the messages, [INFO] [stderr] 77 | | because the send method takes an immutable reference to self, pp. 374. */ [INFO] [stderr] 78 | | // self.sent_messages.push(String::from(message)); [INFO] [stderr] ... | [INFO] [stderr] 82 | | Then we can call push on the mutable reference to the vector [INFO] [stderr] 83 | | to keep track of the messages sent during the test, pp. 375 */ [INFO] [stderr] | |______________________________________________________________________________^ [INFO] [stderr] 84 | let mut one_borrow: RefMut> = self.sent_messages.borrow_mut(); [INFO] [stderr] | -------------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: struct `Shoe` is never constructed [INFO] [stderr] --> src/bin/chap13/5_closure_iter_samples.rs:2:8 [INFO] [stderr] | [INFO] [stderr] 2 | struct Shoe { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `shoes_in_my_size` is never used [INFO] [stderr] --> src/bin/chap13/5_closure_iter_samples.rs:9:4 [INFO] [stderr] | [INFO] [stderr] 9 | fn shoes_in_my_size(shoes: Vec, shoe_size: u32) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `list` [INFO] [stderr] --> src/bin/chap10/3_generic_trait_samples.rs:21:24 [INFO] [stderr] | [INFO] [stderr] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_list` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `largest_not_work` is never used [INFO] [stderr] --> src/bin/chap10/3_generic_trait_samples.rs:21:4 [INFO] [stderr] | [INFO] [stderr] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/bin/chap15/2_drop_samples.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | let c = CustomSmartPointer { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `d` [INFO] [stderr] --> src/bin/chap15/2_drop_samples.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | let d = CustomSmartPointer { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/bin/chap15/2_drop_samples.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | let c = CustomSmartPointer { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: `rust_prog_lang` (bin "4_propagating_error" test) generated 3 warnings (3 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "4_refcell_samples" test) generated 1 warning [INFO] [stderr] warning: `rust_prog_lang` (bin "7_rc_weak_samples" test) generated 4 warnings (4 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "5_closure_iter_samples") generated 2 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "3_generic_trait_samples") generated 2 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "4_reference_borrowing" test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (bin "3_rc_samples" test) generated 10 warnings (10 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "2_drop_samples" test) generated 3 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "2_trait_samples" test) generated 3 warnings (3 duplicates) [INFO] [stderr] warning: fields `addr1`, `addr2`, `addr3`, and `addr4` are never read [INFO] [stderr] --> src/bin/chap6/3_enum_sample.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 2 | struct Ipv4Addr { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 3 | // --snip-- [INFO] [stderr] 4 | addr1: u8, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 5 | addr2: u8, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 6 | addr3: u8, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 7 | addr4: u8, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Ipv4Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `address` is never read [INFO] [stderr] --> src/bin/chap6/3_enum_sample.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 11 | struct Ipv6Addr { [INFO] [stderr] | -------- field in this struct [INFO] [stderr] 12 | // --snip-- [INFO] [stderr] 13 | address: String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Ipv6Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/bin/chap6/3_enum_sample.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | V4(Ipv4Addr), [INFO] [stderr] | -- ^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 18 | V4(()), [INFO] [stderr] | ~~ [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/bin/chap6/3_enum_sample.rs:19:8 [INFO] [stderr] | [INFO] [stderr] 19 | V6(Ipv6Addr), [INFO] [stderr] | -- ^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 19 | V6(()), [INFO] [stderr] | ~~ [INFO] [stderr] [INFO] [stderr] warning: `rust_prog_lang` (bin "3_enum_sample" test) generated 4 warnings [INFO] [stderr] warning: `rust_prog_lang` (bin "7_string_slices" test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (bin "2_enum_sample" test) generated 4 warnings (4 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "2_vec_immut_ref") generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (bin "3_enum_sample") generated 4 warnings (4 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "2_drop_samples") generated 3 warnings (3 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "4_string_samples" test) generated 10 warnings (10 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "3_result_matching_samples") generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (bin "1_generic_samples" test) generated 2 warnings (2 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "1_box_samples" test) generated 6 warnings (6 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "3_generic_trait_samples" test) generated 2 warnings (2 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "3_thread_samples" test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (bin "5_lifetime_generic_samples" test) generated 4 warnings (4 duplicates) [INFO] [stderr] warning: `rust_prog_lang` (bin "2_thread_samples") generated 1 warning (1 duplicate) [INFO] [stderr] warning: `rust_prog_lang` (lib test) generated 10 warnings (10 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_prog_lang-bd3602dc3166a074) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test front_of_house::adder::tests::internal ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap15/1_box_samples.rs (/opt/rustwide/target/debug/deps/1_box_samples-2a2eed4c183f1124) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap13/1_closure_samples.rs (/opt/rustwide/target/debug/deps/1_closure_samples-9a4eb4b3667d1c2e) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap6/1_enum_sample.rs (/opt/rustwide/target/debug/deps/1_enum_sample-a4f44d165bd51b38) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap10/1_generic_samples.rs (/opt/rustwide/target/debug/deps/1_generic_samples-ef1013d88c1718a4) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap9/1_panic_samples.rs (/opt/rustwide/target/debug/deps/1_panic_samples-7085d7812c8231aa) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap5/1_struct_sample.rs (/opt/rustwide/target/debug/deps/1_struct_sample-f1ba0117c0d83be7) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap11/1_test_samples.rs (/opt/rustwide/target/debug/deps/1_test_samples-bf442cf3d155330c) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test tests::greeting_contains_name ... ok [INFO] [stdout] test tests::greeting_contains_name2 ... ok [INFO] [stdout] test tests::it_adds_two ... ok [INFO] [stdout] test tests::it_works ... ok [INFO] [stdout] test tests::greater_than_100 - should panic ... ok [INFO] [stdout] test tests::greater_than_100B - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap16/1_thread_samples.rs (/opt/rustwide/target/debug/deps/1_thread_samples-6bdc70ff5a3e2705) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap4/1_variable_scope.rs (/opt/rustwide/target/debug/deps/1_variable_scope-e1997c06e9b39209) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap8/1_vec_sample.rs (/opt/rustwide/target/debug/deps/1_vec_sample-3dc14b21d1816f67) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/chap13/2_closure_samples.rs (/opt/rustwide/target/debug/deps/2_closure_samples-ed1cbf8542c77dc7) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test call_with_different_values ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- call_with_different_values stdout ---- [INFO] [stdout] thread 'call_with_different_values' panicked at src/bin/chap13/2_closure_samples.rs:65:5: [INFO] [stdout] assertion `left == right` failed [INFO] [stdout] left: 1 [INFO] [stdout] right: 2 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x55b6f14b56e5 - std::backtrace_rs::backtrace::libunwind::trace::h59d96bdb08384354 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5 [INFO] [stdout] 1: 0x55b6f14b56e5 - std::backtrace_rs::backtrace::trace_unsynchronized::h9cf5becacfc93fba [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x55b6f14b56e5 - std::sys_common::backtrace::_print_fmt::h10b76d10405dbd48 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:68:5 [INFO] [stdout] 3: 0x55b6f14b56e5 - ::fmt::h6ed9e62a156d84e4 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:44:22 [INFO] [stdout] 4: 0x55b6f14dbf2b - core::fmt::rt::Argument::fmt::h645c680983f03c9f [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/rt.rs:165:63 [INFO] [stdout] 5: 0x55b6f14dbf2b - core::fmt::write::h8bcd80919a02be29 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/mod.rs:1169:21 [INFO] [stdout] 6: 0x55b6f14b2f1f - std::io::Write::write_fmt::h8d0c47c662cad79c [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/io/mod.rs:1835:15 [INFO] [stdout] 7: 0x55b6f14b54be - std::sys_common::backtrace::_print::h6306f131a28d62b0 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:47:5 [INFO] [stdout] 8: 0x55b6f14b54be - std::sys_common::backtrace::print::h7079288e0a26dfcc [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:34:9 [INFO] [stdout] 9: 0x55b6f14b6ee9 - std::panicking::default_hook::{{closure}}::hb063ecec81a736ba [INFO] [stdout] 10: 0x55b6f14b6bae - std::panicking::default_hook::hd56ee406bf547b5c [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:295:9 [INFO] [stdout] 11: 0x55b6f1487e0a - as core::ops::function::Fn>::call::he5eacdef44c8728f [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9 [INFO] [stdout] 12: 0x55b6f1487e0a - test::test_main::{{closure}}::h0ec9aed229e79095 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:137:21 [INFO] [stdout] 13: 0x55b6f14b74eb - as core::ops::function::Fn>::call::hcbd0d80e1ad4e4f9 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9 [INFO] [stdout] 14: 0x55b6f14b74eb - std::panicking::rust_panic_with_hook::h624aa3ca42ebb8f2 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:799:13 [INFO] [stdout] 15: 0x55b6f14b7264 - std::panicking::begin_panic_handler::{{closure}}::hbc4e76194a5e287c [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:664:13 [INFO] [stdout] 16: 0x55b6f14b5ba9 - std::sys_common::backtrace::__rust_end_short_backtrace::h847fedc9d1ff7b6d [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:171:18 [INFO] [stdout] 17: 0x55b6f14b6f97 - rust_begin_unwind [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:652:5 [INFO] [stdout] 18: 0x55b6f1452833 - core::panicking::panic_fmt::hec11a924b87ce965 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:72:14 [INFO] [stdout] 19: 0x55b6f1452b3e - core::panicking::assert_failed_inner::h01c8f7f0c1caba58 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:408:17 [INFO] [stdout] 20: 0x55b6f145388e - core::panicking::assert_failed::h94712c1575999ac6 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:363:5 [INFO] [stdout] 21: 0x55b6f14545c4 - _2_closure_samples::call_with_different_values::hff2c6fbdc54ce9e8 [INFO] [stdout] at /opt/rustwide/workdir/src/bin/chap13/2_closure_samples.rs:65:5 [INFO] [stdout] 22: 0x55b6f1454527 - _2_closure_samples::call_with_different_values::{{closure}}::he69b16fa3ef61ebe [INFO] [stdout] at /opt/rustwide/workdir/src/bin/chap13/2_closure_samples.rs:62:32 [INFO] [stdout] 23: 0x55b6f1453406 - core::ops::function::FnOnce::call_once::h0895cee39746eaf4 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x55b6f148c7eb - core::ops::function::FnOnce::call_once::h2e43a8f6f3d94b99 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x55b6f148c7eb - test::__rust_begin_short_backtrace::h214c9f2d2d3fee90 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:625:18 [INFO] [stdout] 26: 0x55b6f148bef1 - test::run_test_in_process::{{closure}}::h510b7ba7990692a5 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:60 [INFO] [stdout] 27: 0x55b6f148bef1 - as core::ops::function::FnOnce<()>>::call_once::h4157186197a93871 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 28: 0x55b6f148bef1 - std::panicking::try::do_call::h1bf2463bccd4b28c [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40 [INFO] [stdout] 29: 0x55b6f148bef1 - std::panicking::try::hd6d4808c9fab4fa5 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19 [INFO] [stdout] 30: 0x55b6f148bef1 - std::panic::catch_unwind::hd5641d97d123f9f2 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14 [INFO] [stdout] 31: 0x55b6f148bef1 - test::run_test_in_process::hc273b71c8b878a4c [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:27 [INFO] [stdout] 32: 0x55b6f148bef1 - test::run_test::{{closure}}::h6838df834eb8467e [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:569:43 [INFO] [stdout] 33: 0x55b6f14548b4 - test::run_test::{{closure}}::h608b98ecff5665fb [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:599:41 [INFO] [stdout] 34: 0x55b6f14548b4 - std::sys_common::backtrace::__rust_begin_short_backtrace::hdc4182b97d1042e9 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:155:18 [INFO] [stdout] 35: 0x55b6f14592e2 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h571773fd21d674c8 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:542:17 [INFO] [stdout] 36: 0x55b6f14592e2 - as core::ops::function::FnOnce<()>>::call_once::hdcd384cf2fa70ba3 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 37: 0x55b6f14592e2 - std::panicking::try::do_call::h4f1a44bd81423be1 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40 [INFO] [stdout] 38: 0x55b6f14592e2 - std::panicking::try::h5e02afcb81dcd361 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19 [INFO] [stdout] 39: 0x55b6f14592e2 - std::panic::catch_unwind::h022f75775bfd8c45 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14 [INFO] [stdout] 40: 0x55b6f14592e2 - std::thread::Builder::spawn_unchecked_::{{closure}}::hf5a62e9e4e6df1f8 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:541:30 [INFO] [stdout] 41: 0x55b6f14592e2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6d56360aeb9509a7 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x55b6f14bb6cb - as core::ops::function::FnOnce>::call_once::h7a343dc551c06baa [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9 [INFO] [stdout] 43: 0x55b6f14bb6cb - as core::ops::function::FnOnce>::call_once::h30b8111cbaa644f3 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9 [INFO] [stdout] 44: 0x55b6f14bb6cb - std::sys::pal::unix::thread::Thread::new::thread_start::h7404e134e61e7a11 [INFO] [stdout] at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys/pal/unix/thread.rs:108:17 [INFO] [stdout] 45: 0x7f8bad22dac3 - [INFO] [stdout] 46: 0x7f8bad2bea04 - __clone [INFO] [stdout] 47: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] call_with_different_values [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--bin 2_closure_samples` [INFO] running `Command { std: "docker" "inspect" "3d2ccfe6e0dff1639d8ab658a846bb2111960800b424fbde54c66e18da1da34f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3d2ccfe6e0dff1639d8ab658a846bb2111960800b424fbde54c66e18da1da34f", kill_on_drop: false }` [INFO] [stdout] 3d2ccfe6e0dff1639d8ab658a846bb2111960800b424fbde54c66e18da1da34f [INFO] testing tokiwadai/rust_prog_lang against try#b642703cf9526da1e72c0b6755753b939a9c6b6d for pr-125151 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftokiwadai%2Frust_prog_lang" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/tokiwadai/rust_prog_lang on toolchain b642703cf9526da1e72c0b6755753b939a9c6b6d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/tokiwadai/rust_prog_lang [INFO] finished tweaking git repo https://github.com/tokiwadai/rust_prog_lang [INFO] tweaked toml for git repo https://github.com/tokiwadai/rust_prog_lang written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/tokiwadai/rust_prog_lang 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" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c2fa29bf2ee060da84dc33566c63bfb16afe575f1008ad1dd2f5471a14005c2d [INFO] running `Command { std: "docker" "start" "-a" "c2fa29bf2ee060da84dc33566c63bfb16afe575f1008ad1dd2f5471a14005c2d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c2fa29bf2ee060da84dc33566c63bfb16afe575f1008ad1dd2f5471a14005c2d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c2fa29bf2ee060da84dc33566c63bfb16afe575f1008ad1dd2f5471a14005c2d", kill_on_drop: false }` [INFO] [stdout] c2fa29bf2ee060da84dc33566c63bfb16afe575f1008ad1dd2f5471a14005c2d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ba13cde7b4d0cf67d8ca62ec7d600feb399fe68bc354cad02e82d0d7768f1017 [INFO] running `Command { std: "docker" "start" "-a" "ba13cde7b4d0cf67d8ca62ec7d600feb399fe68bc354cad02e82d0d7768f1017", kill_on_drop: false }` [INFO] [stderr] Compiling rust_prog_lang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `order1` [INFO] [stdout] --> src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | let order1 = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order2` [INFO] [stdout] --> src/lib.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let order2 = back_of_house::Appetizer::Salad; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/lib.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `seat_at_table` is never used [INFO] [stdout] --> src/front_of_house/hosting.rs:2:4 [INFO] [stdout] | [INFO] [stdout] 2 | fn seat_at_table() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_order` is never used [INFO] [stdout] --> src/front_of_house.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | fn take_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/front_of_house.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_payment` is never used [INFO] [stdout] --> src/front_of_house.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | fn take_payment() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `seasonal_fruit` is never read [INFO] [stdout] --> src/lib.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Breakfast { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 20 | pub toast: String, [INFO] [stdout] 21 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cook_order` is never used [INFO] [stdout] --> src/lib.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fix_incorrect_order` is never used [INFO] [stdout] --> src/lib.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | / /** The closure uses v, so it will capture v and make it part of the closure’s environment. [INFO] [stdout] 10 | | Because thread::spawn runs this closure in a new thread, [INFO] [stdout] 11 | | we should be able to access v inside that new thread. */ [INFO] [stdout] 12 | | /** Compile ERROR [INFO] [stdout] ... | [INFO] [stdout] 31 | | we force the closure to take ownership of the values it’s using [INFO] [stdout] 32 | | rather than allowing Rust to infer that it should borrow the values, pp. 397 */ [INFO] [stdout] | |_______________________________________________________________________________________^ [INFO] [stdout] 33 | / let handle: JoinHandle<()> = thread::spawn(move || { [INFO] [stdout] 34 | | println!("Here's a vector: {:?}", v); [INFO] [stdout] 35 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | / /** [INFO] [stdout] 7 | | * you can have only one mutable reference [INFO] [stdout] 8 | | * to a particular piece of data in a particular scope [INFO] [stdout] 9 | | * [INFO] [stdout] 10 | | * Code below will fail [INFO] [stdout] 11 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** If we added move to the closure, we would move v into the closure’s environment, [INFO] [stdout] 38 | | and we could no longer call drop on it in the main thread, pp. 398 */ [INFO] [stdout] | |_____________________________________________________________________________^ [INFO] [stdout] 39 | // drop(v); // oh no! [INFO] [stdout] 40 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `List_Box` should have an upper camel case name [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:2:6 [INFO] [stdout] | [INFO] [stdout] 2 | enum List_Box { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ListBox` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / /** The Cons variants own the data they hold, so when we create the b list, [INFO] [stdout] 22 | | a is moved into b and b owns a. Then, when we try to use a again when creating c, [INFO] [stdout] 23 | | we’re not allowed to because a has been moved, pp. 366 [INFO] [stdout] 24 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** Box allows immutable or mutable borrows checked at compile time, pp. 370 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let a = List_Box::Cons(5, [INFO] [stdout] 18 | | Box::new(List_Box::Cons(10, [INFO] [stdout] 19 | | Box::new(List_Box::Nil)))); [INFO] [stdout] | |______________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / /** pp 370 [INFO] [stdout] 30 | | - Rc ENABLES MULTIPLE OWNERS of the same data, [INFO] [stdout] 31 | | while Box and RefCell have single owners [INFO] [stdout] 32 | | - Rc allows only IMMUTABLE borrows checked at compile time [INFO] [stdout] 33 | | */ [INFO] [stdout] | |__________^ [INFO] [stdout] 34 | / let a: Rc = Rc::new(List::Cons(5, [INFO] [stdout] 35 | | Rc::new(List::Cons(10, [INFO] [stdout] 36 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** The implementation of Rc::clone doesn’t make a deep copy of all the data [INFO] [stdout] 38 | | like most types’ implementations of clone do. [INFO] [stdout] 39 | | The call to Rc::clone only increments the reference count, which doesn’t take much time. [INFO] [stdout] 40 | | Deep copies of data can take a lot of time, pp. 367 */ [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] 41 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | /** Printing the reference count, pp. 368 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | / let a = Rc::new(List::Cons(5, [INFO] [stdout] 50 | | Rc::new(List::Cons(10, [INFO] [stdout] 51 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r1` [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | let r1 = &mut s; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_r1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `word` [INFO] [stdout] --> src/bin/chap4/7_string_slices.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let word = first_word(&s); // word will get the value 5 [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_word` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap4/5_mut_immut_references.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut s = String::from("hello"); [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: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let s = data.to_string(); [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] --> src/bin/chap8/4_string_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | let s = "initial contents".to_string(); [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] --> src/bin/chap8/4_string_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let s = String::from("initial contents"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let hello = String::from("السلام علیكم"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | V4(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 3 | V4(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let hello = String::from("Dobrý den"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | V6(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 4 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let hello = String::from("Hello"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let hello = String::from("Здравствуйте"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let hello = String::from("Hola"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | V4(u8, u8, u8, u8), [INFO] [stdout] | -- ^^ ^^ ^^ ^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | V4((), (), (), ()), [INFO] [stdout] | ~~ ~~ ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/2_enum_sample.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | V6(String), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 10 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/bin/chap10/4_generic_trait_samples.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Pair { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 10 | fn new(x: T, y: T) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/2_vec_immut_ref.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut v = vec![1, 2, 3, 4, 5]; [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: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [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: `c` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let c = List::Cons(4, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 3 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | Cons(i32, Rc), [INFO] [stdout] | ---- ^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `addr1`, `addr2`, `addr3`, and `addr4` are never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Ipv4Addr { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 3 | // --snip-- [INFO] [stdout] 4 | addr1: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 5 | addr2: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | addr3: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | addr4: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv4Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `address` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 11 | struct Ipv6Addr { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 12 | // --snip-- [INFO] [stdout] 13 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv6Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | V4(Ipv4Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 | V4(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | V6(Ipv6Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 19 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Shoe` is never constructed [INFO] [stdout] --> src/bin/chap13/5_closure_iter_samples.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Shoe { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shoes_in_my_size` is never used [INFO] [stdout] --> src/bin/chap13/5_closure_iter_samples.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn shoes_in_my_size(shoes: Vec, shoe_size: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /** Mutex is smart pointer. [INFO] [stdout] 21 | | The call to lock returns a MutexGuard wrapped in a LockResult [INFO] [stdout] 22 | | that we handled with the call to unwrap. [INFO] [stdout] ... | [INFO] [stdout] 29 | | blocking the mutex from being used by other threads [INFO] [stdout] 30 | | because the lock release happens automatically, pp. 408 */ [INFO] [stdout] | |__________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / /** Sharing a Mutex Between Multiple Threads, pp. 408 */ [INFO] [stdout] 35 | | /** Compile Error [INFO] [stdout] 36 | | The error message states that the counter value was moved [INFO] [stdout] 37 | | in the previous iteration of the loop. [INFO] [stdout] ... | [INFO] [stdout] 56 | |/ /** [INFO] [stdout] 57 | || let counter = Rc::clone(&counter); [INFO] [stdout] 58 | || [INFO] [stdout] 59 | || let mut handles = vec![]; [INFO] [stdout] ... || [INFO] [stdout] 71 | || println!("Result: {}", *counter.lock().unwrap()); [INFO] [stdout] 72 | || */ [INFO] [stdout] | ||______^ [INFO] [stdout] | |______| [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | / /** To access the data inside the mutex, we use the method to acquire the lock. [INFO] [stdout] 11 | | This call will block the current thread so it can’t do any work [INFO] [stdout] 12 | | until it’s our turn to have the lock. [INFO] [stdout] ... | [INFO] [stdout] 15 | | In that case, no one would ever be able to get the lock, [INFO] [stdout] 16 | | so we’ve chosen to unwrap and have this thread panic in that situation, pp. 407 */ [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] 17 | let mut num: MutexGuard = m.lock().unwrap(); [INFO] [stdout] | ------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/bin/chap9/2_result_recoverable_samples.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/2_thread_samples.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / /** Calling join on the handle blocks the thread currently running [INFO] [stdout] 19 | | until the thread represented by the handle terminates. [INFO] [stdout] 20 | | Blocking a thread means that thread is prevented from performing work or exiting. [INFO] [stdout] ... | [INFO] [stdout] 23 | | but the main thread waits because of the call to handle.join() and [INFO] [stdout] 24 | | does not end until the spawned thread is nished., pp. 393 */ [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] 25 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | / /** Compile error. [INFO] [stdout] 61 | | The error shows this type “has infnite size.” [INFO] [stdout] 62 | | The reason is that we’ve defined List with a variant that is recursive: [INFO] [stdout] 63 | | it holds another value of itself directly. [INFO] [stdout] 64 | | As a result, Rust can’t figure out how much space it needs to store a List value. */ [INFO] [stdout] | |____________________________________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 68 | / let list: ListBox = Cons(1, [INFO] [stdout] 69 | | Box::new(Cons(2, [INFO] [stdout] 70 | | Box::new(Cons(3, [INFO] [stdout] 71 | | Box::new(Nil)))))); [INFO] [stdout] | |___________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / /** Following the Pointer to the Value with the Dereference Operator, pp. 354 [INFO] [stdout] 76 | | The variable x holds an i32 value, 5. [INFO] [stdout] 77 | | We set y equal to a reference to x. We can assert that x is equal to 5. [INFO] [stdout] 78 | | However, if we want to make an assertion about the value in y, [INFO] [stdout] 79 | | we have to use *y to follow the reference to the value it’s pointing to (hence dereference). [INFO] [stdout] 80 | | Once we dereference y, we have access to the integer value y is pointing to [INFO] [stdout] 81 | | that we can compare with 5, pp. 355 */ [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] 82 | let x = 5; [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | / /** [INFO] [stdout] 105 | | * Implicit Deref Coercions with Functions and Methods, pp. 359 */ [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 106 | // call the hello function with a string slice as an argument, pp. 359 [INFO] [stdout] 107 | hello("Rust1"); [INFO] [stdout] | -------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | / /** If Rust didn’t implement deref coercion, [INFO] [stdout] 116 | | we would have to write the code like below instead, [INFO] [stdout] 117 | | to call hello with a value of type &MyBox, pp. 359 [INFO] [stdout] 118 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 119 | let m = MyBox::new(String::from("Rust3")); [INFO] [stdout] | ------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / /** The (*m) dereferences the MyBox into a String . [INFO] [stdout] 121 | | Then the & and take a string slice of the String [INFO] [stdout] 122 | | that is equal to the whole string to match the signature of hello, pp. 360 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 123 | hello(&(*m)[..]); [INFO] [stdout] | ---------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 15 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap8/3_vec_iter.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | Int(i32), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 26 | Int(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap8/3_vec_iter.rs:27:15 [INFO] [stdout] | [INFO] [stdout] 27 | Float(f64), [INFO] [stdout] | ----- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 27 | Float(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap8/3_vec_iter.rs:28:14 [INFO] [stdout] | [INFO] [stdout] 28 | Text(String), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 28 | Text(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `s2` is never read [INFO] [stdout] --> src/bin/chap4/1_variable_scope.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | let mut s2 = "hello world!"; [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: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/3_thread_samples.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / /** The main thread will wait for the spawned thread to finish and [INFO] [stdout] 14 | | then run its for loop, so the output won’t be interleaved anymore, pp. 394 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 15 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / /** The send function takes ownership of its parameter, [INFO] [stdout] 12 | | and when the value is moved, the receiver takes ownership of it. [INFO] [stdout] 13 | | This stops us from accidentally using the value again after sending it; [INFO] [stdout] 14 | | the ownership system checks that everything is okay, pp. 402 */ [INFO] [stdout] | |___________________________________________________________________________^ [INFO] [stdout] 15 | tx.send(val).unwrap(); [INFO] [stdout] | --------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / /** recv , short for receive, which will block the main thread’s execution and [INFO] [stdout] 23 | | wait until a value is sent down the channel. [INFO] [stdout] 24 | | Once a value is sent, recv will return it in a Result. [INFO] [stdout] 25 | | When the sending end of the channel closes, [INFO] [stdout] 26 | | recv will return an error to signal that no more values will be coming, pp. 401 */ [INFO] [stdout] | |__________________________________________________________________________________________^ [INFO] [stdout] 27 | let received = rx.recv().unwrap(); [INFO] [stdout] | ---------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / /** The spawned thread will now send multiple messages [INFO] [stdout] 34 | | and pause for a second between each message, pp. 403 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 35 | / thread::spawn(move || { [INFO] [stdout] 36 | | let vals = vec![ [INFO] [stdout] 37 | | String::from("hi"), [INFO] [stdout] 38 | | String::from("from"), [INFO] [stdout] ... | [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / /** We iterate over them, sending each individually, [INFO] [stdout] 43 | | and pause between each by calling the thread::sleep function [INFO] [stdout] 44 | | with a Duration value of 1 second */ [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] 45 | / for val in vals { [INFO] [stdout] 46 | | tx.send(val).unwrap(); [INFO] [stdout] 47 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / /** Treating rx as an iterator [INFO] [stdout] 52 | | For each value received, we’re printing it. [INFO] [stdout] 53 | | When the channel is closed, iteration will end. */ [INFO] [stdout] | |__________________________________________________________^ [INFO] [stdout] 54 | / for received in rx { [INFO] [stdout] 55 | | println!("Got: {}", received); [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / /** Use mpsc to create multiple threads that all send values to the same receiver. [INFO] [stdout] 62 | | We can do so by cloning the transmitting half of the channel */ [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] 63 | let tx1 = mpsc::Sender::clone(&tx); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn greeting2(name: &str) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Guess { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 14 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `newB` should have a snake case name [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn newB(value: i32) -> Guess { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `new_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /** We create an Rc instance holding a List value in the variable a with an initial list of 5, Nil. */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | let a: Rc = Rc::new(Cons(5,RefCell::new(Rc::new(Nil)))); [INFO] [stdout] | -------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / /** We then create an Rc instance holding another List value in the variable b [INFO] [stdout] 37 | | that contains the value 10 and points to the list in a, pp. 381 */ [INFO] [stdout] | |__________________________________________________________________________^ [INFO] [stdout] 38 | let b: Rc = Rc::new(Cons(10,RefCell::new(Rc::clone(&a)))); [INFO] [stdout] | ---------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / /** We modify a so it points to b instead of Nil, creating a cycle. [INFO] [stdout] 44 | | We do that by using the tail method to get a reference to the RefCell>. [INFO] [stdout] 45 | | Then we use the borrow_mut method on the RefCell> to change the value inside from an Rc [INFO] [stdout] 46 | | that holds a Nil value to the Rc in b, pp. 381 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 47 | / if let Some(link) = a.tail() { [INFO] [stdout] 48 | | *link.borrow_mut() = Rc::clone(&b); [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `some_function` is never used [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | Cons(i32, RefCell>), [INFO] [stdout] | ---- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 16 | Cons((), RefCell>), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind` and `address` are never read [INFO] [stdout] --> src/bin/chap6/1_enum_sample.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | struct IpAddr { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | kind: IpAddrKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpAddr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `y` is never read [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 3 | x: T, [INFO] [stdout] 4 | y: T, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `distance_from_origin` is never used [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl Point { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 12 | fn distance_from_origin(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/5_rc_refcell_samples.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | Cons(Rc>, Rc), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 8 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Counter` is never constructed [INFO] [stdout] --> src/bin/chap13/6_create_own_iter_samples.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Counter { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/bin/chap13/6_create_own_iter_samples.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 5 | impl Counter { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 6 | fn new() -> Counter { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | / /** This won't compile, pp. 220 [INFO] [stdout] 65 | | let result; [INFO] [stdout] 66 | | { [INFO] [stdout] 67 | | let string2 = String::from("xyz"); [INFO] [stdout] ... | [INFO] [stdout] 70 | | println!("The longest string is {}", result); [INFO] [stdout] 71 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 72 | [INFO] [stdout] 73 | let string1 = String::from("abcd"); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `string1` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let string1 = String::from("long string is long"); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest_x` is never used [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / /** The lack of infinite output indicates that this code didn’t create a reference cycle. [INFO] [stdout] 41 | | We can also tell this by looking at the values we get from calling Rc::strong_count and Rc::weak_count */ [INFO] [stdout] | |_________________________________________________________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** leaf starts out without a parent, so we create a new, empty Weak reference instance, pp. 386 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let leaf = Rc::new(Node { [INFO] [stdout] 18 | | value: 3, [INFO] [stdout] 19 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 20 | | children: RefCell::new(vec![]), [INFO] [stdout] 21 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | /** in an inner scope and examining strong and weak reference counts, pp. 388 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | / let leaf = Rc::new(Node { [INFO] [stdout] 48 | | value: 3, [INFO] [stdout] 49 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 50 | | children: RefCell::new(vec![]), [INFO] [stdout] 51 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value` and `children` are never read [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | struct Node { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | parent: RefCell>, [INFO] [stdout] 12 | children: RefCell>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `some_string` [INFO] [stdout] --> src/bin/chap4/4_reference_borrowing.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | fn change_immut(some_string: &String) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `list` [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_list` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `largest_not_work` is never used [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn read_username_from_file() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file2` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn read_username_from_file2() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file3` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn read_username_from_file3() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let d = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/bin/chap9/3_result_matching_samples.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let f = File::open("hello2.txt") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.38s [INFO] running `Command { std: "docker" "inspect" "ba13cde7b4d0cf67d8ca62ec7d600feb399fe68bc354cad02e82d0d7768f1017", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ba13cde7b4d0cf67d8ca62ec7d600feb399fe68bc354cad02e82d0d7768f1017", kill_on_drop: false }` [INFO] [stdout] ba13cde7b4d0cf67d8ca62ec7d600feb399fe68bc354cad02e82d0d7768f1017 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 533c9c8c5220c7285a0f84d5e2c7a43f8994eb79cc51b40e1836c25053443d8e [INFO] running `Command { std: "docker" "start" "-a" "533c9c8c5220c7285a0f84d5e2c7a43f8994eb79cc51b40e1836c25053443d8e", kill_on_drop: false }` [INFO] [stdout] warning: unused variable: `order1` [INFO] [stdout] --> src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | let order1 = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `order2` [INFO] [stdout] --> src/lib.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let order2 = back_of_house::Appetizer::Salad; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_order2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/lib.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `seat_at_table` is never used [INFO] [stdout] --> src/front_of_house/hosting.rs:2:4 [INFO] [stdout] | [INFO] [stdout] 2 | fn seat_at_table() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_order` is never used [INFO] [stdout] --> src/front_of_house.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | fn take_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serve_order` is never used [INFO] [stdout] --> src/front_of_house.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `take_payment` is never used [INFO] [stdout] --> src/front_of_house.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | fn take_payment() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `seasonal_fruit` is never read [INFO] [stdout] --> src/lib.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Breakfast { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 20 | pub toast: String, [INFO] [stdout] 21 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cook_order` is never used [INFO] [stdout] --> src/lib.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fix_incorrect_order` is never used [INFO] [stdout] --> src/lib.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/bin/chap9/3_result_matching_samples.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let f = File::open("hello2.txt") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling rust_prog_lang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | / /** This won't compile, pp. 220 [INFO] [stdout] 65 | | let result; [INFO] [stdout] 66 | | { [INFO] [stdout] 67 | | let string2 = String::from("xyz"); [INFO] [stdout] ... | [INFO] [stdout] 70 | | println!("The longest string is {}", result); [INFO] [stdout] 71 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 72 | [INFO] [stdout] 73 | let string1 = String::from("abcd"); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `string1` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let string1 = String::from("long string is long"); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest_x` is never used [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /** We create an Rc instance holding a List value in the variable a with an initial list of 5, Nil. */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | let a: Rc = Rc::new(Cons(5,RefCell::new(Rc::new(Nil)))); [INFO] [stdout] | -------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / /** We then create an Rc instance holding another List value in the variable b [INFO] [stdout] 37 | | that contains the value 10 and points to the list in a, pp. 381 */ [INFO] [stdout] | |__________________________________________________________________________^ [INFO] [stdout] 38 | let b: Rc = Rc::new(Cons(10,RefCell::new(Rc::clone(&a)))); [INFO] [stdout] | ---------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / /** We modify a so it points to b instead of Nil, creating a cycle. [INFO] [stdout] 44 | | We do that by using the tail method to get a reference to the RefCell>. [INFO] [stdout] 45 | | Then we use the borrow_mut method on the RefCell> to change the value inside from an Rc [INFO] [stdout] 46 | | that holds a Nil value to the Rc in b, pp. 381 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 47 | / if let Some(link) = a.tail() { [INFO] [stdout] 48 | | *link.borrow_mut() = Rc::clone(&b); [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap15/6_ref_cycle_samples.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | Cons(i32, RefCell>), [INFO] [stdout] | ---- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 16 | Cons((), RefCell>), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `list` [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_list` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `largest_not_work` is never used [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | / /** Compile error. [INFO] [stdout] 61 | | The error shows this type “has infnite size.” [INFO] [stdout] 62 | | The reason is that we’ve defined List with a variant that is recursive: [INFO] [stdout] 63 | | it holds another value of itself directly. [INFO] [stdout] 64 | | As a result, Rust can’t figure out how much space it needs to store a List value. */ [INFO] [stdout] | |____________________________________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 68 | / let list: ListBox = Cons(1, [INFO] [stdout] 69 | | Box::new(Cons(2, [INFO] [stdout] 70 | | Box::new(Cons(3, [INFO] [stdout] 71 | | Box::new(Nil)))))); [INFO] [stdout] | |___________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / /** Following the Pointer to the Value with the Dereference Operator, pp. 354 [INFO] [stdout] 76 | | The variable x holds an i32 value, 5. [INFO] [stdout] 77 | | We set y equal to a reference to x. We can assert that x is equal to 5. [INFO] [stdout] 78 | | However, if we want to make an assertion about the value in y, [INFO] [stdout] 79 | | we have to use *y to follow the reference to the value it’s pointing to (hence dereference). [INFO] [stdout] 80 | | Once we dereference y, we have access to the integer value y is pointing to [INFO] [stdout] 81 | | that we can compare with 5, pp. 355 */ [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] 82 | let x = 5; [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | / /** [INFO] [stdout] 105 | | * Implicit Deref Coercions with Functions and Methods, pp. 359 */ [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 106 | // call the hello function with a string slice as an argument, pp. 359 [INFO] [stdout] 107 | hello("Rust1"); [INFO] [stdout] | -------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | / /** If Rust didn’t implement deref coercion, [INFO] [stdout] 116 | | we would have to write the code like below instead, [INFO] [stdout] 117 | | to call hello with a value of type &MyBox, pp. 359 [INFO] [stdout] 118 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 119 | let m = MyBox::new(String::from("Rust3")); [INFO] [stdout] | ------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / /** The (*m) dereferences the MyBox into a String . [INFO] [stdout] 121 | | Then the & and take a string slice of the String [INFO] [stdout] 122 | | that is equal to the whole string to match the signature of hello, pp. 360 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 123 | hello(&(*m)[..]); [INFO] [stdout] | ---------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 15 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `y` is never read [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 3 | x: T, [INFO] [stdout] 4 | y: T, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `distance_from_origin` is never used [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl Point { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 12 | fn distance_from_origin(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `List_Box` should have an upper camel case name [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:2:6 [INFO] [stdout] | [INFO] [stdout] 2 | enum List_Box { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ListBox` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / /** The Cons variants own the data they hold, so when we create the b list, [INFO] [stdout] 22 | | a is moved into b and b owns a. Then, when we try to use a again when creating c, [INFO] [stdout] 23 | | we’re not allowed to because a has been moved, pp. 366 [INFO] [stdout] 24 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** Box allows immutable or mutable borrows checked at compile time, pp. 370 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let a = List_Box::Cons(5, [INFO] [stdout] 18 | | Box::new(List_Box::Cons(10, [INFO] [stdout] 19 | | Box::new(List_Box::Nil)))); [INFO] [stdout] | |______________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / /** pp 370 [INFO] [stdout] 30 | | - Rc ENABLES MULTIPLE OWNERS of the same data, [INFO] [stdout] 31 | | while Box and RefCell have single owners [INFO] [stdout] 32 | | - Rc allows only IMMUTABLE borrows checked at compile time [INFO] [stdout] 33 | | */ [INFO] [stdout] | |__________^ [INFO] [stdout] 34 | / let a: Rc = Rc::new(List::Cons(5, [INFO] [stdout] 35 | | Rc::new(List::Cons(10, [INFO] [stdout] 36 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** The implementation of Rc::clone doesn’t make a deep copy of all the data [INFO] [stdout] 38 | | like most types’ implementations of clone do. [INFO] [stdout] 39 | | The call to Rc::clone only increments the reference count, which doesn’t take much time. [INFO] [stdout] 40 | | Deep copies of data can take a lot of time, pp. 367 */ [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] 41 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | /** Printing the reference count, pp. 368 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | / let a = Rc::new(List::Cons(5, [INFO] [stdout] 50 | | Rc::new(List::Cons(10, [INFO] [stdout] 51 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let c = List::Cons(4, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 3 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | Cons(i32, Rc), [INFO] [stdout] | ---- ^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let s = data.to_string(); [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] --> src/bin/chap8/4_string_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | let s = "initial contents".to_string(); [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] --> src/bin/chap8/4_string_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let s = String::from("initial contents"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let hello = String::from("السلام علیكم"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let hello = String::from("Dobrý den"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let hello = String::from("Hello"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let hello = String::from("Здравствуйте"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let hello = String::from("Hola"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [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: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Counter` is never constructed [INFO] [stdout] --> src/bin/chap13/6_create_own_iter_samples.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Counter { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/bin/chap13/6_create_own_iter_samples.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 5 | impl Counter { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 6 | fn new() -> Counter { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `List_Box` should have an upper camel case name [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:2:6 [INFO] [stdout] | [INFO] [stdout] 2 | enum List_Box { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `ListBox` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/3_thread_samples.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / /** The main thread will wait for the spawned thread to finish and [INFO] [stdout] 14 | | then run its for loop, so the output won’t be interleaved anymore, pp. 394 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 15 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / /** The Cons variants own the data they hold, so when we create the b list, [INFO] [stdout] 22 | | a is moved into b and b owns a. Then, when we try to use a again when creating c, [INFO] [stdout] 23 | | we’re not allowed to because a has been moved, pp. 366 [INFO] [stdout] 24 | | */ [INFO] [stdout] | |______^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** Box allows immutable or mutable borrows checked at compile time, pp. 370 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let a = List_Box::Cons(5, [INFO] [stdout] 18 | | Box::new(List_Box::Cons(10, [INFO] [stdout] 19 | | Box::new(List_Box::Nil)))); [INFO] [stdout] | |______________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / /** pp 370 [INFO] [stdout] 30 | | - Rc ENABLES MULTIPLE OWNERS of the same data, [INFO] [stdout] 31 | | while Box and RefCell have single owners [INFO] [stdout] 32 | | - Rc allows only IMMUTABLE borrows checked at compile time [INFO] [stdout] 33 | | */ [INFO] [stdout] | |__________^ [INFO] [stdout] 34 | / let a: Rc = Rc::new(List::Cons(5, [INFO] [stdout] 35 | | Rc::new(List::Cons(10, [INFO] [stdout] 36 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** The implementation of Rc::clone doesn’t make a deep copy of all the data [INFO] [stdout] 38 | | like most types’ implementations of clone do. [INFO] [stdout] 39 | | The call to Rc::clone only increments the reference count, which doesn’t take much time. [INFO] [stdout] 40 | | Deep copies of data can take a lot of time, pp. 367 */ [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] 41 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | /** Printing the reference count, pp. 368 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | / let a = Rc::new(List::Cons(5, [INFO] [stdout] 50 | | Rc::new(List::Cons(10, [INFO] [stdout] 51 | | Rc::new(List::Nil))))); [INFO] [stdout] | |_________________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | / /** Compile error. [INFO] [stdout] 61 | | The error shows this type “has infnite size.” [INFO] [stdout] 62 | | The reason is that we’ve defined List with a variant that is recursive: [INFO] [stdout] 63 | | it holds another value of itself directly. [INFO] [stdout] 64 | | As a result, Rust can’t figure out how much space it needs to store a List value. */ [INFO] [stdout] | |____________________________________________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 68 | / let list: ListBox = Cons(1, [INFO] [stdout] 69 | | Box::new(Cons(2, [INFO] [stdout] 70 | | Box::new(Cons(3, [INFO] [stdout] 71 | | Box::new(Nil)))))); [INFO] [stdout] | |___________________________________________________________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / /** Following the Pointer to the Value with the Dereference Operator, pp. 354 [INFO] [stdout] 76 | | The variable x holds an i32 value, 5. [INFO] [stdout] 77 | | We set y equal to a reference to x. We can assert that x is equal to 5. [INFO] [stdout] 78 | | However, if we want to make an assertion about the value in y, [INFO] [stdout] 79 | | we have to use *y to follow the reference to the value it’s pointing to (hence dereference). [INFO] [stdout] 80 | | Once we dereference y, we have access to the integer value y is pointing to [INFO] [stdout] 81 | | that we can compare with 5, pp. 355 */ [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] 82 | let x = 5; [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | / /** [INFO] [stdout] 105 | | * Implicit Deref Coercions with Functions and Methods, pp. 359 */ [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 106 | // call the hello function with a string slice as an argument, pp. 359 [INFO] [stdout] 107 | hello("Rust1"); [INFO] [stdout] | -------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | / /** If Rust didn’t implement deref coercion, [INFO] [stdout] 116 | | we would have to write the code like below instead, [INFO] [stdout] 117 | | to call hello with a value of type &MyBox, pp. 359 [INFO] [stdout] 118 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 119 | let m = MyBox::new(String::from("Rust3")); [INFO] [stdout] | ------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / /** The (*m) dereferences the MyBox into a String . [INFO] [stdout] 121 | | Then the & and take a string slice of the String [INFO] [stdout] 122 | | that is equal to the whole string to match the signature of hello, pp. 360 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 123 | hello(&(*m)[..]); [INFO] [stdout] | ---------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/4_refcell_samples.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | / /** We can’t modify the to keep track of the messages, [INFO] [stdout] 77 | | because the send method takes an immutable reference to self, pp. 374. */ [INFO] [stdout] 78 | | // self.sent_messages.push(String::from(message)); [INFO] [stdout] ... | [INFO] [stdout] 82 | | Then we can call push on the mutable reference to the vector [INFO] [stdout] 83 | | to keep track of the messages sent during the test, pp. 375 */ [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] 84 | let mut one_borrow: RefMut> = self.sent_messages.borrow_mut(); [INFO] [stdout] | -------------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let b = List::Cons(3, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let c = List::Cons(4, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v1` [INFO] [stdout] --> src/bin/chap13/2_closure_samples.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | let v1 = c.value(1); let v2 = c.value(2); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_v1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 3 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/3_rc_samples.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | Cons(i32, Rc), [INFO] [stdout] | ---- ^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 9 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `some_function` is never used [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/1_box_samples.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | Cons(i32, Box), [INFO] [stdout] | ---- ^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 15 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let d = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn greeting2(name: &str) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Guess { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 14 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `newB` should have a snake case name [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn newB(value: i32) -> Guess { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `new_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `greater_than_100B` should have a snake case name [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | fn greater_than_100B() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `greater_than_100_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Shoe` is never constructed [INFO] [stdout] --> src/bin/chap13/5_closure_iter_samples.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Shoe { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shoes_in_my_size` is never used [INFO] [stdout] --> src/bin/chap13/5_closure_iter_samples.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn shoes_in_my_size(shoes: Vec, shoe_size: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | / /** The closure uses v, so it will capture v and make it part of the closure’s environment. [INFO] [stdout] 10 | | Because thread::spawn runs this closure in a new thread, [INFO] [stdout] 11 | | we should be able to access v inside that new thread. */ [INFO] [stdout] 12 | | /** Compile ERROR [INFO] [stdout] ... | [INFO] [stdout] 31 | | we force the closure to take ownership of the values it’s using [INFO] [stdout] 32 | | rather than allowing Rust to infer that it should borrow the values, pp. 397 */ [INFO] [stdout] | |_______________________________________________________________________________________^ [INFO] [stdout] 33 | / let handle: JoinHandle<()> = thread::spawn(move || { [INFO] [stdout] 34 | | println!("Here's a vector: {:?}", v); [INFO] [stdout] 35 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** If we added move to the closure, we would move v into the closure’s environment, [INFO] [stdout] 38 | | and we could no longer call drop on it in the main thread, pp. 398 */ [INFO] [stdout] | |_____________________________________________________________________________^ [INFO] [stdout] 39 | // drop(v); // oh no! [INFO] [stdout] 40 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind` and `address` are never read [INFO] [stdout] --> src/bin/chap6/1_enum_sample.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | struct IpAddr { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | kind: IpAddrKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpAddr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/2_vec_immut_ref.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut v = vec![1, 2, 3, 4, 5]; [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: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `some_string` [INFO] [stdout] --> src/bin/chap4/4_reference_borrowing.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | fn change_immut(some_string: &String) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn read_username_from_file() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file2` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn read_username_from_file2() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file3` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn read_username_from_file3() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/bin/chap9/2_result_recoverable_samples.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/bin/chap9/2_result_recoverable_samples.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `y` is never read [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 3 | x: T, [INFO] [stdout] 4 | y: T, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `distance_from_origin` is never used [INFO] [stdout] --> src/bin/chap10/1_generic_samples.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl Point { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 12 | fn distance_from_origin(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/2_vec_immut_ref.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut v = vec![1, 2, 3, 4, 5]; [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 import: `std::time::Duration` [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | / /** The closure uses v, so it will capture v and make it part of the closure’s environment. [INFO] [stdout] 10 | | Because thread::spawn runs this closure in a new thread, [INFO] [stdout] 11 | | we should be able to access v inside that new thread. */ [INFO] [stdout] 12 | | /** Compile ERROR [INFO] [stdout] ... | [INFO] [stdout] 31 | | we force the closure to take ownership of the values it’s using [INFO] [stdout] 32 | | rather than allowing Rust to infer that it should borrow the values, pp. 397 */ [INFO] [stdout] | |_______________________________________________________________________________________^ [INFO] [stdout] 33 | / let handle: JoinHandle<()> = thread::spawn(move || { [INFO] [stdout] 34 | | println!("Here's a vector: {:?}", v); [INFO] [stdout] 35 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/4_closure_thread_samples.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / /** If we added move to the closure, we would move v into the closure’s environment, [INFO] [stdout] 38 | | and we could no longer call drop on it in the main thread, pp. 398 */ [INFO] [stdout] | |_____________________________________________________________________________^ [INFO] [stdout] 39 | // drop(v); // oh no! [INFO] [stdout] 40 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `list` [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_list` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /** Mutex is smart pointer. [INFO] [stdout] 21 | | The call to lock returns a MutexGuard wrapped in a LockResult [INFO] [stdout] 22 | | that we handled with the call to unwrap. [INFO] [stdout] ... | [INFO] [stdout] 29 | | blocking the mutex from being used by other threads [INFO] [stdout] 30 | | because the lock release happens automatically, pp. 408 */ [INFO] [stdout] | |__________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / /** Sharing a Mutex Between Multiple Threads, pp. 408 */ [INFO] [stdout] 35 | | /** Compile Error [INFO] [stdout] 36 | | The error message states that the counter value was moved [INFO] [stdout] 37 | | in the previous iteration of the loop. [INFO] [stdout] ... | [INFO] [stdout] 56 | |/ /** [INFO] [stdout] 57 | || let counter = Rc::clone(&counter); [INFO] [stdout] 58 | || [INFO] [stdout] 59 | || let mut handles = vec![]; [INFO] [stdout] ... || [INFO] [stdout] 71 | || println!("Result: {}", *counter.lock().unwrap()); [INFO] [stdout] 72 | || */ [INFO] [stdout] | ||______^ [INFO] [stdout] | |______| [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | / /** To access the data inside the mutex, we use the method to acquire the lock. [INFO] [stdout] 11 | | This call will block the current thread so it can’t do any work [INFO] [stdout] 12 | | until it’s our turn to have the lock. [INFO] [stdout] ... | [INFO] [stdout] 15 | | In that case, no one would ever be able to get the lock, [INFO] [stdout] 16 | | so we’ve chosen to unwrap and have this thread panic in that situation, pp. 407 */ [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] 17 | let mut num: MutexGuard = m.lock().unwrap(); [INFO] [stdout] | ------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let s = data.to_string(); [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] --> src/bin/chap8/4_string_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | let s = "initial contents".to_string(); [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] --> src/bin/chap8/4_string_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let s = String::from("initial contents"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let hello = String::from("السلام علیكم"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let hello = String::from("Dobrý den"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `largest_not_work` is never used [INFO] [stdout] --> src/bin/chap10/3_generic_trait_samples.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn largest_not_work(list: &[T]) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let hello = String::from("Hello"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let hello = String::from("Здравствуйте"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let hello = String::from("Hola"); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / /** The lack of infinite output indicates that this code didn’t create a reference cycle. [INFO] [stdout] 41 | | We can also tell this by looking at the values we get from calling Rc::strong_count and Rc::weak_count */ [INFO] [stdout] | |_________________________________________________________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** leaf starts out without a parent, so we create a new, empty Weak reference instance, pp. 386 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let leaf = Rc::new(Node { [INFO] [stdout] 18 | | value: 3, [INFO] [stdout] 19 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 20 | | children: RefCell::new(vec![]), [INFO] [stdout] 21 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | /** in an inner scope and examining strong and weak reference counts, pp. 388 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | / let leaf = Rc::new(Node { [INFO] [stdout] 48 | | value: 3, [INFO] [stdout] 49 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 50 | | children: RefCell::new(vec![]), [INFO] [stdout] 51 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value` and `children` are never read [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | struct Node { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | parent: RefCell>, [INFO] [stdout] 12 | children: RefCell>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/chap8/4_string_samples.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let mut s = String::new(); [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 doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / /** The lack of infinite output indicates that this code didn’t create a reference cycle. [INFO] [stdout] 41 | | We can also tell this by looking at the values we get from calling Rc::strong_count and Rc::weak_count */ [INFO] [stdout] | |_________________________________________________________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | /** leaf starts out without a parent, so we create a new, empty Weak reference instance, pp. 386 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | / let leaf = Rc::new(Node { [INFO] [stdout] 18 | | value: 3, [INFO] [stdout] 19 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 20 | | children: RefCell::new(vec![]), [INFO] [stdout] 21 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | /** in an inner scope and examining strong and weak reference counts, pp. 388 */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | / let leaf = Rc::new(Node { [INFO] [stdout] 48 | | value: 3, [INFO] [stdout] 49 | | parent: RefCell::new(Weak::new()), [INFO] [stdout] 50 | | children: RefCell::new(vec![]), [INFO] [stdout] 51 | | }); [INFO] [stdout] | |_______- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value` and `children` are never read [INFO] [stdout] --> src/bin/chap15/7_rc_weak_samples.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | struct Node { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | parent: RefCell>, [INFO] [stdout] 12 | children: RefCell>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/bin/chap10/4_generic_trait_samples.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl Pair { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 10 | fn new(x: T, y: T) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/5_rc_refcell_samples.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | Cons(Rc>, Rc), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 8 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let d = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/bin/chap15/2_drop_samples.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let c = CustomSmartPointer { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /** Mutex is smart pointer. [INFO] [stdout] 21 | | The call to lock returns a MutexGuard wrapped in a LockResult [INFO] [stdout] 22 | | that we handled with the call to unwrap. [INFO] [stdout] ... | [INFO] [stdout] 29 | | blocking the mutex from being used by other threads [INFO] [stdout] 30 | | because the lock release happens automatically, pp. 408 */ [INFO] [stdout] | |__________________________________________________________________^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / /** Sharing a Mutex Between Multiple Threads, pp. 408 */ [INFO] [stdout] 35 | | /** Compile Error [INFO] [stdout] 36 | | The error message states that the counter value was moved [INFO] [stdout] 37 | | in the previous iteration of the loop. [INFO] [stdout] ... | [INFO] [stdout] 56 | |/ /** [INFO] [stdout] 57 | || let counter = Rc::clone(&counter); [INFO] [stdout] 58 | || [INFO] [stdout] 59 | || let mut handles = vec![]; [INFO] [stdout] ... || [INFO] [stdout] 71 | || println!("Result: {}", *counter.lock().unwrap()); [INFO] [stdout] 72 | || */ [INFO] [stdout] | ||______^ [INFO] [stdout] | |______| [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/6_mutex_samples.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | / /** To access the data inside the mutex, we use the method to acquire the lock. [INFO] [stdout] 11 | | This call will block the current thread so it can’t do any work [INFO] [stdout] 12 | | until it’s our turn to have the lock. [INFO] [stdout] ... | [INFO] [stdout] 15 | | In that case, no one would ever be able to get the lock, [INFO] [stdout] 16 | | so we’ve chosen to unwrap and have this thread panic in that situation, pp. 407 */ [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] 17 | let mut num: MutexGuard = m.lock().unwrap(); [INFO] [stdout] | ------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/3_thread_samples.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / /** The main thread will wait for the spawned thread to finish and [INFO] [stdout] 14 | | then run its for loop, so the output won’t be interleaved anymore, pp. 394 */ [INFO] [stdout] | |_____________________________________________________________________________________^ [INFO] [stdout] 15 | handle.join().unwrap(); [INFO] [stdout] | ---------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn read_username_from_file() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file2` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn read_username_from_file2() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_username_from_file3` is never used [INFO] [stdout] --> src/bin/chap9/4_propagating_error.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn read_username_from_file3() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / /** The send function takes ownership of its parameter, [INFO] [stdout] 12 | | and when the value is moved, the receiver takes ownership of it. [INFO] [stdout] 13 | | This stops us from accidentally using the value again after sending it; [INFO] [stdout] 14 | | the ownership system checks that everything is okay, pp. 402 */ [INFO] [stdout] | |___________________________________________________________________________^ [INFO] [stdout] 15 | tx.send(val).unwrap(); [INFO] [stdout] | --------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / /** recv , short for receive, which will block the main thread’s execution and [INFO] [stdout] 23 | | wait until a value is sent down the channel. [INFO] [stdout] 24 | | Once a value is sent, recv will return it in a Result. [INFO] [stdout] 25 | | When the sending end of the channel closes, [INFO] [stdout] 26 | | recv will return an error to signal that no more values will be coming, pp. 401 */ [INFO] [stdout] | |__________________________________________________________________________________________^ [INFO] [stdout] 27 | let received = rx.recv().unwrap(); [INFO] [stdout] | ---------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / /** The spawned thread will now send multiple messages [INFO] [stdout] 34 | | and pause for a second between each message, pp. 403 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 35 | / thread::spawn(move || { [INFO] [stdout] 36 | | let vals = vec![ [INFO] [stdout] 37 | | String::from("hi"), [INFO] [stdout] 38 | | String::from("from"), [INFO] [stdout] ... | [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / /** We iterate over them, sending each individually, [INFO] [stdout] 43 | | and pause between each by calling the thread::sleep function [INFO] [stdout] 44 | | with a Duration value of 1 second */ [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] 45 | / for val in vals { [INFO] [stdout] 46 | | tx.send(val).unwrap(); [INFO] [stdout] 47 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / /** Treating rx as an iterator [INFO] [stdout] 52 | | For each value received, we’re printing it. [INFO] [stdout] 53 | | When the channel is closed, iteration will end. */ [INFO] [stdout] | |__________________________________________________________^ [INFO] [stdout] 54 | / for received in rx { [INFO] [stdout] 55 | | println!("Got: {}", received); [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / /** Use mpsc to create multiple threads that all send values to the same receiver. [INFO] [stdout] 62 | | We can do so by cloning the transmitting half of the channel */ [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] 63 | let tx1 = mpsc::Sender::clone(&tx); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `addr1`, `addr2`, `addr3`, and `addr4` are never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct Ipv4Addr { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 3 | // --snip-- [INFO] [stdout] 4 | addr1: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 5 | addr2: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | addr3: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | addr4: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv4Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `address` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 11 | struct Ipv6Addr { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 12 | // --snip-- [INFO] [stdout] 13 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ipv6Addr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | V4(Ipv4Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 | V4(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/bin/chap6/3_enum_sample.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | V6(Ipv6Addr), [INFO] [stdout] | -- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 19 | V6(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | / /** This won't compile, pp. 220 [INFO] [stdout] 65 | | let result; [INFO] [stdout] 66 | | { [INFO] [stdout] 67 | | let string2 = String::from("xyz"); [INFO] [stdout] ... | [INFO] [stdout] 70 | | println!("The longest string is {}", result); [INFO] [stdout] 71 | | */ [INFO] [stdout] | |______^ [INFO] [stdout] 72 | [INFO] [stdout] 73 | let string1 = String::from("abcd"); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `string1` [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | let string1 = String::from("long string is long"); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_string1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest_x` is never used [INFO] [stdout] --> src/bin/chap10/5_lifetime_generic_samples.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn longest_x<'a>(x: &'a str, y: &str) -> &'a str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `some_string` [INFO] [stdout] --> src/bin/chap4/4_reference_borrowing.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | fn change_immut(some_string: &String) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_string` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn greeting2(name: &str) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Guess { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 14 | value: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `newB` should have a snake case name [INFO] [stdout] --> src/bin/chap11/1_test_samples.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn newB(value: i32) -> Guess { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `new_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `some_function` is never used [INFO] [stdout] --> src/bin/chap10/2_trait_samples.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn some_function(t: &T, u: &U) -> i32 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / /** The send function takes ownership of its parameter, [INFO] [stdout] 12 | | and when the value is moved, the receiver takes ownership of it. [INFO] [stdout] 13 | | This stops us from accidentally using the value again after sending it; [INFO] [stdout] 14 | | the ownership system checks that everything is okay, pp. 402 */ [INFO] [stdout] | |___________________________________________________________________________^ [INFO] [stdout] 15 | tx.send(val).unwrap(); [INFO] [stdout] | --------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / /** recv , short for receive, which will block the main thread’s execution and [INFO] [stdout] 23 | | wait until a value is sent down the channel. [INFO] [stdout] 24 | | Once a value is sent, recv will return it in a Result. [INFO] [stdout] 25 | | When the sending end of the channel closes, [INFO] [stdout] 26 | | recv will return an error to signal that no more values will be coming, pp. 401 */ [INFO] [stdout] | |__________________________________________________________________________________________^ [INFO] [stdout] 27 | let received = rx.recv().unwrap(); [INFO] [stdout] | ---------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / /** The spawned thread will now send multiple messages [INFO] [stdout] 34 | | and pause for a second between each message, pp. 403 */ [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] 35 | / thread::spawn(move || { [INFO] [stdout] 36 | | let vals = vec![ [INFO] [stdout] 37 | | String::from("hi"), [INFO] [stdout] 38 | | String::from("from"), [INFO] [stdout] ... | [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | / /** We iterate over them, sending each individually, [INFO] [stdout] 43 | | and pause between each by calling the thread::sleep function [INFO] [stdout] 44 | | with a Duration value of 1 second */ [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] 45 | / for val in vals { [INFO] [stdout] 46 | | tx.send(val).unwrap(); [INFO] [stdout] 47 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / /** Treating rx as an iterator [INFO] [stdout] 52 | | For each value received, we’re printing it. [INFO] [stdout] 53 | | When the channel is closed, iteration will end. */ [INFO] [stdout] | |__________________________________________________________^ [INFO] [stdout] 54 | / for received in rx { [INFO] [stdout] 55 | | println!("Got: {}", received); [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/bin/chap16/5_channel_thread_samples.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / /** Use mpsc to create multiple threads that all send values to the same receiver. [INFO] [stdout] 62 | | We can do so by cloning the transmitting half of the channel */ [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] 63 | let tx1 = mpsc::Sender::clone(&tx); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/bin/chap15/5_rc_refcell_samples.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | Cons(Rc>, Rc), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 8 | Cons((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `s2` is never read [INFO] [stdout] --> src/bin/chap4/1_variable_scope.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | let mut s2 = "hello world!"; [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: fields `kind` and `address` are never read [INFO] [stdout] --> src/bin/chap6/1_enum_sample.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | struct IpAddr { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 9 | kind: IpAddrKind, [INFO] [stdout] | ^^^^ [INFO] [stdout] 10 | address: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpAddr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmeta0l6ady" [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcwoLNTj/symbols.o" "/opt/rustwide/target/debug/deps/3_enum_sample-ad4221abf1d3421c.3_enum_sample.6a458d8811fe6f0-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/3_enum_sample-ad4221abf1d3421c.4y63seffm8n4ua7de0zsa2dhx.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/3_enum_sample-ad4221abf1d3421c" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcNoHSvX/symbols.o" "/opt/rustwide/target/debug/deps/test2-eea1085c171dbb79.test2.219b3dc462446dff-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/test2-eea1085c171dbb79.b768xjvqwj4j2b57itutavr4a.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/test2-eea1085c171dbb79" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "1_closure_samples" test) due to 2 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "3_enum_sample" test) due to 2 previous errors; 4 warnings emitted [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcIE2b4w/symbols.o" "/opt/rustwide/target/debug/deps/5_lifetime_generic_samples-9255acad6a698011.5_lifetime_generic_samples.2b369679cef78fe2-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/5_lifetime_generic_samples-9255acad6a698011.aujm14k7fxrdlzpf6ti9bp2mg.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/5_lifetime_generic_samples-9255acad6a698011" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcTzGtKg/symbols.o" "/opt/rustwide/target/debug/deps/6_mutex_samples-f73e0a48e2fa4287.6_mutex_samples.d06a608f84446f33-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/6_mutex_samples-f73e0a48e2fa4287.3ti8sos30owd4y9m89vadfqho.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/6_mutex_samples-f73e0a48e2fa4287" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "test2" test) due to 2 previous errors [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcy2UB8J/symbols.o" "/opt/rustwide/target/debug/deps/4_reference_borrowing-01c511df364361df.4_reference_borrowing.f6c8c76a6f7c4e54-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/4_reference_borrowing-01c511df364361df.4l7ydcgt6f5itrf3sqmqdxbs4.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/4_reference_borrowing-01c511df364361df" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "4_reference_borrowing" test) due to 2 previous errors; 1 warning emitted [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "6_mutex_samples" test) due to 2 previous errors; 4 warnings emitted [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "5_lifetime_generic_samples" test) due to 2 previous errors; 4 warnings emitted [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcHkj4mM/symbols.o" "/opt/rustwide/target/debug/deps/1_enum_sample-a4f44d165bd51b38.1_enum_sample.1361f4c7b223ce06-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/1_enum_sample-a4f44d165bd51b38.ab9440l3qsox7cq6mak6hl82g.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/1_enum_sample-a4f44d165bd51b38" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "1_enum_sample" test) due to 2 previous errors; 1 warning emitted [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustc6t7gG5/symbols.o" "/opt/rustwide/target/debug/deps/5_channel_thread_samples-36d44aa91a4c96be.5_channel_thread_samples.676dbe09aa05395e-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/5_channel_thread_samples-36d44aa91a4c96be.bmaqenp9la6usclqf4tiwnbar.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/5_channel_thread_samples-36d44aa91a4c96be" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "5_channel_thread_samples" test) due to 2 previous errors; 6 warnings emitted [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcDnKIr0/symbols.o" "/opt/rustwide/target/debug/deps/5_rc_refcell_samples-de172063d6f7aa2b.5_rc_refcell_samples.6deb37a46a2c2fbb-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/5_rc_refcell_samples-de172063d6f7aa2b.ccwyi87wf3v419d8900ng9fw7.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/5_rc_refcell_samples-de172063d6f7aa2b" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcftDVJo/symbols.o" "/opt/rustwide/target/debug/deps/1_variable_scope-e1997c06e9b39209.1_variable_scope.17b7999e083cfbf5-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/1_variable_scope-e1997c06e9b39209.33cdm7jb4ees3sxmb45hrjgot.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/1_variable_scope-e1997c06e9b39209" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcfZaxuP/symbols.o" "/opt/rustwide/target/debug/deps/integration_test-47d5bef777ed3b7d.integration_test.570050f9f110f47-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/integration_test-47d5bef777ed3b7d.c32mn4gxsyuaiti607vtyn3rl.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/target/debug/deps/librust_prog_lang-f604a0f9b4f04ff3.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/integration_test-47d5bef777ed3b7d" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustc5ITBnL/symbols.o" "/opt/rustwide/target/debug/deps/2_variable_move-f7b71b77e63ed6f4.2_variable_move.fcff5ff7806b7ac0-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/2_variable_move-f7b71b77e63ed6f4.dkhe7e08e0uxw3wrh93jzuiiw.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/2_variable_move-f7b71b77e63ed6f4" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcxuI8ZC/symbols.o" "/opt/rustwide/target/debug/deps/5_hashmap_samples-77ea2ef2d5ce6b2c.5_hashmap_samples.ab96b1cf5c3722ed-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/5_hashmap_samples-77ea2ef2d5ce6b2c.1ikwtmelqwslxholn8k6csa07.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/5_hashmap_samples-77ea2ef2d5ce6b2c" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcNR2QQ5/symbols.o" "/opt/rustwide/target/debug/deps/3_vec_iter-ec9ddc374372a02d.3_vec_iter.331bfea7a71c357c-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/3_vec_iter-ec9ddc374372a02d.6aft5m2ltxctpb0cbk3k8kw7m.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/3_vec_iter-ec9ddc374372a02d" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcYG8bKq/symbols.o" "/opt/rustwide/target/debug/deps/1_panic_samples-7085d7812c8231aa.1_panic_samples.2c684a9c483a7bd5-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/1_panic_samples-7085d7812c8231aa.covlxp22sh9bs29o8ucm2j7fo.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/1_panic_samples-7085d7812c8231aa" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcgw03vj/symbols.o" "/opt/rustwide/target/debug/deps/8_string_literal_slices-35cb8a7eb6caeb7b.8_string_literal_slices.23cd4985e45673d2-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/8_string_literal_slices-35cb8a7eb6caeb7b.5prpumn91mh6t31bx70oomooa.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-9fe2882344d54f63.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9a21fdde14ac91dc.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-df7cac1850604c78.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-2f3836017b2380f6.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-de48b8168d6cf4fa.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9f3477fb95a0bba7.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-210d920812faea91.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1a79dd36d08251de.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-886230e7120831b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-a9d7d97cdc65a449.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c8f13465f1a795b2.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-14df174c91007922.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6275035a459b3ada.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/b642703cf9526da1e72c0b6755753b939a9c6b6d/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/8_string_literal_slices-35cb8a7eb6caeb7b" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" [INFO] [stdout] = note: /usr/bin/ld: final link failed: No space left on device [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "2_variable_move" test) due to 2 previous errors [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "8_string_literal_slices" test) due to 2 previous errors [INFO] [stdout] error: aborting due to 1 previous error; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "1_variable_scope" test) due to 2 previous errors; 1 warning emitted [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "3_vec_iter" test) due to 2 previous errors [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "1_panic_samples" test) due to 2 previous errors [INFO] [stderr] error: could not compile `rust_prog_lang` (test "integration_test") due to 2 previous errors [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "5_rc_refcell_samples" test) due to 2 previous errors; 1 warning emitted [INFO] [stderr] error: could not compile `rust_prog_lang` (bin "5_hashmap_samples" test) due to 2 previous errors [INFO] running `Command { std: "docker" "inspect" "533c9c8c5220c7285a0f84d5e2c7a43f8994eb79cc51b40e1836c25053443d8e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "533c9c8c5220c7285a0f84d5e2c7a43f8994eb79cc51b40e1836c25053443d8e", kill_on_drop: false }` [INFO] [stdout] 533c9c8c5220c7285a0f84d5e2c7a43f8994eb79cc51b40e1836c25053443d8e