[INFO] cloning repository https://github.com/yaoliao/rust-study [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yaoliao/rust-study" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyaoliao%2Frust-study", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyaoliao%2Frust-study'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 916a70850556f642248b9fb99f45f61a1896f611 [INFO] testing yaoliao/rust-study against 1.49.0 for beta-1.50-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyaoliao%2Frust-study" "/workspace/builds/worker-3/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/yaoliao/rust-study on toolchain 1.49.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.49.0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/yaoliao/rust-study [INFO] finished tweaking git repo https://github.com/yaoliao/rust-study [INFO] tweaked toml for git repo https://github.com/yaoliao/rust-study written to /workspace/builds/worker-3/source/Cargo.toml [INFO] crate git repo https://github.com/yaoliao/rust-study already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.49.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2cf418658a647de769752f4063e3d7943705ee23572c9ea6d7cbf28624fc2aec [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "2cf418658a647de769752f4063e3d7943705ee23572c9ea6d7cbf28624fc2aec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2cf418658a647de769752f4063e3d7943705ee23572c9ea6d7cbf28624fc2aec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2cf418658a647de769752f4063e3d7943705ee23572c9ea6d7cbf28624fc2aec", kill_on_drop: false }` [INFO] [stdout] 2cf418658a647de769752f4063e3d7943705ee23572c9ea6d7cbf28624fc2aec [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6d03a8d9dc7e545123058c01d6fda5c48a8463783225a3d7e48055323547412a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "6d03a8d9dc7e545123058c01d6fda5c48a8463783225a3d7e48055323547412a", kill_on_drop: false }` [INFO] [stderr] Compiling futures-core-preview v0.3.0-alpha.17 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling gimli v0.23.0 [INFO] [stderr] Compiling adler v0.2.3 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling futures-io-preview v0.3.0-alpha.17 [INFO] [stderr] Compiling rustc-demangle v0.1.18 [INFO] [stderr] Compiling object v0.22.0 [INFO] [stderr] Compiling slab v0.4.2 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling smallvec v0.4.5 [INFO] [stderr] Compiling miniz_oxide v0.4.3 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling clap v2.33.3 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling futures-sink-preview v0.3.0-alpha.17 [INFO] [stderr] Compiling rand v0.5.6 [INFO] [stderr] Compiling futures-channel-preview v0.3.0-alpha.17 [INFO] [stderr] Compiling futures-util-preview v0.3.0-alpha.17 [INFO] [stderr] Compiling addr2line v0.14.0 [INFO] [stderr] Compiling backtrace v0.3.55 [INFO] [stderr] Compiling futures-executor-preview v0.3.0-alpha.17 [INFO] [stderr] Compiling futures-preview v0.3.0-alpha.17 [INFO] [stderr] Compiling error-chain v0.10.0 [INFO] [stderr] Compiling ferris-says v0.2.0 [INFO] [stderr] Compiling rust-study v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `soup` [INFO] [stdout] --> src/lib.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | let soup = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_soup` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `add` [INFO] [stdout] --> src/front_of_house.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | fn add() { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `take_order` [INFO] [stdout] --> src/front_of_house.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | fn take_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `server_order` [INFO] [stdout] --> src/front_of_house.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | fn server_order() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `take_payment` [INFO] [stdout] --> src/front_of_house.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | fn take_payment() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `serve_order` [INFO] [stdout] --> src/lib.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `fix_incorrect_order` [INFO] [stdout] --> src/lib.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `cook_order` [INFO] [stdout] --> src/lib.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `seasonal_fruit` [INFO] [stdout] --> src/lib.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Salad` [INFO] [stdout] --> src/lib.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | Salad, [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/closure.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | /// 下面这段代码无法通过编译 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [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/closure.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | /// 因为使用了 [move] 导致 x 的所有权被转移到了 闭包[equal_to_x] 中 [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/closure.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /// 当下一行想去输出 x 的时候已经无法获取到所有权了 [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/unsafe_study/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | /// 不安全的创建裸指针的方法 [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 import: `std::cmp::Ordering` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/string.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / /// UTF-8编码时 一个汉字字符储存需要3到4个字节,所以 0.。1 运行会直接报错!!!!!!! [INFO] [stdout] 44 | | /// let c = &str[0..1]; [INFO] [stdout] 45 | | /// println!("{}", c); [INFO] [stdout] | |__________________________^ [INFO] [stdout] 46 | [INFO] [stdout] 47 | let chars = str.chars(); [INFO] [stdout] | ------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/collection.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / /// 获取了 vector 的第一个元素的不可变引用并尝试在 vector 末尾增加一个元素的时候,这是行不通的 [INFO] [stdout] 28 | | /// let new_one = &vector[0]; [INFO] [stdout] 29 | | /// vector.push(5); [INFO] [stdout] 30 | | /// println!("vec one :{}", new_one); [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] 31 | [INFO] [stdout] 32 | let num = vec![100, 233, 1232]; [INFO] [stdout] | ------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/map.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / /// u32 实现了 Copy trait 的类型,其值可以拷贝进哈希 map [INFO] [stdout] 12 | | /// 但是 String 的所有权会被转移到 map 中, [INFO] [stdout] 13 | | /// let mut map: HashMap = HashMap::new(); [INFO] [stdout] 14 | | /// map.insert(jack, 23); // jack 的所有权已经被转移 [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 17 | let key = vec![String::from("Jack"), String::from("Rose")]; [INFO] [stdout] | ----------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/map.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | /// 必须使用 HashMap<_, _> 表明类型 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | let mut map: HashMap<_, _> = key.iter().zip(value.iter()).collect(); [INFO] [stdout] | -------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/map.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | /// 根据旧值更新新值 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 53 | let text = "hello world wonderful world"; [INFO] [stdout] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/practice.rs:43:23 [INFO] [stdout] | [INFO] [stdout] 43 | if len / 2 == 0 { (vec[len / 2 - 1] + vec[len / 2]) } else { vec[len / 2] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Display` [INFO] [stdout] --> src/trait_study.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/trait_study.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / /// 返回错误,只有泛型为 f32 的才定义了这个方法 [INFO] [stdout] 12 | | /// println!("distance_from_origin: {}", p.distance_from_origin()); [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] 13 | let p = Point { x: 20.0, y: 30.0 }; [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/closure.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /// 闭包捕获环境 [INFO] [stdout] 21 | | /// 如果你希望强制闭包获取其使用的环境值的所有权,可以在参数列表前使用 [move] 关键字 [INFO] [stdout] 22 | | /// 类似:let equal_to_x = move |z| z == x; [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] 23 | let x = 4; [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ConsRc`, `NilRc` [INFO] [stdout] --> src/smart_pointer.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::smart_pointer::ListRc::{ConsRc, NilRc}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex`, `mpsc` [INFO] [stdout] --> src/concurrent/thread_study.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, mpsc, Mutex}; [INFO] [stdout] | ^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Formatter` [INFO] [stdout] --> src/unsafe_study/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fmt::Formatter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Point_v1` should have an upper camel case name [INFO] [stdout] --> src/unsafe_study/mod.rs:115:8 [INFO] [stdout] | [INFO] [stdout] 115 | struct Point_v1 { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `PointV1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `time::Duration` [INFO] [stdout] --> src/asynchronous/timer/executor.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | time::Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::asynchronous::timer::TimerFuture` [INFO] [stdout] --> src/asynchronous/timer/executor.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::asynchronous::timer::TimerFuture; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SystemTime` [INFO] [stdout] --> src/asynchronous/mod.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{Duration, SystemTime}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::executor::block_on` [INFO] [stdout] --> src/asynchronous/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use futures::executor::block_on; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `some_str` [INFO] [stdout] --> src/main.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | let some_str = Some("hello"); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_str` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `none` [INFO] [stdout] --> src/main.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | let none: Option = None; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_none` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `count` is assigned to, but never used [INFO] [stdout] --> src/main.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | let mut count = 0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_count` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `count` is never read [INFO] [stdout] --> src/main.rs:108:14 [INFO] [stdout] | [INFO] [stdout] 108 | } else { count += 1 } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tmp` is never read [INFO] [stdout] --> src/main.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | let mut tmp = 0; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | for i in 2..n + 1 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `new_str` [INFO] [stdout] --> src/string.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let new_str = String::new(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_str` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/string.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/string.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | 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/string.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | 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: `v` [INFO] [stdout] --> src/collection.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | let v = vec![1, 2, 3]; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `row` [INFO] [stdout] --> src/collection.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let row = vec![ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_row` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `len` [INFO] [stdout] --> src/practice.rs:26:19 [INFO] [stdout] | [INFO] [stdout] 26 | let (mut cnt, len, mut res) = (0, vec.len(), vec[0]); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | let f = File::open("rust.txt").unwrap_or_else(|error| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | let f = File::open("rust.txt").unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let f = File::open("rust.txt").expect("can't open file rust.txt"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/smart_pointer.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | let b = Box::new(5); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f1` [INFO] [stdout] --> src/asynchronous/mod.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | let f1 = learn_and_sing(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_f1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f2` [INFO] [stdout] --> src/asynchronous/mod.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | let f2 = dance_async(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_f2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/collection.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut vector = vec![1, 2, 3]; // 利用 vec! 宏 来创建 [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/iterator.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut v1_iter = v1.iter(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `string_study` [INFO] [stdout] --> src/string.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn string_study() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `my_collection` [INFO] [stdout] --> src/collection.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn my_collection() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `SpreadsheetCell` [INFO] [stdout] --> src/collection.rs:54:6 [INFO] [stdout] | [INFO] [stdout] 54 | enum SpreadsheetCell { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `map_study` [INFO] [stdout] --> src/map.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn map_study() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `bubble_sort` [INFO] [stdout] --> src/practice.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn bubble_sort(vec: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `read_username_from_file_v1` [INFO] [stdout] --> src/error.rs:65:4 [INFO] [stdout] | [INFO] [stdout] 65 | fn read_username_from_file_v1() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `read_username_from_file_v2` [INFO] [stdout] --> src/error.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn read_username_from_file_v2() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `notify_t_d_where` [INFO] [stdout] --> src/trait_study.rs:149:4 [INFO] [stdout] | [INFO] [stdout] 149 | fn notify_t_d_where(item: T) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `grep` [INFO] [stdout] --> src/mini_grep.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn grep() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Config` [INFO] [stdout] --> src/mini_grep.rs:24:16 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct Config { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/mini_grep.rs:31:16 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(args: &[String]) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run` [INFO] [stdout] --> src/mini_grep.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn run(config: Config) -> Result<(), Box> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `search` [INFO] [stdout] --> src/mini_grep.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | fn search<'a>(query: &str, contents: &'a str) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `search_case_insensitive` [INFO] [stdout] --> src/mini_grep.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | fn search_case_insensitive<'a>(query: &str, contents: &'a str) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `simulated_expensive_calculation` [INFO] [stdout] --> src/closure.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn simulated_expensive_calculation(intensity: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `CacheMap` [INFO] [stdout] --> src/closure.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | struct CacheMap<'a, T, V> [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/closure.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 113 | fn new(calculation: T) -> CacheMap<'a, T, V> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `value` [INFO] [stdout] --> src/closure.rs:120:8 [INFO] [stdout] | [INFO] [stdout] 120 | fn value(&mut self, arg: &'a V) -> &'a V { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `iterator_study` [INFO] [stdout] --> src/iterator.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn iterator_study() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `shoes_in_my_size` [INFO] [stdout] --> src/iterator.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn shoes_in_my_size(shoes: Vec, size: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/iterator.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | fn new() -> Counter { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `point` [INFO] [stdout] --> src/smart_pointer.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn point() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Cons` [INFO] [stdout] --> src/smart_pointer.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | Cons(i32, Box), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Nil` [INFO] [stdout] --> src/smart_pointer.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | Nil, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/smart_pointer.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | fn new(x: T) -> MyBox { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `hello` [INFO] [stdout] --> src/smart_pointer.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn hello(name: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `ListRc` [INFO] [stdout] --> src/smart_pointer.rs:112:6 [INFO] [stdout] | [INFO] [stdout] 112 | enum ListRc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `LimitTracker` [INFO] [stdout] --> src/smart_pointer.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 139 | pub struct LimitTracker<'a, T: Messenger> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/smart_pointer.rs:147:12 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn new(messenger: &T, max: usize) -> LimitTracker { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_value` [INFO] [stdout] --> src/smart_pointer.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn set_value(&mut self, value: usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `add_one` [INFO] [stdout] --> src/unsafe_study/function_pointer.rs:2:4 [INFO] [stdout] | [INFO] [stdout] 2 | fn add_one(x: i32) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `do_twice` [INFO] [stdout] --> src/unsafe_study/function_pointer.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn do_twice(f: fn(i32) -> i32, arg: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `do_twice_v1` [INFO] [stdout] --> src/unsafe_study/function_pointer.rs:10:4 [INFO] [stdout] | [INFO] [stdout] 10 | fn do_twice_v1(f: T, arg: i32) -> i32 [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `Status` [INFO] [stdout] --> src/unsafe_study/function_pointer.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | enum Status { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `returns_closure` [INFO] [stdout] --> src/unsafe_study/function_pointer.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn returns_closure() -> Box i32> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `unsafe_use` [INFO] [stdout] --> src/unsafe_study/mod.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn unsafe_use() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dangerous` [INFO] [stdout] --> src/unsafe_study/mod.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | unsafe fn dangerous() {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `split_at_mut` [INFO] [stdout] --> src/unsafe_study/mod.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn split_at_mut(slice: &mut [i32], mid: usize) -> (&mut [i32], &mut [i32]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `abs` [INFO] [stdout] --> src/unsafe_study/mod.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | fn abs(input: i32) -> i32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `MAX_POINTS` [INFO] [stdout] --> src/unsafe_study/mod.rs:84:1 [INFO] [stdout] | [INFO] [stdout] 84 | const MAX_POINTS: u32 = 100_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `HELLO_WORLD` [INFO] [stdout] --> src/unsafe_study/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | static HELLO_WORLD: &str = "Hello, world!"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `COUNTER` [INFO] [stdout] --> src/unsafe_study/mod.rs:88:1 [INFO] [stdout] | [INFO] [stdout] 88 | static mut COUNTER: u32 = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `never_type` [INFO] [stdout] --> src/unsafe_study/mod.rs:212:4 [INFO] [stdout] | [INFO] [stdout] 212 | fn never_type() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Executor` [INFO] [stdout] --> src/asynchronous/timer/executor.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | struct Executor { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `future` [INFO] [stdout] --> src/asynchronous/timer/executor.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | future: Mutex>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `spawn` [INFO] [stdout] --> src/asynchronous/timer/executor.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | fn spawn(&self, future: impl Future + Send + 'static) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `run` [INFO] [stdout] --> src/asynchronous/timer/executor.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | fn run(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `new_executor_and_spawner` [INFO] [stdout] --> src/asynchronous/timer/executor.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn new_executor_and_spawner() -> (Executor, Spawner) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/asynchronous/timer/mod.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn new(duration: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Song` [INFO] [stdout] --> src/asynchronous/mod.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct Song { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `learn_song` [INFO] [stdout] --> src/asynchronous/mod.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn learn_song() -> Song { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `sing_song` [INFO] [stdout] --> src/asynchronous/mod.rs:22:4 [INFO] [stdout] | [INFO] [stdout] 22 | fn sing_song(song: Song) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dance` [INFO] [stdout] --> src/asynchronous/mod.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn dance() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `learn_song_async` [INFO] [stdout] --> src/asynchronous/mod.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | async fn learn_song_async() -> Song { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `sing_song_async` [INFO] [stdout] --> src/asynchronous/mod.rs:50:10 [INFO] [stdout] | [INFO] [stdout] 50 | async fn sing_song_async(song: Song) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dance_async` [INFO] [stdout] --> src/asynchronous/mod.rs:55:10 [INFO] [stdout] | [INFO] [stdout] 55 | async fn dance_async() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `learn_and_sing` [INFO] [stdout] --> src/asynchronous/mod.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | async fn learn_and_sing() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `async_main` [INFO] [stdout] --> src/asynchronous/mod.rs:65:10 [INFO] [stdout] | [INFO] [stdout] 65 | async fn async_main() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `fib` [INFO] [stdout] --> src/main.rs:126:4 [INFO] [stdout] | [INFO] [stdout] 126 | fn fib(n: i32) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `fib1` [INFO] [stdout] --> src/main.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn fib1(n: i32) -> i32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Quit` [INFO] [stdout] --> src/main.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | Quit, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Move` [INFO] [stdout] --> src/main.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | Move { x: i32, y: i32 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `ChangeColor` [INFO] [stdout] --> src/main.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 185 | ChangeColor(i32, i32, i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Alaska` [INFO] [stdout] --> src/main.rs:198:5 [INFO] [stdout] | [INFO] [stdout] 198 | Alaska, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Penny` [INFO] [stdout] --> src/main.rs:203:5 [INFO] [stdout] | [INFO] [stdout] 203 | Penny, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Nickel` [INFO] [stdout] --> src/main.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | Nickel, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Dime` [INFO] [stdout] --> src/main.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | Dime, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 114 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 38.15s [INFO] running `Command { std: "docker" "inspect" "6d03a8d9dc7e545123058c01d6fda5c48a8463783225a3d7e48055323547412a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6d03a8d9dc7e545123058c01d6fda5c48a8463783225a3d7e48055323547412a", kill_on_drop: false }` [INFO] [stdout] 6d03a8d9dc7e545123058c01d6fda5c48a8463783225a3d7e48055323547412a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 10bb30a42aac06049b48a5780c85d6272c9d06de91dc0af89a1e1383d7fe1f91 [INFO] running `Command { std: "docker" "start" "-a" "10bb30a42aac06049b48a5780c85d6272c9d06de91dc0af89a1e1383d7fe1f91", kill_on_drop: false }` [INFO] [stderr] Compiling rust-study v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `soup` [INFO] [stdout] --> src/lib.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | let soup = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_soup` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `add` [INFO] [stdout] --> src/front_of_house.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | fn add() { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `take_order` [INFO] [stdout] --> src/front_of_house.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | fn take_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `server_order` [INFO] [stdout] --> src/front_of_house.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | fn server_order() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `take_payment` [INFO] [stdout] --> src/front_of_house.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | fn take_payment() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `serve_order` [INFO] [stdout] --> src/lib.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `fix_incorrect_order` [INFO] [stdout] --> src/lib.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `cook_order` [INFO] [stdout] --> src/lib.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `seasonal_fruit` [INFO] [stdout] --> src/lib.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Salad` [INFO] [stdout] --> src/lib.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | Salad, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `soup` [INFO] [stdout] --> src/lib.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | let soup = back_of_house::Appetizer::Soup; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_soup` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `add` [INFO] [stdout] --> src/front_of_house.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | fn add() { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `take_order` [INFO] [stdout] --> src/front_of_house.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | fn take_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `server_order` [INFO] [stdout] --> src/front_of_house.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | fn server_order() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `take_payment` [INFO] [stdout] --> src/front_of_house.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | fn take_payment() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `serve_order` [INFO] [stdout] --> src/lib.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn serve_order() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `fix_incorrect_order` [INFO] [stdout] --> src/lib.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | fn fix_incorrect_order() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `cook_order` [INFO] [stdout] --> src/lib.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | fn cook_order() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `seasonal_fruit` [INFO] [stdout] --> src/lib.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | seasonal_fruit: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Salad` [INFO] [stdout] --> src/lib.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | Salad, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/closure.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | /// 下面这段代码无法通过编译 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [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/closure.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | /// 因为使用了 [move] 导致 x 的所有权被转移到了 闭包[equal_to_x] 中 [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/closure.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /// 当下一行想去输出 x 的时候已经无法获取到所有权了 [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/unsafe_study/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | /// 不安全的创建裸指针的方法 [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/smart_pointer.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | /// 下列代码无法编译通过。因为 x 是不可变的,所以无法可变的借用他 [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/smart_pointer.rs:209:5 [INFO] [stdout] | [INFO] [stdout] 209 | /// 借用规则的一个推论是当有一个不可变值时,不能可变地借用它 [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/unsafe_study/function_pointer.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | /// 函数指针实现了所有三个闭包 trait(Fn、FnMut 和 FnOnce),所以总是可以在调用期望闭包的函数时传递函数指针作为参数。 ... [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/unsafe_study/function_pointer.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | /// 倾向于编写使用泛型和闭包 trait 的函数,这样它就能接受函数或闭包作为参数。 [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 import: `std::cmp::Ordering` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cmp::Ordering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/string.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / /// UTF-8编码时 一个汉字字符储存需要3到4个字节,所以 0.。1 运行会直接报错!!!!!!! [INFO] [stdout] 44 | | /// let c = &str[0..1]; [INFO] [stdout] 45 | | /// println!("{}", c); [INFO] [stdout] | |__________________________^ [INFO] [stdout] 46 | [INFO] [stdout] 47 | let chars = str.chars(); [INFO] [stdout] | ------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/collection.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / /// 获取了 vector 的第一个元素的不可变引用并尝试在 vector 末尾增加一个元素的时候,这是行不通的 [INFO] [stdout] 28 | | /// let new_one = &vector[0]; [INFO] [stdout] 29 | | /// vector.push(5); [INFO] [stdout] 30 | | /// println!("vec one :{}", new_one); [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] 31 | [INFO] [stdout] 32 | let num = vec![100, 233, 1232]; [INFO] [stdout] | ------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/map.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / /// u32 实现了 Copy trait 的类型,其值可以拷贝进哈希 map [INFO] [stdout] 12 | | /// 但是 String 的所有权会被转移到 map 中, [INFO] [stdout] 13 | | /// let mut map: HashMap = HashMap::new(); [INFO] [stdout] 14 | | /// map.insert(jack, 23); // jack 的所有权已经被转移 [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] ... [INFO] [stdout] 17 | let key = vec![String::from("Jack"), String::from("Rose")]; [INFO] [stdout] | ----------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/map.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | /// 必须使用 HashMap<_, _> 表明类型 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | let mut map: HashMap<_, _> = key.iter().zip(value.iter()).collect(); [INFO] [stdout] | -------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/map.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | /// 根据旧值更新新值 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 53 | let text = "hello world wonderful world"; [INFO] [stdout] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/practice.rs:43:23 [INFO] [stdout] | [INFO] [stdout] 43 | if len / 2 == 0 { (vec[len / 2 - 1] + vec[len / 2]) } else { vec[len / 2] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Display` [INFO] [stdout] --> src/trait_study.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/trait_study.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / /// 返回错误,只有泛型为 f32 的才定义了这个方法 [INFO] [stdout] 12 | | /// println!("distance_from_origin: {}", p.distance_from_origin()); [INFO] [stdout] | |_______________________________________________________________________^ [INFO] [stdout] 13 | let p = Point { x: 20.0, y: 30.0 }; [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/closure.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / /// 闭包捕获环境 [INFO] [stdout] 21 | | /// 如果你希望强制闭包获取其使用的环境值的所有权,可以在参数列表前使用 [move] 关键字 [INFO] [stdout] 22 | | /// 类似:let equal_to_x = move |z| z == x; [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] 23 | let x = 4; [INFO] [stdout] | ---------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/smart_pointer.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | /// 变量以被创建时 [相反] 的顺序被丢弃 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 98 | let c = CustomSmartPointer { data: String::from("my stuff") }; [INFO] [stdout] | -------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/concurrent/thread_study.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | /// 可以将 drop 放在这里,因为 [move] 会将变量的所有权转移到闭包中 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | drop(vec); [INFO] [stdout] | --------- rustdoc does not generate documentation for expressions [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/unsafe_study/function_pointer.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | /// 元组结构体和元组结构体枚举成员,它们也被称为实现了闭包 trait 的函数指针, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | / let list_of_statuses: Vec = [INFO] [stdout] 38 | | (0u32..20) [INFO] [stdout] 39 | | .map(Status::Value) [INFO] [stdout] 40 | | .collect(); [INFO] [stdout] | |_______________________- rustdoc does not generate documentation for statements [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Formatter` [INFO] [stdout] --> src/unsafe_study/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fmt::Formatter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/unsafe_study/mod.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | /// 只能在 unsafe 上下文中 [解引用] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 35 | / unsafe { [INFO] [stdout] 36 | | println!("r1 is: {}", *r1); [INFO] [stdout] 37 | | println!("r2 is: {}", *r2); [INFO] [stdout] 38 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/unsafe_study/mod.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | /// 通过 [extern] 关键字,来调用 C 的函数 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 78 | / unsafe { [INFO] [stdout] 79 | | println!("Absolute value of -3 according to C: {}", abs(-3)); [INFO] [stdout] 80 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/unsafe_study/mod.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | /// 读取或修改一个可变静态变量是不安全的 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 94 | / unsafe { [INFO] [stdout] 95 | | COUNTER += 1; [INFO] [stdout] 96 | | } [INFO] [stdout] | |_____- rustdoc does not generate documentation for expressions [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Point_v1` should have an upper camel case name [INFO] [stdout] --> src/unsafe_study/mod.rs:115:8 [INFO] [stdout] | [INFO] [stdout] 115 | struct Point_v1 { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `PointV1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SystemTime` [INFO] [stdout] --> src/asynchronous/mod.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{Duration, SystemTime}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `some_str` [INFO] [stdout] --> src/main.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | let some_str = Some("hello"); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_str` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `none` [INFO] [stdout] --> src/main.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | let none: Option = None; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_none` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `count` is assigned to, but never used [INFO] [stdout] --> src/main.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | let mut count = 0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_count` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `count` is never read [INFO] [stdout] --> src/main.rs:108:14 [INFO] [stdout] | [INFO] [stdout] 108 | } else { count += 1 } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tmp` is never read [INFO] [stdout] --> src/main.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | let mut tmp = 0; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | for i in 2..n + 1 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `new_str` [INFO] [stdout] --> src/string.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | let new_str = String::new(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_str` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/string.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/string.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | 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/string.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | 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: `v` [INFO] [stdout] --> src/collection.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | let v = vec![1, 2, 3]; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `row` [INFO] [stdout] --> src/collection.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let row = vec![ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_row` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `len` [INFO] [stdout] --> src/practice.rs:26:19 [INFO] [stdout] | [INFO] [stdout] 26 | let (mut cnt, len, mut res) = (0, vec.len(), vec[0]); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let f = match f { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | let f = File::open("rust.txt").unwrap_or_else(|error| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | let f = File::open("rust.txt").unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/error.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let f = File::open("rust.txt").expect("can't open file rust.txt"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v1` [INFO] [stdout] --> src/closure.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | let v1 = c.value(1); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_v1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v1` [INFO] [stdout] --> src/closure.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | let v1 = c.value(&1); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_v1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r1` [INFO] [stdout] --> src/closure.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | let r1 = cache.value(&"aa"); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_r1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/smart_pointer.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | let b = Box::new(5); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/smart_pointer.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | let c = CustomSmartPointer { data: String::from("my stuff") }; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> src/smart_pointer.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | let d = CustomSmartPointer { data: String::from("other stuff") }; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/smart_pointer.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | let b = ConsRc(3, Rc::clone(&a)); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/smart_pointer.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let c = ConsRc(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: `list_of_statuses` [INFO] [stdout] --> src/unsafe_study/function_pointer.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let list_of_statuses: Vec = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_list_of_statuses` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f1` [INFO] [stdout] --> src/asynchronous/mod.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | let f1 = learn_and_sing(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_f1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f2` [INFO] [stdout] --> src/asynchronous/mod.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | let f2 = dance_async(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_f2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/collection.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut vector = vec![1, 2, 3]; // 利用 vec! 宏 来创建 [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/iterator.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut v1_iter = v1.iter(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/unsafe_study/mod.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | let mut w = Wrapper(vec![String::from("hello"), String::from("world")]); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `string_study` [INFO] [stdout] --> src/string.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn string_study() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `my_collection` [INFO] [stdout] --> src/collection.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn my_collection() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `SpreadsheetCell` [INFO] [stdout] --> src/collection.rs:54:6 [INFO] [stdout] | [INFO] [stdout] 54 | enum SpreadsheetCell { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `map_study` [INFO] [stdout] --> src/map.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn map_study() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `bubble_sort` [INFO] [stdout] --> src/practice.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn bubble_sort(vec: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `read_username_from_file_v1` [INFO] [stdout] --> src/error.rs:65:4 [INFO] [stdout] | [INFO] [stdout] 65 | fn read_username_from_file_v1() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `read_username_from_file_v2` [INFO] [stdout] --> src/error.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn read_username_from_file_v2() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `notify_t_d_where` [INFO] [stdout] --> src/trait_study.rs:149:4 [INFO] [stdout] | [INFO] [stdout] 149 | fn notify_t_d_where(item: T) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `grep` [INFO] [stdout] --> src/mini_grep.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn grep() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Config` [INFO] [stdout] --> src/mini_grep.rs:24:16 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct Config { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/mini_grep.rs:31:16 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(args: &[String]) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run` [INFO] [stdout] --> src/mini_grep.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn run(config: Config) -> Result<(), Box> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `simulated_expensive_calculation` [INFO] [stdout] --> src/closure.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn simulated_expensive_calculation(intensity: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Stop` [INFO] [stdout] --> src/unsafe_study/function_pointer.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | Stop, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `returns_closure` [INFO] [stdout] --> src/unsafe_study/function_pointer.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn returns_closure() -> Box i32> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `unsafe_use` [INFO] [stdout] --> src/unsafe_study/mod.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn unsafe_use() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `MAX_POINTS` [INFO] [stdout] --> src/unsafe_study/mod.rs:84:1 [INFO] [stdout] | [INFO] [stdout] 84 | const MAX_POINTS: u32 = 100_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `HELLO_WORLD` [INFO] [stdout] --> src/unsafe_study/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | static HELLO_WORLD: &str = "Hello, world!"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `never_type` [INFO] [stdout] --> src/unsafe_study/mod.rs:212:4 [INFO] [stdout] | [INFO] [stdout] 212 | fn never_type() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `fib` [INFO] [stdout] --> src/main.rs:126:4 [INFO] [stdout] | [INFO] [stdout] 126 | fn fib(n: i32) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `fib1` [INFO] [stdout] --> src/main.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn fib1(n: i32) -> i32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Quit` [INFO] [stdout] --> src/main.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | Quit, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Move` [INFO] [stdout] --> src/main.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | Move { x: i32, y: i32 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `ChangeColor` [INFO] [stdout] --> src/main.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 185 | ChangeColor(i32, i32, i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Alaska` [INFO] [stdout] --> src/main.rs:198:5 [INFO] [stdout] | [INFO] [stdout] 198 | Alaska, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Penny` [INFO] [stdout] --> src/main.rs:203:5 [INFO] [stdout] | [INFO] [stdout] 203 | Penny, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Nickel` [INFO] [stdout] --> src/main.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | Nickel, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Dime` [INFO] [stdout] --> src/main.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | Dime, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 89 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 3.55s [INFO] running `Command { std: "docker" "inspect" "10bb30a42aac06049b48a5780c85d6272c9d06de91dc0af89a1e1383d7fe1f91", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "10bb30a42aac06049b48a5780c85d6272c9d06de91dc0af89a1e1383d7fe1f91", kill_on_drop: false }` [INFO] [stdout] 10bb30a42aac06049b48a5780c85d6272c9d06de91dc0af89a1e1383d7fe1f91 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] d64c84b38a82b73c5c1d1c63394cd73d44d7d4d6a740f00a4163782a4f787621 [INFO] running `Command { std: "docker" "start" "-a" "d64c84b38a82b73c5c1d1c63394cd73d44d7d4d6a740f00a4163782a4f787621", kill_on_drop: false }` [INFO] [stderr] warning: unused variable: `soup` [INFO] [stderr] --> src/lib.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | let soup = back_of_house::Appetizer::Soup; [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_soup` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `add` [INFO] [stderr] --> src/front_of_house.rs:5:8 [INFO] [stderr] | [INFO] [stderr] 5 | fn add() { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `take_order` [INFO] [stderr] --> src/front_of_house.rs:11:12 [INFO] [stderr] | [INFO] [stderr] 11 | fn take_order() {} [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `server_order` [INFO] [stderr] --> src/front_of_house.rs:13:12 [INFO] [stderr] | [INFO] [stderr] 13 | fn server_order() {} [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `take_payment` [INFO] [stderr] --> src/front_of_house.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 15 | fn take_payment() {} [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `serve_order` [INFO] [stderr] --> src/lib.rs:29:4 [INFO] [stderr] | [INFO] [stderr] 29 | fn serve_order() {} [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `fix_incorrect_order` [INFO] [stderr] --> src/lib.rs:32:8 [INFO] [stderr] | [INFO] [stderr] 32 | fn fix_incorrect_order() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `cook_order` [INFO] [stderr] --> src/lib.rs:37:8 [INFO] [stderr] | [INFO] [stderr] 37 | fn cook_order() {} [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `seasonal_fruit` [INFO] [stderr] --> src/lib.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | seasonal_fruit: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Salad` [INFO] [stderr] --> src/lib.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | Salad, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused variable: `soup` [INFO] [stderr] --> src/lib.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | let soup = back_of_house::Appetizer::Soup; [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_soup` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `add` [INFO] [stderr] --> src/front_of_house.rs:5:8 [INFO] [stderr] | [INFO] [stderr] 5 | fn add() { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `take_order` [INFO] [stderr] --> src/front_of_house.rs:11:12 [INFO] [stderr] | [INFO] [stderr] 11 | fn take_order() {} [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `server_order` [INFO] [stderr] --> src/front_of_house.rs:13:12 [INFO] [stderr] | [INFO] [stderr] 13 | fn server_order() {} [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `take_payment` [INFO] [stderr] --> src/front_of_house.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 15 | fn take_payment() {} [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `serve_order` [INFO] [stderr] --> src/lib.rs:29:4 [INFO] [stderr] | [INFO] [stderr] 29 | fn serve_order() {} [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `fix_incorrect_order` [INFO] [stderr] --> src/lib.rs:32:8 [INFO] [stderr] | [INFO] [stderr] 32 | fn fix_incorrect_order() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `cook_order` [INFO] [stderr] --> src/lib.rs:37:8 [INFO] [stderr] | [INFO] [stderr] 37 | fn cook_order() {} [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `seasonal_fruit` [INFO] [stderr] --> src/lib.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | seasonal_fruit: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Salad` [INFO] [stderr] --> src/lib.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | Salad, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/closure.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | /// 下面这段代码无法通过编译 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [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/closure.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | /// 因为使用了 [move] 导致 x 的所有权被转移到了 闭包[equal_to_x] 中 [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/closure.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | /// 当下一行想去输出 x 的时候已经无法获取到所有权了 [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/unsafe_study/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | /// 不安全的创建裸指针的方法 [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/smart_pointer.rs:208:5 [INFO] [stderr] | [INFO] [stderr] 208 | /// 下列代码无法编译通过。因为 x 是不可变的,所以无法可变的借用他 [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/smart_pointer.rs:209:5 [INFO] [stderr] | [INFO] [stderr] 209 | /// 借用规则的一个推论是当有一个不可变值时,不能可变地借用它 [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/unsafe_study/function_pointer.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | /// 函数指针实现了所有三个闭包 trait(Fn、FnMut 和 FnOnce),所以总是可以在调用期望闭包的函数时传递函数指针作为参数。 ... [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/unsafe_study/function_pointer.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | /// 倾向于编写使用泛型和闭包 trait 的函数,这样它就能接受函数或闭包作为参数。 [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 import: `std::cmp::Ordering` [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::cmp::Ordering; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/main.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/string.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / /// UTF-8编码时 一个汉字字符储存需要3到4个字节,所以 0.。1 运行会直接报错!!!!!!! [INFO] [stderr] 44 | | /// let c = &str[0..1]; [INFO] [stderr] 45 | | /// println!("{}", c); [INFO] [stderr] | |__________________________^ [INFO] [stderr] 46 | [INFO] [stderr] 47 | let chars = str.chars(); [INFO] [stderr] | ------------------------ rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/collection.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | / /// 获取了 vector 的第一个元素的不可变引用并尝试在 vector 末尾增加一个元素的时候,这是行不通的 [INFO] [stderr] 28 | | /// let new_one = &vector[0]; [INFO] [stderr] 29 | | /// vector.push(5); [INFO] [stderr] 30 | | /// println!("vec one :{}", new_one); [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] 31 | [INFO] [stderr] 32 | let num = vec![100, 233, 1232]; [INFO] [stderr] | ------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/map.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / /// u32 实现了 Copy trait 的类型,其值可以拷贝进哈希 map [INFO] [stderr] 12 | | /// 但是 String 的所有权会被转移到 map 中, [INFO] [stderr] 13 | | /// let mut map: HashMap = HashMap::new(); [INFO] [stderr] 14 | | /// map.insert(jack, 23); // jack 的所有权已经被转移 [INFO] [stderr] | |________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 17 | let key = vec![String::from("Jack"), String::from("Rose")]; [INFO] [stderr] | ----------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/map.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | /// 必须使用 HashMap<_, _> 表明类型 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 20 | let mut map: HashMap<_, _> = key.iter().zip(value.iter()).collect(); [INFO] [stderr] | -------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/map.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | /// 根据旧值更新新值 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 53 | let text = "hello world wonderful world"; [INFO] [stderr] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/practice.rs:43:23 [INFO] [stderr] | [INFO] [stderr] 43 | if len / 2 == 0 { (vec[len / 2 - 1] + vec[len / 2]) } else { vec[len / 2] } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Display` [INFO] [stderr] --> src/trait_study.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::fmt::Display; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/trait_study.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / /// 返回错误,只有泛型为 f32 的才定义了这个方法 [INFO] [stderr] 12 | | /// println!("distance_from_origin: {}", p.distance_from_origin()); [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] 13 | let p = Point { x: 20.0, y: 30.0 }; [INFO] [stderr] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/closure.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / /// 闭包捕获环境 [INFO] [stderr] 21 | | /// 如果你希望强制闭包获取其使用的环境值的所有权,可以在参数列表前使用 [move] 关键字 [INFO] [stderr] 22 | | /// 类似:let equal_to_x = move |z| z == x; [INFO] [stderr] | |_______________________________________________^ [INFO] [stderr] 23 | let x = 4; [INFO] [stderr] | ---------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/smart_pointer.rs:97:5 [INFO] [stderr] | [INFO] [stderr] 97 | /// 变量以被创建时 [相反] 的顺序被丢弃 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 98 | let c = CustomSmartPointer { data: String::from("my stuff") }; [INFO] [stderr] | -------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/concurrent/thread_study.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | /// 可以将 drop 放在这里,因为 [move] 会将变量的所有权转移到闭包中 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 33 | drop(vec); [INFO] [stderr] | --------- rustdoc does not generate documentation for expressions [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/unsafe_study/function_pointer.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | /// 元组结构体和元组结构体枚举成员,它们也被称为实现了闭包 trait 的函数指针, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 37 | / let list_of_statuses: Vec = [INFO] [stderr] 38 | | (0u32..20) [INFO] [stderr] 39 | | .map(Status::Value) [INFO] [stderr] 40 | | .collect(); [INFO] [stderr] | |_______________________- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Formatter` [INFO] [stderr] --> src/unsafe_study/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fmt::Formatter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/unsafe_study/mod.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | /// 只能在 unsafe 上下文中 [解引用] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 35 | / unsafe { [INFO] [stderr] 36 | | println!("r1 is: {}", *r1); [INFO] [stderr] 37 | | println!("r2 is: {}", *r2); [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____- rustdoc does not generate documentation for expressions [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/unsafe_study/mod.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | /// 通过 [extern] 关键字,来调用 C 的函数 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 78 | / unsafe { [INFO] [stderr] 79 | | println!("Absolute value of -3 according to C: {}", abs(-3)); [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____- rustdoc does not generate documentation for expressions [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/unsafe_study/mod.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | /// 读取或修改一个可变静态变量是不安全的 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 94 | / unsafe { [INFO] [stderr] 95 | | COUNTER += 1; [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____- rustdoc does not generate documentation for expressions [INFO] [stderr] [INFO] [stderr] warning: type `Point_v1` should have an upper camel case name [INFO] [stderr] --> src/unsafe_study/mod.rs:115:8 [INFO] [stderr] | [INFO] [stderr] 115 | struct Point_v1 { [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to upper camel case: `PointV1` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `SystemTime` [INFO] [stderr] --> src/asynchronous/mod.rs:6:27 [INFO] [stderr] | [INFO] [stderr] 6 | use std::time::{Duration, SystemTime}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `some_str` [INFO] [stderr] --> src/main.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | let some_str = Some("hello"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_some_str` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `none` [INFO] [stderr] --> src/main.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | let none: Option = None; [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_none` [INFO] [stderr] [INFO] [stderr] warning: variable `count` is assigned to, but never used [INFO] [stderr] --> src/main.rs:105:9 [INFO] [stderr] | [INFO] [stderr] 105 | let mut count = 0; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_count` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `count` is never read [INFO] [stderr] --> src/main.rs:108:14 [INFO] [stderr] | [INFO] [stderr] 108 | } else { count += 1 } [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `tmp` is never read [INFO] [stderr] --> src/main.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | let mut tmp = 0; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | for i in 2..n + 1 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `new_str` [INFO] [stderr] --> src/string.rs:3:9 [INFO] [stderr] | [INFO] [stderr] 3 | let new_str = String::new(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_str` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/string.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/string.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | 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/string.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | 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: `v` [INFO] [stderr] --> src/collection.rs:13:13 [INFO] [stderr] | [INFO] [stderr] 13 | let v = vec![1, 2, 3]; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `row` [INFO] [stderr] --> src/collection.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | let row = vec![ [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_row` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/practice.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | let (mut cnt, len, mut res) = (0, vec.len(), vec[0]); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/error.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | let f = match f { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/error.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | let f = match f { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/error.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let f = File::open("rust.txt").unwrap_or_else(|error| { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/error.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | let f = File::open("rust.txt").unwrap(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/error.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | let f = File::open("rust.txt").expect("can't open file rust.txt"); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v1` [INFO] [stderr] --> src/closure.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | let v1 = c.value(1); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_v1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v1` [INFO] [stderr] --> src/closure.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | let v1 = c.value(&1); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_v1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r1` [INFO] [stderr] --> src/closure.rs:145:9 [INFO] [stderr] | [INFO] [stderr] 145 | let r1 = cache.value(&"aa"); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_r1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/smart_pointer.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | let b = Box::new(5); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/smart_pointer.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | let c = CustomSmartPointer { data: String::from("my stuff") }; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `d` [INFO] [stderr] --> src/smart_pointer.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | let d = CustomSmartPointer { data: String::from("other stuff") }; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/smart_pointer.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | let b = ConsRc(3, Rc::clone(&a)); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/smart_pointer.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | let c = ConsRc(4, Rc::clone(&a)); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `list_of_statuses` [INFO] [stderr] --> src/unsafe_study/function_pointer.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | let list_of_statuses: Vec = [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_list_of_statuses` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f1` [INFO] [stderr] --> src/asynchronous/mod.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | let f1 = learn_and_sing(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_f1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f2` [INFO] [stderr] --> src/asynchronous/mod.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | let f2 = dance_async(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_f2` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/collection.rs:4:9 [INFO] [stderr] | [INFO] [stderr] 4 | let mut vector = vec![1, 2, 3]; // 利用 vec! 宏 来创建 [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: variable does not need to be mutable [INFO] [stderr] --> src/iterator.rs:4:9 [INFO] [stderr] | [INFO] [stderr] 4 | let mut v1_iter = v1.iter(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/unsafe_study/mod.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | let mut w = Wrapper(vec![String::from("hello"), String::from("world")]); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `string_study` [INFO] [stderr] --> src/string.rs:2:8 [INFO] [stderr] | [INFO] [stderr] 2 | pub fn string_study() { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `my_collection` [INFO] [stderr] --> src/collection.rs:2:8 [INFO] [stderr] | [INFO] [stderr] 2 | pub fn my_collection() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `SpreadsheetCell` [INFO] [stderr] --> src/collection.rs:54:6 [INFO] [stderr] | [INFO] [stderr] 54 | enum SpreadsheetCell { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `map_study` [INFO] [stderr] --> src/map.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn map_study() { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `bubble_sort` [INFO] [stderr] --> src/practice.rs:47:4 [INFO] [stderr] | [INFO] [stderr] 47 | fn bubble_sort(vec: &mut Vec) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_username_from_file_v1` [INFO] [stderr] --> src/error.rs:65:4 [INFO] [stderr] | [INFO] [stderr] 65 | fn read_username_from_file_v1() -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_username_from_file_v2` [INFO] [stderr] --> src/error.rs:72:4 [INFO] [stderr] | [INFO] [stderr] 72 | fn read_username_from_file_v2() -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `notify_t_d_where` [INFO] [stderr] --> src/trait_study.rs:149:4 [INFO] [stderr] | [INFO] [stderr] 149 | fn notify_t_d_where(item: T) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `grep` [INFO] [stderr] --> src/mini_grep.rs:5:8 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn grep() { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Config` [INFO] [stderr] --> src/mini_grep.rs:24:16 [INFO] [stderr] | [INFO] [stderr] 24 | pub struct Config { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/mini_grep.rs:31:16 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn new(args: &[String]) -> Result { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `run` [INFO] [stderr] --> src/mini_grep.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn run(config: Config) -> Result<(), Box> { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `simulated_expensive_calculation` [INFO] [stderr] --> src/closure.rs:41:4 [INFO] [stderr] | [INFO] [stderr] 41 | fn simulated_expensive_calculation(intensity: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Stop` [INFO] [stderr] --> src/unsafe_study/function_pointer.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | Stop, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `returns_closure` [INFO] [stderr] --> src/unsafe_study/function_pointer.rs:21:4 [INFO] [stderr] | [INFO] [stderr] 21 | fn returns_closure() -> Box i32> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `unsafe_use` [INFO] [stderr] --> src/unsafe_study/mod.rs:7:4 [INFO] [stderr] | [INFO] [stderr] 7 | fn unsafe_use() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `MAX_POINTS` [INFO] [stderr] --> src/unsafe_study/mod.rs:84:1 [INFO] [stderr] | [INFO] [stderr] 84 | const MAX_POINTS: u32 = 100_000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static is never used: `HELLO_WORLD` [INFO] [stderr] --> src/unsafe_study/mod.rs:87:1 [INFO] [stderr] | [INFO] [stderr] 87 | static HELLO_WORLD: &str = "Hello, world!"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `never_type` [INFO] [stderr] --> src/unsafe_study/mod.rs:212:4 [INFO] [stderr] | [INFO] [stderr] 212 | fn never_type() {} [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `fib` [INFO] [stderr] --> src/main.rs:126:4 [INFO] [stderr] | [INFO] [stderr] 126 | fn fib(n: i32) -> i32 { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `fib1` [INFO] [stderr] --> src/main.rs:143:4 [INFO] [stderr] | [INFO] [stderr] 143 | fn fib1(n: i32) -> i32 { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Quit` [INFO] [stderr] --> src/main.rs:182:5 [INFO] [stderr] | [INFO] [stderr] 182 | Quit, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Move` [INFO] [stderr] --> src/main.rs:183:5 [INFO] [stderr] | [INFO] [stderr] 183 | Move { x: i32, y: i32 }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ChangeColor` [INFO] [stderr] --> src/main.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | ChangeColor(i32, i32, i32), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Alaska` [INFO] [stderr] --> src/main.rs:198:5 [INFO] [stderr] | [INFO] [stderr] 198 | Alaska, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Penny` [INFO] [stderr] --> src/main.rs:203:5 [INFO] [stderr] | [INFO] [stderr] 203 | Penny, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Nickel` [INFO] [stderr] --> src/main.rs:204:5 [INFO] [stderr] | [INFO] [stderr] 204 | Nickel, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Dime` [INFO] [stderr] --> src/main.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 205 | Dime, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: 89 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/rust_study-6423a269d9ced9d0 [INFO] [stdout] running 1 test [INFO] [stderr] Running /opt/rustwide/target/debug/deps/rust_study-63be1f76dcd1940e [INFO] [stdout] test tests::it_works ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 32 tests [INFO] [stdout] test mini_grep::mini::test::case_insensitive ... ok [INFO] [stdout] test asynchronous::test_async ... ok [INFO] [stdout] test concurrent::thread_study::mutex ... ok [INFO] [stdout] test smart_pointer::test_de_referenced_4_my_box ... ok [INFO] [stdout] test smart_pointer::test_de_referenced_4_box ... ok [INFO] [stdout] test concurrent::thread_study::test_thread_move ... ok [INFO] [stdout] test mini_grep::mini::test::case_sensitive ... ok [INFO] [stdout] test smart_pointer::test_force_de_referenced ... ok [INFO] [stdout] test smart_pointer::test_list ... ok [INFO] [stdout] test smart_pointer::test_drop ... ok [INFO] [stdout] test smart_pointer::test_rc ... ok [INFO] [stdout] test smart_pointer::test_std_mem_drop ... ok [INFO] [stdout] test smart_pointer::tests::it_sends_an_over_75_percent_warning_message ... ok [INFO] [stdout] test trait_study::test_notify ... ok [INFO] [stdout] test smart_pointer::test_ref_cell ... ok [INFO] [stdout] test unsafe_study::function_pointer::test_fn ... ok [INFO] [stdout] test closure::call_with_different_values_v1 ... ok [INFO] [stdout] test iterator::filters_by_size ... ok [INFO] [stdout] test iterator::test ... ok [INFO] [stdout] test iterator::using_other_iterator_trait_methods ... ok [INFO] [stdout] test unsafe_study::test_unsafe ... ok [INFO] [stdout] test unsafe_study::test_unsafe_fn ... ok [INFO] [stdout] test unsafe_study::test_wrapper ... ok [INFO] [stdout] test unsafe_study::test_trait ... ok [INFO] [stdout] test unsafe_study::test_static_variable ... ok [INFO] [stdout] test unsafe_study::test_add ... ok [INFO] [stdout] test concurrent::thread_study::test_thread ... ok [INFO] [stdout] test concurrent::thread_study::mutex_v1 ... ok [INFO] [stdout] test closure::call_with_different_values ... FAILED [INFO] [stdout] test asynchronous::timer::executor::test_executor ... ok [INFO] [stdout] test concurrent::thread_study::test_channel ... ok [INFO] [stderr] error: test failed, to rerun pass '--bin rust-study' [INFO] [stdout] test asynchronous::test_syn ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- closure::call_with_different_values stdout ---- [INFO] [stdout] thread 'closure::call_with_different_values' panicked at 'assertion failed: `(left == right)` [INFO] [stdout] left: `1`, [INFO] [stdout] right: `2`', src/closure.rs:133:5 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x56080c19e4e0 - std::backtrace_rs::backtrace::libunwind::trace::h04d12fdcddff82aa [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/../../backtrace/src/backtrace/libunwind.rs:100:5 [INFO] [stdout] 1: 0x56080c19e4e0 - std::backtrace_rs::backtrace::trace_unsynchronized::h1459b974b6fbe5e1 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x56080c19e4e0 - std::sys_common::backtrace::_print_fmt::h9b8396a669123d95 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:67:5 [INFO] [stdout] 3: 0x56080c19e4e0 - ::fmt::he009dcaaa75eed60 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:46:22 [INFO] [stdout] 4: 0x56080c1c1c8c - core::fmt::write::h77b4746b0dea1dd3 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/fmt/mod.rs:1078:17 [INFO] [stdout] 5: 0x56080c12bf76 - std::io::Write::write_fmt::h3a40d9c04f88bb58 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/io/mod.rs:1518:15 [INFO] [stdout] 6: 0x56080c1986ad - std::io::impls::>::write_fmt::h1b3d263673641f53 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/io/impls.rs:179:9 [INFO] [stdout] 7: 0x56080c1a0bb5 - std::sys_common::backtrace::_print::h2d880c9e69a21be9 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:49:5 [INFO] [stdout] 8: 0x56080c1a0bb5 - std::sys_common::backtrace::print::h5f02b1bb49f36879 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:36:9 [INFO] [stdout] 9: 0x56080c1a0bb5 - std::panicking::default_hook::{{closure}}::h658e288a7a809b29 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:208:50 [INFO] [stdout] 10: 0x56080c1a0802 - std::panicking::default_hook::hb52d73f0da9a4bb8 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:224:9 [INFO] [stdout] 11: 0x56080c1a1351 - std::panicking::rust_panic_with_hook::hfe7e1c684e3e6462 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:593:17 [INFO] [stdout] 12: 0x56080c1a0e97 - std::panicking::begin_panic_handler::{{closure}}::h42939e004b32765c [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:499:13 [INFO] [stdout] 13: 0x56080c19e99c - std::sys_common::backtrace::__rust_end_short_backtrace::h9d2070f7bf9fd56c [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:141:18 [INFO] [stdout] 14: 0x56080c1a0df9 - rust_begin_unwind [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:495:5 [INFO] [stdout] 15: 0x56080c1a0dab - std::panicking::begin_panic_fmt::h4a7e15187eac098d [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:437:5 [INFO] [stdout] 16: 0x56080c10b136 - rust_study::closure::call_with_different_values::h8ee895d657e8eca1 [INFO] [stdout] at /opt/rustwide/workdir/src/closure.rs:133:5 [INFO] [stdout] 17: 0x56080c10af8a - rust_study::closure::call_with_different_values::{{closure}}::ha166a261bf10243f [INFO] [stdout] at /opt/rustwide/workdir/src/closure.rs:127:1 [INFO] [stdout] 18: 0x56080c0ec63e - core::ops::function::FnOnce::call_once::h10851c4e0091fe9e [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 19: 0x56080c153ac3 - core::ops::function::FnOnce::call_once::hdbd2235b6243db3d [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 20: 0x56080c153ac3 - test::__rust_begin_short_backtrace::hb1dea1c208110812 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/test/src/lib.rs:517:5 [INFO] [stdout] 21: 0x56080c151f6a - as core::ops::function::FnOnce>::call_once::h5d11a40efef721f2 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/alloc/src/boxed.rs:1307:9 [INFO] [stdout] 22: 0x56080c151f6a - as core::ops::function::FnOnce<()>>::call_once::h23961df98af0bc5a [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:322:9 [INFO] [stdout] 23: 0x56080c151f6a - std::panicking::try::do_call::h6390646e3de3fb9e [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:381:40 [INFO] [stdout] 24: 0x56080c151f6a - std::panicking::try::hc531439ab6159192 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:345:19 [INFO] [stdout] 25: 0x56080c151f6a - std::panic::catch_unwind::h859d8bdaf9b4855c [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:396:14 [INFO] [stdout] 26: 0x56080c151f6a - test::run_test_in_process::hae60aa74417e3abc [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/test/src/lib.rs:544:18 [INFO] [stdout] 27: 0x56080c151f6a - test::run_test::run_test_inner::{{closure}}::hf48c86652c4a151d [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/test/src/lib.rs:450:39 [INFO] [stdout] 28: 0x56080c12b2f6 - std::sys_common::backtrace::__rust_begin_short_backtrace::hb82b392232b8bd1f [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:125:18 [INFO] [stdout] 29: 0x56080c1302f3 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h79ca9e9abe157956 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/thread/mod.rs:474:17 [INFO] [stdout] 30: 0x56080c1302f3 - as core::ops::function::FnOnce<()>>::call_once::ha12f1f228780a4f7 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:322:9 [INFO] [stdout] 31: 0x56080c1302f3 - std::panicking::try::do_call::h722bb7416d021cdc [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:381:40 [INFO] [stdout] 32: 0x56080c1302f3 - std::panicking::try::h78e5abca71ac7cac [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:345:19 [INFO] [stdout] 33: 0x56080c1302f3 - std::panic::catch_unwind::h95162588bd0fa090 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:396:14 [INFO] [stdout] 34: 0x56080c1302f3 - std::thread::Builder::spawn_unchecked::{{closure}}::h64da5c4b9acc58dc [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/thread/mod.rs:473:30 [INFO] [stdout] 35: 0x56080c1302f3 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h7a8c588ad0b69edb [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 36: 0x56080c1a779a - as core::ops::function::FnOnce>::call_once::h09ff301006f1aeca [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/alloc/src/boxed.rs:1307:9 [INFO] [stdout] 37: 0x56080c1a779a - as core::ops::function::FnOnce>::call_once::he79488c8f00b5f31 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/alloc/src/boxed.rs:1307:9 [INFO] [stdout] 38: 0x56080c1a779a - std::sys::unix::thread::Thread::new::thread_start::h587efff279c68ba7 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys/unix/thread.rs:71:17 [INFO] [stdout] 39: 0x7f3b61e75609 - start_thread [INFO] [stdout] 40: 0x7f3b61c47293 - clone [INFO] [stdout] 41: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] closure::call_with_different_values [INFO] [stdout] [INFO] [stdout] test result: FAILED. 31 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d64c84b38a82b73c5c1d1c63394cd73d44d7d4d6a740f00a4163782a4f787621", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d64c84b38a82b73c5c1d1c63394cd73d44d7d4d6a740f00a4163782a4f787621", kill_on_drop: false }` [INFO] [stdout] d64c84b38a82b73c5c1d1c63394cd73d44d7d4d6a740f00a4163782a4f787621