[INFO] cloning repository https://github.com/leemiyinghao/vec2seq-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/leemiyinghao/vec2seq-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleemiyinghao%2Fvec2seq-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleemiyinghao%2Fvec2seq-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0351d58e007c139287ff70cd2fa03fa95bdad75d [INFO] testing leemiyinghao/vec2seq-rust against beta-2022-04-10 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleemiyinghao%2Fvec2seq-rust" "/workspace/builds/worker-12/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-12/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/leemiyinghao/vec2seq-rust on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/leemiyinghao/vec2seq-rust [INFO] finished tweaking git repo https://github.com/leemiyinghao/vec2seq-rust [INFO] tweaked toml for git repo https://github.com/leemiyinghao/vec2seq-rust written to /workspace/builds/worker-12/source/Cargo.toml [INFO] crate git repo https://github.com/leemiyinghao/vec2seq-rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", 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] b78f1e70659adf79bd9ecca3efedaf2549d057919ec66f4d9d6506d3a729548f [INFO] running `Command { std: "docker" "start" "-a" "b78f1e70659adf79bd9ecca3efedaf2549d057919ec66f4d9d6506d3a729548f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b78f1e70659adf79bd9ecca3efedaf2549d057919ec66f4d9d6506d3a729548f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b78f1e70659adf79bd9ecca3efedaf2549d057919ec66f4d9d6506d3a729548f", kill_on_drop: false }` [INFO] [stdout] b78f1e70659adf79bd9ecca3efedaf2549d057919ec66f4d9d6506d3a729548f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--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] 33ca97e2671871088f5bc0d3b689413629841421409408c2b88ae3aae2089122 [INFO] running `Command { std: "docker" "start" "-a" "33ca97e2671871088f5bc0d3b689413629841421409408c2b88ae3aae2089122", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.71 [INFO] [stderr] Compiling syn v1.0.33 [INFO] [stderr] Compiling serde v1.0.114 [INFO] [stderr] Compiling siphasher v0.3.3 [INFO] [stderr] Compiling smallvec v1.4.0 [INFO] [stderr] Compiling ndarray v0.13.1 [INFO] [stderr] Compiling serde_json v1.0.56 [INFO] [stderr] Compiling granne v0.5.1 (https://github.com/granne/granne.git#7068139d) [INFO] [stderr] Compiling glam v0.9.1 [INFO] [stderr] Compiling rle-decode-fast v1.0.1 [INFO] [stderr] Compiling db-key v0.0.5 [INFO] [stderr] Compiling libflate_lz77 v1.0.0 [INFO] [stderr] Compiling lz_fnv v0.1.2 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling hashbrown v0.8.0 [INFO] [stderr] Compiling cmake v0.1.44 [INFO] [stderr] Compiling libsqlite3-sys v0.18.0 [INFO] [stderr] Compiling miniz_oxide v0.4.0 [INFO] [stderr] Compiling itertools v0.8.2 [INFO] [stderr] Compiling owning_ref v0.4.1 [INFO] [stderr] Compiling lru-cache v0.1.2 [INFO] [stderr] Compiling phf_shared v0.8.0 [INFO] [stderr] Compiling cedarwood v0.4.4 [INFO] [stderr] Compiling csv-core v0.1.10 [INFO] [stderr] Compiling regex-automata v0.1.9 [INFO] [stderr] Compiling stream-vbyte v0.3.2 [INFO] [stderr] Compiling fxhash v0.2.1 [INFO] [stderr] Compiling libflate v1.0.2 [INFO] [stderr] Compiling phf v0.8.0 [INFO] [stderr] Compiling crossbeam v0.7.3 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling time v0.1.43 [INFO] [stderr] Compiling parking_lot_core v0.7.2 [INFO] [stderr] Compiling terminal_size v0.1.13 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling termios v0.3.2 [INFO] [stderr] Compiling madvise v0.1.0 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling flate2 v1.0.16 [INFO] [stderr] Compiling env_logger v0.7.1 [INFO] [stderr] Compiling console v0.11.3 [INFO] [stderr] Compiling rayon-core v1.7.1 [INFO] [stderr] Compiling threadpool v1.8.1 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling parking_lot v0.10.2 [INFO] [stderr] Compiling leveldb-sys v2.0.6 [INFO] [stderr] Compiling pbr v1.0.3 [INFO] [stderr] Compiling rusqlite v0.23.1 [INFO] [stderr] Compiling timeit v0.1.2 [INFO] [stderr] Compiling rand_pcg v0.2.1 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling rand_xorshift v0.2.0 [INFO] [stderr] Compiling ordered-float v1.1.0 [INFO] [stderr] Compiling approx v0.3.2 [INFO] [stderr] Compiling indicatif v0.15.0 [INFO] [stderr] Compiling rayon v1.3.1 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling serde_derive v1.0.114 [INFO] [stderr] Compiling thiserror-impl v1.0.20 [INFO] [stderr] Compiling phf_generator v0.8.0 [INFO] [stderr] Compiling phf_codegen v0.8.0 [INFO] [stderr] Compiling jieba-rs v0.5.1 [INFO] [stderr] Compiling thiserror v1.0.20 [INFO] [stderr] Compiling reductive v0.4.0 [INFO] [stderr] Compiling leveldb v0.8.5 [INFO] [stderr] Compiling bstr v0.2.13 [INFO] [stderr] Compiling toml v0.5.6 [INFO] [stderr] Compiling bincode v1.3.1 [INFO] [stderr] Compiling csv v1.1.3 [INFO] [stderr] Compiling finalfusion v0.12.4 [INFO] [stderr] Compiling vec2seq_rust v0.1.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/lib.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/lib.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/database/mod.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `unbounded` [INFO] [stdout] --> src/tasks/mod.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | use crossbeam::crossbeam_channel::{bounded, unbounded}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress` [INFO] [stdout] --> src/tasks/mod.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/tasks/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/tasks/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender` [INFO] [stdout] --> src/tasks/mod.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex` [INFO] [stdout] --> src/tasks/mod.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/tasks/mod.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `threadpool::ThreadPool` [INFO] [stdout] --> src/tasks/mod.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use threadpool::ThreadPool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/tasks/mod.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | if (self.objects.len() > 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 110 - if (self.objects.len() > 0) { [INFO] [stdout] 110 + if self.objects.len() > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:322:9 [INFO] [stdout] | [INFO] [stdout] 322 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Granne` [INFO] [stdout] --> src/tasks/mod.rs:456:23 [INFO] [stdout] | [INFO] [stdout] 456 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:505:13 [INFO] [stdout] | [INFO] [stdout] 505 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Builder`, `GranneBuilder` [INFO] [stdout] --> src/lib.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress`, `ProgressBar`, `ProgressStyle` [INFO] [stdout] --> src/lib.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `leveldb_sys` [INFO] [stdout] --> src/lib.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use leveldb_sys; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/lib.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/lib.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/lib.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Index` [INFO] [stdout] --> src/lib.rs:10:68 [INFO] [stdout] | [INFO] [stdout] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_index` [INFO] [stdout] --> src/lib.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | reply_index: &std::path::Path, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_index` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_elements` [INFO] [stdout] --> src/lib.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | reply_elements: &std::path::Path, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_elements` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tmp` [INFO] [stdout] --> src/lib.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut tmp: Vec<(usize, f32)> = Vec::new(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `title` [INFO] [stdout] --> src/tasks/mod.rs:203:75 [INFO] [stdout] | [INFO] [stdout] 203 | database::raw_ptt_article::ArticleOrigin::PttOrigin { title, board } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `title: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hit` [INFO] [stdout] --> src/tasks/mod.rs:227:25 [INFO] [stdout] | [INFO] [stdout] 227 | let hit = false; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_hit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_step` [INFO] [stdout] --> src/tasks/mod.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:405:9 [INFO] [stdout] | [INFO] [stdout] 405 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:442:9 [INFO] [stdout] | [INFO] [stdout] 442 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:561:13 [INFO] [stdout] | [INFO] [stdout] 561 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `join_receiver` [INFO] [stdout] --> src/tasks/mod.rs:479:23 [INFO] [stdout] | [INFO] [stdout] 479 | let (join_sender, join_receiver) = bounded::<()>(workers); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_join_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:482:9 [INFO] [stdout] | [INFO] [stdout] 482 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clone_join_sender` [INFO] [stdout] --> src/tasks/mod.rs:485:13 [INFO] [stdout] | [INFO] [stdout] 485 | let clone_join_sender = join_sender.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone_join_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/tasks/mod.rs:486:13 [INFO] [stdout] | [INFO] [stdout] 486 | let handle = std::thread::spawn(move || { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write_opts` [INFO] [stdout] --> src/tasks/mod.rs:603:17 [INFO] [stdout] | [INFO] [stdout] 603 | let write_opts = leveldb::options::WriteOptions::new(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_opts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:677:13 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_file` [INFO] [stdout] --> src/tasks/mod.rs:704:13 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tasks/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let mut articles = stmt [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/tasks/mod.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let mut database = match leveldb::database::Database::open(Path::new("db/ldb.ldb"), options) { [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/tasks/mod.rs:321:13 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [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/tasks/mod.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | let mut output_database: leveldb::database::Database = [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/tasks/mod.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [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/tasks/mod.rs:368:13 [INFO] [stdout] | [INFO] [stdout] 368 | let mut article = database::raw_ptt_article::ContentReply { [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/tasks/mod.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:510:21 [INFO] [stdout] | [INFO] [stdout] 510 | let mut result = ArticleVectorSet { [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/tasks/mod.rs:552:13 [INFO] [stdout] | [INFO] [stdout] 552 | let mut step = 0i32; [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/tasks/mod.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:579:9 [INFO] [stdout] | [INFO] [stdout] 579 | let mut reply_group_output_database: leveldb::database::Database = [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/tasks/mod.rs:670:9 [INFO] [stdout] | [INFO] [stdout] 670 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:677:9 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [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/tasks/mod.rs:704:9 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [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/lib.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let mut self_ids = self.reply.search(&vec, 200, 10); [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/lib.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let mut tmp: Vec<(usize, f32)> = Vec::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `stopwords` [INFO] [stdout] --> src/sentence_embedding/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | stopwords: fnv::FnvHashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `raw_article_sqlite_to_leveldb` [INFO] [stdout] --> src/tasks/mod.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn raw_article_sqlite_to_leveldb() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `KMediumObject` [INFO] [stdout] --> src/tasks/mod.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | struct KMediumObject { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `KMediumGroup` [INFO] [stdout] --> src/tasks/mod.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | struct KMediumGroup { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `updateMedium` [INFO] [stdout] --> src/tasks/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn updateMedium(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `rawarticle_filter_to_content_reply` [INFO] [stdout] --> src/tasks/mod.rs:122:8 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn rawarticle_filter_to_content_reply() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `rawarticle_to_tfidf` [INFO] [stdout] --> src/tasks/mod.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn rawarticle_to_tfidf() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `TextVectorSet` [INFO] [stdout] --> src/tasks/mod.rs:457:8 [INFO] [stdout] | [INFO] [stdout] 457 | struct TextVectorSet { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ArticleVectorSet` [INFO] [stdout] --> src/tasks/mod.rs:461:8 [INFO] [stdout] | [INFO] [stdout] 461 | struct ArticleVectorSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `content_reply_to_reply_and_index` [INFO] [stdout] --> src/tasks/mod.rs:465:8 [INFO] [stdout] | [INFO] [stdout] 465 | pub fn content_reply_to_reply_and_index() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test_reply_storage` [INFO] [stdout] --> src/tasks/mod.rs:666:8 [INFO] [stdout] | [INFO] [stdout] 666 | pub fn test_reply_storage() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `cutter` [INFO] [stdout] --> src/tfidf/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | cutter: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `TfIdf` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/tfidf/mod.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize, Serialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/tfidf/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new_from_cutter` [INFO] [stdout] --> src/tfidf/mod.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new_from_cutter(cutter: jieba_rs::Jieba) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_uncut_document` [INFO] [stdout] --> src/tfidf/mod.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn add_uncut_document(&mut self, content: String) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_cutted_document` [INFO] [stdout] --> src/tfidf/mod.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn add_cutted_document(&mut self, content: Vec) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_max` [INFO] [stdout] --> src/tfidf/mod.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn get_max(&self) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `updateMedium` should have a snake case name [INFO] [stdout] --> src/tasks/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn updateMedium(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `update_medium` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:179:13 [INFO] [stdout] | [INFO] [stdout] 179 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:416:33 [INFO] [stdout] | [INFO] [stdout] 416 | ... tfidf_table.add_uncut_document(a.content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:418:37 [INFO] [stdout] | [INFO] [stdout] 418 | ... tfidf_table.add_uncut_document(push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:453:5 [INFO] [stdout] | [INFO] [stdout] 453 | file.write_all(&bincode::serialize(&tfidf_table).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:489:13 [INFO] [stdout] | [INFO] [stdout] 489 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 88 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/database/mod.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `unbounded` [INFO] [stdout] --> src/tasks/mod.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | use crossbeam::crossbeam_channel::{bounded, unbounded}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress` [INFO] [stdout] --> src/tasks/mod.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/tasks/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/tasks/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender` [INFO] [stdout] --> src/tasks/mod.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex` [INFO] [stdout] --> src/tasks/mod.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/tasks/mod.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `threadpool::ThreadPool` [INFO] [stdout] --> src/tasks/mod.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use threadpool::ThreadPool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/tasks/mod.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | if (self.objects.len() > 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 110 - if (self.objects.len() > 0) { [INFO] [stdout] 110 + if self.objects.len() > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:322:9 [INFO] [stdout] | [INFO] [stdout] 322 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Granne` [INFO] [stdout] --> src/tasks/mod.rs:456:23 [INFO] [stdout] | [INFO] [stdout] 456 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:505:13 [INFO] [stdout] | [INFO] [stdout] 505 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Builder`, `GranneBuilder`, `Granne`, `Index`, `angular` [INFO] [stdout] --> src/main.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress`, `ProgressBar`, `ProgressStyle` [INFO] [stdout] --> src/main.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `leveldb::kv::KV` [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use leveldb::kv::KV; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `leveldb_sys` [INFO] [stdout] --> src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use leveldb_sys; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/main.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/main.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 39 - vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stdout] 39 + vector.push(if item == 0f32 { 1f32 } else { item }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:49:32 [INFO] [stdout] | [INFO] [stdout] 49 | vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 49 - vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stdout] 49 + vector.push(if item == 0f32 { 1f32 } else { item }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TokenizeMode` [INFO] [stdout] --> src/main.rs:120:23 [INFO] [stdout] | [INFO] [stdout] 120 | use jieba_rs::{Jieba, TokenizeMode}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `finalfusion::prelude::*` [INFO] [stdout] --> src/main.rs:144:5 [INFO] [stdout] | [INFO] [stdout] 144 | use finalfusion::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | for i in 1..10000 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `j` [INFO] [stdout] --> src/main.rs:37:17 [INFO] [stdout] | [INFO] [stdout] 37 | for j in 0..300 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_j` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | for i in 1..10000 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `j` [INFO] [stdout] --> src/main.rs:47:17 [INFO] [stdout] | [INFO] [stdout] 47 | for j in 0..300 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_j` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `title` [INFO] [stdout] --> src/tasks/mod.rs:203:75 [INFO] [stdout] | [INFO] [stdout] 203 | database::raw_ptt_article::ArticleOrigin::PttOrigin { title, board } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `title: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hit` [INFO] [stdout] --> src/tasks/mod.rs:227:25 [INFO] [stdout] | [INFO] [stdout] 227 | let hit = false; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_hit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_step` [INFO] [stdout] --> src/tasks/mod.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:405:9 [INFO] [stdout] | [INFO] [stdout] 405 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:442:9 [INFO] [stdout] | [INFO] [stdout] 442 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:561:13 [INFO] [stdout] | [INFO] [stdout] 561 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `join_receiver` [INFO] [stdout] --> src/tasks/mod.rs:479:23 [INFO] [stdout] | [INFO] [stdout] 479 | let (join_sender, join_receiver) = bounded::<()>(workers); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_join_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:482:9 [INFO] [stdout] | [INFO] [stdout] 482 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clone_join_sender` [INFO] [stdout] --> src/tasks/mod.rs:485:13 [INFO] [stdout] | [INFO] [stdout] 485 | let clone_join_sender = join_sender.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone_join_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/tasks/mod.rs:486:13 [INFO] [stdout] | [INFO] [stdout] 486 | let handle = std::thread::spawn(move || { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write_opts` [INFO] [stdout] --> src/tasks/mod.rs:603:17 [INFO] [stdout] | [INFO] [stdout] 603 | let write_opts = leveldb::options::WriteOptions::new(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_opts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:677:13 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_file` [INFO] [stdout] --> src/tasks/mod.rs:704:13 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tasks/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let mut articles = stmt [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/tasks/mod.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let mut database = match leveldb::database::Database::open(Path::new("db/ldb.ldb"), options) { [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/tasks/mod.rs:321:13 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [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/tasks/mod.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | let mut output_database: leveldb::database::Database = [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/tasks/mod.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [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/tasks/mod.rs:368:13 [INFO] [stdout] | [INFO] [stdout] 368 | let mut article = database::raw_ptt_article::ContentReply { [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/tasks/mod.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:510:21 [INFO] [stdout] | [INFO] [stdout] 510 | let mut result = ArticleVectorSet { [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/tasks/mod.rs:552:13 [INFO] [stdout] | [INFO] [stdout] 552 | let mut step = 0i32; [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/tasks/mod.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:579:9 [INFO] [stdout] | [INFO] [stdout] 579 | let mut reply_group_output_database: leveldb::database::Database = [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/tasks/mod.rs:670:9 [INFO] [stdout] | [INFO] [stdout] 670 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:677:9 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [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/tasks/mod.rs:704:9 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [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/main.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut result = math_tool::dot( [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/main.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | let mut result = math_tool::consine_similarity(&vector, &vector).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test` [INFO] [stdout] --> src/main.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn test() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test_vec2seq` [INFO] [stdout] --> src/main.rs:82:4 [INFO] [stdout] | [INFO] [stdout] 82 | fn test_vec2seq() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `jieba_test` [INFO] [stdout] --> src/main.rs:121:4 [INFO] [stdout] | [INFO] [stdout] 121 | fn jieba_test() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test_ff_subword` [INFO] [stdout] --> src/main.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | fn test_ff_subword(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `stopwords` [INFO] [stdout] --> src/sentence_embedding/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | stopwords: fnv::FnvHashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `raw_article_sqlite_to_leveldb` [INFO] [stdout] --> src/tasks/mod.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn raw_article_sqlite_to_leveldb() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `rawarticle_to_tfidf` [INFO] [stdout] --> src/tasks/mod.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn rawarticle_to_tfidf() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test_reply_storage` [INFO] [stdout] --> src/tasks/mod.rs:666:8 [INFO] [stdout] | [INFO] [stdout] 666 | pub fn test_reply_storage() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `cutter` [INFO] [stdout] --> src/tfidf/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | cutter: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `TfIdf` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/tfidf/mod.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize, Serialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/tfidf/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new_from_cutter` [INFO] [stdout] --> src/tfidf/mod.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new_from_cutter(cutter: jieba_rs::Jieba) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_uncut_document` [INFO] [stdout] --> src/tfidf/mod.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn add_uncut_document(&mut self, content: String) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_cutted_document` [INFO] [stdout] --> src/tfidf/mod.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn add_cutted_document(&mut self, content: Vec) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_max` [INFO] [stdout] --> src/tfidf/mod.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn get_max(&self) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/database/raw_ptt_article.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn new() -> Self{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get` [INFO] [stdout] --> src/database/raw_ptt_article.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn get(&self)->Vec{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `push` [INFO] [stdout] --> src/database/raw_ptt_article.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn push(&mut self, reply: String){ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `decompress` [INFO] [stdout] --> src/database/raw_ptt_article.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | fn decompress(bytes: &Vec) -> Vec{ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `updateMedium` should have a snake case name [INFO] [stdout] --> src/tasks/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn updateMedium(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `update_medium` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:179:13 [INFO] [stdout] | [INFO] [stdout] 179 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:416:33 [INFO] [stdout] | [INFO] [stdout] 416 | ... tfidf_table.add_uncut_document(a.content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:418:37 [INFO] [stdout] | [INFO] [stdout] 418 | ... tfidf_table.add_uncut_document(push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:453:5 [INFO] [stdout] | [INFO] [stdout] 453 | file.write_all(&bincode::serialize(&tfidf_table).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:489:13 [INFO] [stdout] | [INFO] [stdout] 489 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 90 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2m 29s [INFO] running `Command { std: "docker" "inspect" "33ca97e2671871088f5bc0d3b689413629841421409408c2b88ae3aae2089122", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "33ca97e2671871088f5bc0d3b689413629841421409408c2b88ae3aae2089122", kill_on_drop: false }` [INFO] [stdout] 33ca97e2671871088f5bc0d3b689413629841421409408c2b88ae3aae2089122 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bbb720fc65c27bde01191eb9848f526cd28846b16b152847126a2b8734cf6856 [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" "bbb720fc65c27bde01191eb9848f526cd28846b16b152847126a2b8734cf6856", kill_on_drop: false }` [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/lib.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/lib.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/database/mod.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `unbounded` [INFO] [stdout] --> src/tasks/mod.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | use crossbeam::crossbeam_channel::{bounded, unbounded}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress` [INFO] [stdout] --> src/tasks/mod.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/tasks/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/tasks/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender` [INFO] [stdout] --> src/tasks/mod.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex` [INFO] [stdout] --> src/tasks/mod.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/tasks/mod.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `threadpool::ThreadPool` [INFO] [stdout] --> src/tasks/mod.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use threadpool::ThreadPool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/tasks/mod.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | if (self.objects.len() > 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 110 - if (self.objects.len() > 0) { [INFO] [stdout] 110 + if self.objects.len() > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:322:9 [INFO] [stdout] | [INFO] [stdout] 322 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Granne` [INFO] [stdout] --> src/tasks/mod.rs:456:23 [INFO] [stdout] | [INFO] [stdout] 456 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:505:13 [INFO] [stdout] | [INFO] [stdout] 505 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Builder`, `GranneBuilder` [INFO] [stdout] --> src/lib.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress`, `ProgressBar`, `ProgressStyle` [INFO] [stdout] --> src/lib.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `leveldb_sys` [INFO] [stdout] --> src/lib.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use leveldb_sys; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/lib.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/lib.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/lib.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Index` [INFO] [stdout] --> src/lib.rs:10:68 [INFO] [stdout] | [INFO] [stdout] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_index` [INFO] [stdout] --> src/lib.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | reply_index: &std::path::Path, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_index` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_elements` [INFO] [stdout] --> src/lib.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | reply_elements: &std::path::Path, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_elements` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tmp` [INFO] [stdout] --> src/lib.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut tmp: Vec<(usize, f32)> = Vec::new(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `title` [INFO] [stdout] --> src/tasks/mod.rs:203:75 [INFO] [stdout] | [INFO] [stdout] 203 | database::raw_ptt_article::ArticleOrigin::PttOrigin { title, board } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `title: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hit` [INFO] [stdout] --> src/tasks/mod.rs:227:25 [INFO] [stdout] | [INFO] [stdout] 227 | let hit = false; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_hit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_step` [INFO] [stdout] --> src/tasks/mod.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:405:9 [INFO] [stdout] | [INFO] [stdout] 405 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:442:9 [INFO] [stdout] | [INFO] [stdout] 442 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:561:13 [INFO] [stdout] | [INFO] [stdout] 561 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `join_receiver` [INFO] [stdout] --> src/tasks/mod.rs:479:23 [INFO] [stdout] | [INFO] [stdout] 479 | let (join_sender, join_receiver) = bounded::<()>(workers); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_join_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:482:9 [INFO] [stdout] | [INFO] [stdout] 482 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clone_join_sender` [INFO] [stdout] --> src/tasks/mod.rs:485:13 [INFO] [stdout] | [INFO] [stdout] 485 | let clone_join_sender = join_sender.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone_join_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/tasks/mod.rs:486:13 [INFO] [stdout] | [INFO] [stdout] 486 | let handle = std::thread::spawn(move || { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write_opts` [INFO] [stdout] --> src/tasks/mod.rs:603:17 [INFO] [stdout] | [INFO] [stdout] 603 | let write_opts = leveldb::options::WriteOptions::new(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_opts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:677:13 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_file` [INFO] [stdout] --> src/tasks/mod.rs:704:13 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tasks/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let mut articles = stmt [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/tasks/mod.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let mut database = match leveldb::database::Database::open(Path::new("db/ldb.ldb"), options) { [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/tasks/mod.rs:321:13 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [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/tasks/mod.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | let mut output_database: leveldb::database::Database = [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/tasks/mod.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [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/tasks/mod.rs:368:13 [INFO] [stdout] | [INFO] [stdout] 368 | let mut article = database::raw_ptt_article::ContentReply { [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/tasks/mod.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:510:21 [INFO] [stdout] | [INFO] [stdout] 510 | let mut result = ArticleVectorSet { [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/tasks/mod.rs:552:13 [INFO] [stdout] | [INFO] [stdout] 552 | let mut step = 0i32; [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/tasks/mod.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:579:9 [INFO] [stdout] | [INFO] [stdout] 579 | let mut reply_group_output_database: leveldb::database::Database = [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/tasks/mod.rs:670:9 [INFO] [stdout] | [INFO] [stdout] 670 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:677:9 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [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/tasks/mod.rs:704:9 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [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/lib.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let mut self_ids = self.reply.search(&vec, 200, 10); [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/lib.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let mut tmp: Vec<(usize, f32)> = Vec::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `stopwords` [INFO] [stdout] --> src/sentence_embedding/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | stopwords: fnv::FnvHashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `raw_article_sqlite_to_leveldb` [INFO] [stdout] --> src/tasks/mod.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn raw_article_sqlite_to_leveldb() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `KMediumObject` [INFO] [stdout] --> src/tasks/mod.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | struct KMediumObject { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `KMediumGroup` [INFO] [stdout] --> src/tasks/mod.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | struct KMediumGroup { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `updateMedium` [INFO] [stdout] --> src/tasks/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn updateMedium(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `rawarticle_filter_to_content_reply` [INFO] [stdout] --> src/tasks/mod.rs:122:8 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn rawarticle_filter_to_content_reply() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `rawarticle_to_tfidf` [INFO] [stdout] --> src/tasks/mod.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn rawarticle_to_tfidf() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `TextVectorSet` [INFO] [stdout] --> src/tasks/mod.rs:457:8 [INFO] [stdout] | [INFO] [stdout] 457 | struct TextVectorSet { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ArticleVectorSet` [INFO] [stdout] --> src/tasks/mod.rs:461:8 [INFO] [stdout] | [INFO] [stdout] 461 | struct ArticleVectorSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `content_reply_to_reply_and_index` [INFO] [stdout] --> src/tasks/mod.rs:465:8 [INFO] [stdout] | [INFO] [stdout] 465 | pub fn content_reply_to_reply_and_index() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test_reply_storage` [INFO] [stdout] --> src/tasks/mod.rs:666:8 [INFO] [stdout] | [INFO] [stdout] 666 | pub fn test_reply_storage() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `cutter` [INFO] [stdout] --> src/tfidf/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | cutter: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `TfIdf` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/tfidf/mod.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize, Serialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/tfidf/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new_from_cutter` [INFO] [stdout] --> src/tfidf/mod.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new_from_cutter(cutter: jieba_rs::Jieba) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_uncut_document` [INFO] [stdout] --> src/tfidf/mod.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn add_uncut_document(&mut self, content: String) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_cutted_document` [INFO] [stdout] --> src/tfidf/mod.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn add_cutted_document(&mut self, content: Vec) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_max` [INFO] [stdout] --> src/tfidf/mod.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn get_max(&self) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `updateMedium` should have a snake case name [INFO] [stdout] --> src/tasks/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn updateMedium(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `update_medium` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:179:13 [INFO] [stdout] | [INFO] [stdout] 179 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:416:33 [INFO] [stdout] | [INFO] [stdout] 416 | ... tfidf_table.add_uncut_document(a.content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:418:37 [INFO] [stdout] | [INFO] [stdout] 418 | ... tfidf_table.add_uncut_document(push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:453:5 [INFO] [stdout] | [INFO] [stdout] 453 | file.write_all(&bincode::serialize(&tfidf_table).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:489:13 [INFO] [stdout] | [INFO] [stdout] 489 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling vec2seq_rust v0.1.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 88 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/database/mod.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `unbounded` [INFO] [stdout] --> src/tasks/mod.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | use crossbeam::crossbeam_channel::{bounded, unbounded}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress` [INFO] [stdout] --> src/tasks/mod.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/tasks/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/tasks/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender` [INFO] [stdout] --> src/tasks/mod.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex` [INFO] [stdout] --> src/tasks/mod.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/tasks/mod.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `threadpool::ThreadPool` [INFO] [stdout] --> src/tasks/mod.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use threadpool::ThreadPool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/tasks/mod.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | if (self.objects.len() > 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 110 - if (self.objects.len() > 0) { [INFO] [stdout] 110 + if self.objects.len() > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:322:9 [INFO] [stdout] | [INFO] [stdout] 322 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Granne` [INFO] [stdout] --> src/tasks/mod.rs:456:23 [INFO] [stdout] | [INFO] [stdout] 456 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:505:13 [INFO] [stdout] | [INFO] [stdout] 505 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Builder`, `GranneBuilder`, `Granne`, `Index`, `angular` [INFO] [stdout] --> src/main.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress`, `ProgressBar`, `ProgressStyle` [INFO] [stdout] --> src/main.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `leveldb::kv::KV` [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use leveldb::kv::KV; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `leveldb_sys` [INFO] [stdout] --> src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use leveldb_sys; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/main.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/main.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 39 - vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stdout] 39 + vector.push(if item == 0f32 { 1f32 } else { item }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:49:32 [INFO] [stdout] | [INFO] [stdout] 49 | vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 49 - vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stdout] 49 + vector.push(if item == 0f32 { 1f32 } else { item }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TokenizeMode` [INFO] [stdout] --> src/main.rs:120:23 [INFO] [stdout] | [INFO] [stdout] 120 | use jieba_rs::{Jieba, TokenizeMode}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `finalfusion::prelude::*` [INFO] [stdout] --> src/main.rs:144:5 [INFO] [stdout] | [INFO] [stdout] 144 | use finalfusion::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/lib.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/lib.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/database/mod.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `unbounded` [INFO] [stdout] --> src/tasks/mod.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | use crossbeam::crossbeam_channel::{bounded, unbounded}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress` [INFO] [stdout] --> src/tasks/mod.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/tasks/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/tasks/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender` [INFO] [stdout] --> src/tasks/mod.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex` [INFO] [stdout] --> src/tasks/mod.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/tasks/mod.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `threadpool::ThreadPool` [INFO] [stdout] --> src/tasks/mod.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use threadpool::ThreadPool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/tasks/mod.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | if (self.objects.len() > 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 110 - if (self.objects.len() > 0) { [INFO] [stdout] 110 + if self.objects.len() > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:322:9 [INFO] [stdout] | [INFO] [stdout] 322 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Granne` [INFO] [stdout] --> src/tasks/mod.rs:456:23 [INFO] [stdout] | [INFO] [stdout] 456 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/tasks/mod.rs:505:13 [INFO] [stdout] | [INFO] [stdout] 505 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BuildConfig`, `Builder`, `GranneBuilder` [INFO] [stdout] --> src/lib.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HumanDuration`, `MultiProgress`, `ProgressBar`, `ProgressStyle` [INFO] [stdout] --> src/lib.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `leveldb_sys` [INFO] [stdout] --> src/lib.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use leveldb_sys; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stdout] --> src/lib.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Result}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::Value` [INFO] [stdout] --> src/lib.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use serde_json::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant` [INFO] [stdout] --> src/lib.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | for i in 1..10000 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `j` [INFO] [stdout] --> src/main.rs:37:17 [INFO] [stdout] | [INFO] [stdout] 37 | for j in 0..300 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_j` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | for i in 1..10000 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `j` [INFO] [stdout] --> src/main.rs:47:17 [INFO] [stdout] | [INFO] [stdout] 47 | for j in 0..300 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_j` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `title` [INFO] [stdout] --> src/tasks/mod.rs:203:75 [INFO] [stdout] | [INFO] [stdout] 203 | database::raw_ptt_article::ArticleOrigin::PttOrigin { title, board } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `title: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hit` [INFO] [stdout] --> src/tasks/mod.rs:227:25 [INFO] [stdout] | [INFO] [stdout] 227 | let hit = false; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_hit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_step` [INFO] [stdout] --> src/tasks/mod.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:405:9 [INFO] [stdout] | [INFO] [stdout] 405 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:442:9 [INFO] [stdout] | [INFO] [stdout] 442 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:561:13 [INFO] [stdout] | [INFO] [stdout] 561 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `join_receiver` [INFO] [stdout] --> src/tasks/mod.rs:479:23 [INFO] [stdout] | [INFO] [stdout] 479 | let (join_sender, join_receiver) = bounded::<()>(workers); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_join_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:482:9 [INFO] [stdout] | [INFO] [stdout] 482 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clone_join_sender` [INFO] [stdout] --> src/tasks/mod.rs:485:13 [INFO] [stdout] | [INFO] [stdout] 485 | let clone_join_sender = join_sender.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone_join_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/tasks/mod.rs:486:13 [INFO] [stdout] | [INFO] [stdout] 486 | let handle = std::thread::spawn(move || { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write_opts` [INFO] [stdout] --> src/tasks/mod.rs:603:17 [INFO] [stdout] | [INFO] [stdout] 603 | let write_opts = leveldb::options::WriteOptions::new(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_opts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:677:13 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_file` [INFO] [stdout] --> src/tasks/mod.rs:704:13 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tasks/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let mut articles = stmt [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/tasks/mod.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let mut database = match leveldb::database::Database::open(Path::new("db/ldb.ldb"), options) { [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/tasks/mod.rs:321:13 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [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/tasks/mod.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | let mut output_database: leveldb::database::Database = [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/tasks/mod.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [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/tasks/mod.rs:368:13 [INFO] [stdout] | [INFO] [stdout] 368 | let mut article = database::raw_ptt_article::ContentReply { [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/tasks/mod.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:510:21 [INFO] [stdout] | [INFO] [stdout] 510 | let mut result = ArticleVectorSet { [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/tasks/mod.rs:552:13 [INFO] [stdout] | [INFO] [stdout] 552 | let mut step = 0i32; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Index` [INFO] [stdout] --> src/lib.rs:10:68 [INFO] [stdout] | [INFO] [stdout] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_index` [INFO] [stdout] --> src/lib.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | reply_index: &std::path::Path, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_index` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tasks/mod.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:579:9 [INFO] [stdout] | [INFO] [stdout] 579 | let mut reply_group_output_database: leveldb::database::Database = [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/tasks/mod.rs:670:9 [INFO] [stdout] | [INFO] [stdout] 670 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:677:9 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [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/tasks/mod.rs:704:9 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_elements` [INFO] [stdout] --> src/lib.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | reply_elements: &std::path::Path, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_elements` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tmp` [INFO] [stdout] --> src/lib.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut tmp: Vec<(usize, f32)> = Vec::new(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `title` [INFO] [stdout] --> src/tasks/mod.rs:203:75 [INFO] [stdout] | [INFO] [stdout] 203 | database::raw_ptt_article::ArticleOrigin::PttOrigin { title, board } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `title: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hit` [INFO] [stdout] --> src/tasks/mod.rs:227:25 [INFO] [stdout] | [INFO] [stdout] 227 | let hit = false; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_hit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_step` [INFO] [stdout] --> src/tasks/mod.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:405:9 [INFO] [stdout] | [INFO] [stdout] 405 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:442:9 [INFO] [stdout] | [INFO] [stdout] 442 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:561:13 [INFO] [stdout] | [INFO] [stdout] 561 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `join_receiver` [INFO] [stdout] --> src/tasks/mod.rs:479:23 [INFO] [stdout] | [INFO] [stdout] 479 | let (join_sender, join_receiver) = bounded::<()>(workers); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_join_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tasks/mod.rs:482:9 [INFO] [stdout] | [INFO] [stdout] 482 | for i in 0..workers { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clone_join_sender` [INFO] [stdout] --> src/tasks/mod.rs:485:13 [INFO] [stdout] | [INFO] [stdout] 485 | let clone_join_sender = join_sender.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone_join_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/tasks/mod.rs:486:13 [INFO] [stdout] | [INFO] [stdout] 486 | let handle = std::thread::spawn(move || { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write_opts` [INFO] [stdout] --> src/tasks/mod.rs:603:17 [INFO] [stdout] | [INFO] [stdout] 603 | let write_opts = leveldb::options::WriteOptions::new(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_opts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `step` [INFO] [stdout] --> src/tasks/mod.rs:677:13 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reply_file` [INFO] [stdout] --> src/tasks/mod.rs:704:13 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut result = math_tool::dot( [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/main.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | let mut result = math_tool::consine_similarity(&vector, &vector).unwrap(); [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/tasks/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let mut articles = stmt [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/tasks/mod.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let mut database = match leveldb::database::Database::open(Path::new("db/ldb.ldb"), options) { [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/tasks/mod.rs:321:13 [INFO] [stdout] | [INFO] [stdout] 321 | let mut reply_step = 0i32; [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/tasks/mod.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | let mut output_database: leveldb::database::Database = [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/tasks/mod.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | let mut step = 0i32; [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/tasks/mod.rs:368:13 [INFO] [stdout] | [INFO] [stdout] 368 | let mut article = database::raw_ptt_article::ContentReply { [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/tasks/mod.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:510:21 [INFO] [stdout] | [INFO] [stdout] 510 | let mut result = ArticleVectorSet { [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/tasks/mod.rs:552:13 [INFO] [stdout] | [INFO] [stdout] 552 | let mut step = 0i32; [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/tasks/mod.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:579:9 [INFO] [stdout] | [INFO] [stdout] 579 | let mut reply_group_output_database: leveldb::database::Database = [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/tasks/mod.rs:670:9 [INFO] [stdout] | [INFO] [stdout] 670 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:677:9 [INFO] [stdout] | [INFO] [stdout] 677 | let mut step = 0i32; [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/tasks/mod.rs:704:9 [INFO] [stdout] | [INFO] [stdout] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [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/lib.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let mut self_ids = self.reply.search(&vec, 200, 10); [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/lib.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let mut tmp: Vec<(usize, f32)> = Vec::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test` [INFO] [stdout] --> src/main.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn test() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test_vec2seq` [INFO] [stdout] --> src/main.rs:82:4 [INFO] [stdout] | [INFO] [stdout] 82 | fn test_vec2seq() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `jieba_test` [INFO] [stdout] --> src/main.rs:121:4 [INFO] [stdout] | [INFO] [stdout] 121 | fn jieba_test() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test_ff_subword` [INFO] [stdout] --> src/main.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | fn test_ff_subword(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `stopwords` [INFO] [stdout] --> src/sentence_embedding/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | stopwords: fnv::FnvHashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `raw_article_sqlite_to_leveldb` [INFO] [stdout] --> src/tasks/mod.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn raw_article_sqlite_to_leveldb() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `rawarticle_to_tfidf` [INFO] [stdout] --> src/tasks/mod.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn rawarticle_to_tfidf() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test_reply_storage` [INFO] [stdout] --> src/tasks/mod.rs:666:8 [INFO] [stdout] | [INFO] [stdout] 666 | pub fn test_reply_storage() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `cutter` [INFO] [stdout] --> src/tfidf/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | cutter: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `TfIdf` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/tfidf/mod.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize, Serialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/tfidf/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new_from_cutter` [INFO] [stdout] --> src/tfidf/mod.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new_from_cutter(cutter: jieba_rs::Jieba) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_uncut_document` [INFO] [stdout] --> src/tfidf/mod.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn add_uncut_document(&mut self, content: String) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_cutted_document` [INFO] [stdout] --> src/tfidf/mod.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn add_cutted_document(&mut self, content: Vec) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_max` [INFO] [stdout] --> src/tfidf/mod.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn get_max(&self) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/database/raw_ptt_article.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn new() -> Self{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get` [INFO] [stdout] --> src/database/raw_ptt_article.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn get(&self)->Vec{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `push` [INFO] [stdout] --> src/database/raw_ptt_article.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn push(&mut self, reply: String){ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `decompress` [INFO] [stdout] --> src/database/raw_ptt_article.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | fn decompress(bytes: &Vec) -> Vec{ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `updateMedium` should have a snake case name [INFO] [stdout] --> src/tasks/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn updateMedium(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `update_medium` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:179:13 [INFO] [stdout] | [INFO] [stdout] 179 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:416:33 [INFO] [stdout] | [INFO] [stdout] 416 | ... tfidf_table.add_uncut_document(a.content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:418:37 [INFO] [stdout] | [INFO] [stdout] 418 | ... tfidf_table.add_uncut_document(push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:453:5 [INFO] [stdout] | [INFO] [stdout] 453 | file.write_all(&bincode::serialize(&tfidf_table).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:489:13 [INFO] [stdout] | [INFO] [stdout] 489 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `stopwords` [INFO] [stdout] --> src/sentence_embedding/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | stopwords: fnv::FnvHashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `raw_article_sqlite_to_leveldb` [INFO] [stdout] --> src/tasks/mod.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn raw_article_sqlite_to_leveldb() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `KMediumObject` [INFO] [stdout] --> src/tasks/mod.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | struct KMediumObject { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `KMediumGroup` [INFO] [stdout] --> src/tasks/mod.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 104 | struct KMediumGroup { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `updateMedium` [INFO] [stdout] --> src/tasks/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn updateMedium(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `rawarticle_filter_to_content_reply` [INFO] [stdout] --> src/tasks/mod.rs:122:8 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn rawarticle_filter_to_content_reply() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `rawarticle_to_tfidf` [INFO] [stdout] --> src/tasks/mod.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn rawarticle_to_tfidf() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `TextVectorSet` [INFO] [stdout] --> src/tasks/mod.rs:457:8 [INFO] [stdout] | [INFO] [stdout] 457 | struct TextVectorSet { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ArticleVectorSet` [INFO] [stdout] --> src/tasks/mod.rs:461:8 [INFO] [stdout] | [INFO] [stdout] 461 | struct ArticleVectorSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `content_reply_to_reply_and_index` [INFO] [stdout] --> src/tasks/mod.rs:465:8 [INFO] [stdout] | [INFO] [stdout] 465 | pub fn content_reply_to_reply_and_index() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `test_reply_storage` [INFO] [stdout] --> src/tasks/mod.rs:666:8 [INFO] [stdout] | [INFO] [stdout] 666 | pub fn test_reply_storage() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `cutter` [INFO] [stdout] --> src/tfidf/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | cutter: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `TfIdf` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/tfidf/mod.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Debug, Deserialize, Serialize)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/tfidf/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new_from_cutter` [INFO] [stdout] --> src/tfidf/mod.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new_from_cutter(cutter: jieba_rs::Jieba) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_uncut_document` [INFO] [stdout] --> src/tfidf/mod.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn add_uncut_document(&mut self, content: String) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_cutted_document` [INFO] [stdout] --> src/tfidf/mod.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn add_cutted_document(&mut self, content: Vec) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_max` [INFO] [stdout] --> src/tfidf/mod.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn get_max(&self) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `updateMedium` should have a snake case name [INFO] [stdout] --> src/tasks/mod.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn updateMedium(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `update_medium` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:179:13 [INFO] [stdout] | [INFO] [stdout] 179 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:416:33 [INFO] [stdout] | [INFO] [stdout] 416 | ... tfidf_table.add_uncut_document(a.content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:418:37 [INFO] [stdout] | [INFO] [stdout] 418 | ... tfidf_table.add_uncut_document(push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:453:5 [INFO] [stdout] | [INFO] [stdout] 453 | file.write_all(&bincode::serialize(&tfidf_table).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:489:13 [INFO] [stdout] | [INFO] [stdout] 489 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tasks/mod.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 88 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 90 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 3.04s [INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/vec2seq_rust-8eb3eb202849a2d9) [INFO] [stderr] Executable unittests src/main.rs (/opt/rustwide/target/debug/deps/vec2seq_rust_cli-7d0a70ffc1d065ff) [INFO] running `Command { std: "docker" "inspect" "bbb720fc65c27bde01191eb9848f526cd28846b16b152847126a2b8734cf6856", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bbb720fc65c27bde01191eb9848f526cd28846b16b152847126a2b8734cf6856", kill_on_drop: false }` [INFO] [stdout] bbb720fc65c27bde01191eb9848f526cd28846b16b152847126a2b8734cf6856 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "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] 1e0a4cb937792e3161dd9dacb7f1dfcea360cc3378c43d8049d2eca396f3280f [INFO] running `Command { std: "docker" "start" "-a" "1e0a4cb937792e3161dd9dacb7f1dfcea360cc3378c43d8049d2eca396f3280f", kill_on_drop: false }` [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/lib.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stderr] --> src/database/mod.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use rusqlite::{params, Connection, Result}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `unbounded` [INFO] [stderr] --> src/tasks/mod.rs:5:45 [INFO] [stderr] | [INFO] [stderr] 5 | use crossbeam::crossbeam_channel::{bounded, unbounded}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HumanDuration`, `MultiProgress` [INFO] [stderr] --> src/tasks/mod.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/tasks/mod.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde_json::Value` [INFO] [stderr] --> src/tasks/mod.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use serde_json::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Receiver`, `Sender` [INFO] [stderr] --> src/tasks/mod.rs:22:23 [INFO] [stderr] | [INFO] [stderr] 22 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Arc`, `Mutex` [INFO] [stderr] --> src/tasks/mod.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | use std::sync::{Arc, Mutex}; [INFO] [stderr] | ^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/tasks/mod.rs:24:17 [INFO] [stderr] | [INFO] [stderr] 24 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `threadpool::ThreadPool` [INFO] [stderr] --> src/tasks/mod.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | use threadpool::ThreadPool; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/tasks/mod.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 110 | if (self.objects.len() > 0) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 110 - if (self.objects.len() > 0) { [INFO] [stderr] 110 + if self.objects.len() > 0 { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: denote infinite loops with `loop { ... }` [INFO] [stderr] --> src/tasks/mod.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | while true { [INFO] [stderr] | ^^^^^^^^^^ help: use `loop` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(while_true)]` on by default [INFO] [stderr] [INFO] [stderr] warning: denote infinite loops with `loop { ... }` [INFO] [stderr] --> src/tasks/mod.rs:322:9 [INFO] [stderr] | [INFO] [stderr] 322 | while true { [INFO] [stderr] | ^^^^^^^^^^ help: use `loop` [INFO] [stderr] [INFO] [stderr] warning: denote infinite loops with `loop { ... }` [INFO] [stderr] --> src/tasks/mod.rs:410:13 [INFO] [stderr] | [INFO] [stderr] 410 | while true { [INFO] [stderr] | ^^^^^^^^^^ help: use `loop` [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BuildConfig`, `Granne` [INFO] [stderr] --> src/tasks/mod.rs:456:23 [INFO] [stderr] | [INFO] [stderr] 456 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: denote infinite loops with `loop { ... }` [INFO] [stderr] --> src/tasks/mod.rs:505:13 [INFO] [stderr] | [INFO] [stderr] 505 | while true { [INFO] [stderr] | ^^^^^^^^^^ help: use `loop` [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BuildConfig`, `Builder`, `GranneBuilder` [INFO] [stderr] --> src/lib.rs:10:23 [INFO] [stderr] | [INFO] [stderr] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HumanDuration`, `MultiProgress`, `ProgressBar`, `ProgressStyle` [INFO] [stderr] --> src/lib.rs:11:17 [INFO] [stderr] | [INFO] [stderr] 11 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `leveldb_sys` [INFO] [stderr] --> src/lib.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use leveldb_sys; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stderr] --> src/lib.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | use rusqlite::{params, Connection, Result}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde_json::Value` [INFO] [stderr] --> src/lib.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use serde_json::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/lib.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/lib.rs:21:17 [INFO] [stderr] | [INFO] [stderr] 21 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Index` [INFO] [stderr] --> src/lib.rs:10:68 [INFO] [stderr] | [INFO] [stderr] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `reply_index` [INFO] [stderr] --> src/lib.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | reply_index: &std::path::Path, [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_index` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `reply_elements` [INFO] [stderr] --> src/lib.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | reply_elements: &std::path::Path, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_elements` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tmp` [INFO] [stderr] --> src/lib.rs:124:17 [INFO] [stderr] | [INFO] [stderr] 124 | let mut tmp: Vec<(usize, f32)> = Vec::new(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_tmp` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `title` [INFO] [stderr] --> src/tasks/mod.rs:203:75 [INFO] [stderr] | [INFO] [stderr] 203 | database::raw_ptt_article::ArticleOrigin::PttOrigin { title, board } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `title: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hit` [INFO] [stderr] --> src/tasks/mod.rs:227:25 [INFO] [stderr] | [INFO] [stderr] 227 | let hit = false; [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_hit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `reply_step` [INFO] [stderr] --> src/tasks/mod.rs:321:17 [INFO] [stderr] | [INFO] [stderr] 321 | let mut reply_step = 0i32; [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_step` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `step` [INFO] [stderr] --> src/tasks/mod.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | let mut step = 0i32; [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tasks/mod.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | for i in 0..workers { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tasks/mod.rs:376:9 [INFO] [stderr] | [INFO] [stderr] 376 | for i in 0..workers { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tasks/mod.rs:405:9 [INFO] [stderr] | [INFO] [stderr] 405 | for i in 0..workers { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tasks/mod.rs:442:9 [INFO] [stderr] | [INFO] [stderr] 442 | for i in 0..workers { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tasks/mod.rs:561:13 [INFO] [stderr] | [INFO] [stderr] 561 | for i in 0..workers { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `join_receiver` [INFO] [stderr] --> src/tasks/mod.rs:479:23 [INFO] [stderr] | [INFO] [stderr] 479 | let (join_sender, join_receiver) = bounded::<()>(workers); [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_join_receiver` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tasks/mod.rs:482:9 [INFO] [stderr] | [INFO] [stderr] 482 | for i in 0..workers { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `clone_join_sender` [INFO] [stderr] --> src/tasks/mod.rs:485:13 [INFO] [stderr] | [INFO] [stderr] 485 | let clone_join_sender = join_sender.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone_join_sender` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `handle` [INFO] [stderr] --> src/tasks/mod.rs:486:13 [INFO] [stderr] | [INFO] [stderr] 486 | let handle = std::thread::spawn(move || { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `write_opts` [INFO] [stderr] --> src/tasks/mod.rs:603:17 [INFO] [stderr] | [INFO] [stderr] 603 | let write_opts = leveldb::options::WriteOptions::new(); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_opts` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `step` [INFO] [stderr] --> src/tasks/mod.rs:677:13 [INFO] [stderr] | [INFO] [stderr] 677 | let mut step = 0i32; [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_step` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `reply_file` [INFO] [stderr] --> src/tasks/mod.rs:704:13 [INFO] [stderr] | [INFO] [stderr] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reply_file` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tasks/mod.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let mut articles = stmt [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/tasks/mod.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | let mut database = match leveldb::database::Database::open(Path::new("db/ldb.ldb"), options) { [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/tasks/mod.rs:321:13 [INFO] [stderr] | [INFO] [stderr] 321 | let mut reply_step = 0i32; [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/tasks/mod.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | let mut output_database: leveldb::database::Database = [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/tasks/mod.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | let mut step = 0i32; [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/tasks/mod.rs:368:13 [INFO] [stderr] | [INFO] [stderr] 368 | let mut article = database::raw_ptt_article::ContentReply { [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/tasks/mod.rs:395:9 [INFO] [stderr] | [INFO] [stderr] 395 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:510:21 [INFO] [stderr] | [INFO] [stderr] 510 | let mut result = ArticleVectorSet { [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/tasks/mod.rs:552:13 [INFO] [stderr] | [INFO] [stderr] 552 | let mut step = 0i32; [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/tasks/mod.rs:469:9 [INFO] [stderr] | [INFO] [stderr] 469 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:579:9 [INFO] [stderr] | [INFO] [stderr] 579 | let mut reply_group_output_database: leveldb::database::Database = [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/tasks/mod.rs:670:9 [INFO] [stderr] | [INFO] [stderr] 670 | let mut input_database: leveldb::database::Database = [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/tasks/mod.rs:677:9 [INFO] [stderr] | [INFO] [stderr] 677 | let mut step = 0i32; [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/tasks/mod.rs:704:9 [INFO] [stderr] | [INFO] [stderr] 704 | let mut reply_file = File::create("reply.bin").unwrap(); [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/lib.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | let mut self_ids = self.reply.search(&vec, 200, 10); [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/lib.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | let mut tmp: Vec<(usize, f32)> = Vec::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never read: `stopwords` [INFO] [stderr] --> src/sentence_embedding/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | stopwords: fnv::FnvHashSet, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `raw_article_sqlite_to_leveldb` [INFO] [stderr] --> src/tasks/mod.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn raw_article_sqlite_to_leveldb() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `KMediumObject` [INFO] [stderr] --> src/tasks/mod.rs:100:8 [INFO] [stderr] | [INFO] [stderr] 100 | struct KMediumObject { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `KMediumGroup` [INFO] [stderr] --> src/tasks/mod.rs:104:8 [INFO] [stderr] | [INFO] [stderr] 104 | struct KMediumGroup { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `updateMedium` [INFO] [stderr] --> src/tasks/mod.rs:109:12 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn updateMedium(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rawarticle_filter_to_content_reply` [INFO] [stderr] --> src/tasks/mod.rs:122:8 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn rawarticle_filter_to_content_reply() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `rawarticle_to_tfidf` [INFO] [stderr] --> src/tasks/mod.rs:391:8 [INFO] [stderr] | [INFO] [stderr] 391 | pub fn rawarticle_to_tfidf() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `TextVectorSet` [INFO] [stderr] --> src/tasks/mod.rs:457:8 [INFO] [stderr] | [INFO] [stderr] 457 | struct TextVectorSet { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ArticleVectorSet` [INFO] [stderr] --> src/tasks/mod.rs:461:8 [INFO] [stderr] | [INFO] [stderr] 461 | struct ArticleVectorSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `content_reply_to_reply_and_index` [INFO] [stderr] --> src/tasks/mod.rs:465:8 [INFO] [stderr] | [INFO] [stderr] 465 | pub fn content_reply_to_reply_and_index() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test_reply_storage` [INFO] [stderr] --> src/tasks/mod.rs:666:8 [INFO] [stderr] | [INFO] [stderr] 666 | pub fn test_reply_storage() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `cutter` [INFO] [stderr] --> src/tfidf/mod.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | cutter: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: `TfIdf` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] --> src/tfidf/mod.rs:7:10 [INFO] [stderr] | [INFO] [stderr] 7 | #[derive(Debug, Deserialize, Serialize)] [INFO] [stderr] | ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/tfidf/mod.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new_from_cutter` [INFO] [stderr] --> src/tfidf/mod.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new_from_cutter(cutter: jieba_rs::Jieba) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `add_uncut_document` [INFO] [stderr] --> src/tfidf/mod.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn add_uncut_document(&mut self, content: String) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `add_cutted_document` [INFO] [stderr] --> src/tfidf/mod.rs:43:12 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn add_cutted_document(&mut self, content: Vec) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `get_max` [INFO] [stderr] --> src/tfidf/mod.rs:66:12 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn get_max(&self) -> u32 { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/lib.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/lib.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: method `updateMedium` should have a snake case name [INFO] [stderr] --> src/tasks/mod.rs:109:12 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn updateMedium(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `update_medium` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/tasks/mod.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/tasks/mod.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/tasks/mod.rs:416:33 [INFO] [stderr] | [INFO] [stderr] 416 | ... tfidf_table.add_uncut_document(a.content); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/tasks/mod.rs:418:37 [INFO] [stderr] | [INFO] [stderr] 418 | ... tfidf_table.add_uncut_document(push); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/tasks/mod.rs:453:5 [INFO] [stderr] | [INFO] [stderr] 453 | file.write_all(&bincode::serialize(&tfidf_table).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/tasks/mod.rs:489:13 [INFO] [stderr] | [INFO] [stderr] 489 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/tasks/mod.rs:499:13 [INFO] [stderr] | [INFO] [stderr] 499 | stopwords_file.read_to_string(&mut stop_words); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `vec2seq_rust` (lib) generated 88 warnings [INFO] [stderr] warning: `vec2seq_rust` (lib test) generated 88 warnings (88 duplicates) [INFO] [stderr] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stderr] --> src/database/mod.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use rusqlite::{params, Connection, Result}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BuildConfig`, `Builder`, `GranneBuilder`, `Granne`, `Index`, `angular` [INFO] [stderr] --> src/main.rs:10:14 [INFO] [stderr] | [INFO] [stderr] 10 | use granne::{angular, BuildConfig, Builder, Granne, GranneBuilder, Index}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HumanDuration`, `MultiProgress`, `ProgressBar`, `ProgressStyle` [INFO] [stderr] --> src/main.rs:11:17 [INFO] [stderr] | [INFO] [stderr] 11 | use indicatif::{HumanDuration, MultiProgress, ProgressBar, ProgressStyle}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `leveldb::kv::KV` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use leveldb::kv::KV; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `leveldb_sys` [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use leveldb_sys; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Connection`, `Result`, `params` [INFO] [stderr] --> src/main.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | use rusqlite::{params, Connection, Result}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde_json::Value` [INFO] [stderr] --> src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use serde_json::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/main.rs:21:17 [INFO] [stderr] | [INFO] [stderr] 21 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:39:32 [INFO] [stderr] | [INFO] [stderr] 39 | vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 39 - vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stderr] 39 + vector.push(if item == 0f32 { 1f32 } else { item }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:49:32 [INFO] [stderr] | [INFO] [stderr] 49 | vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 49 - vector.push(if (item == 0f32) { 1f32 } else { item }); [INFO] [stderr] 49 + vector.push(if item == 0f32 { 1f32 } else { item }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `TokenizeMode` [INFO] [stderr] --> src/main.rs:120:23 [INFO] [stderr] | [INFO] [stderr] 120 | use jieba_rs::{Jieba, TokenizeMode}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `finalfusion::prelude::*` [INFO] [stderr] --> src/main.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | use finalfusion::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | for i in 1..10000 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `j` [INFO] [stderr] --> src/main.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | for j in 0..300 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_j` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | for i in 1..10000 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `j` [INFO] [stderr] --> src/main.rs:47:17 [INFO] [stderr] | [INFO] [stderr] 47 | for j in 0..300 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_j` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | let mut result = math_tool::dot( [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/main.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | let mut result = math_tool::consine_similarity(&vector, &vector).unwrap(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test` [INFO] [stderr] --> src/main.rs:23:4 [INFO] [stderr] | [INFO] [stderr] 23 | fn test() { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test_vec2seq` [INFO] [stderr] --> src/main.rs:82:4 [INFO] [stderr] | [INFO] [stderr] 82 | fn test_vec2seq() { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `jieba_test` [INFO] [stderr] --> src/main.rs:121:4 [INFO] [stderr] | [INFO] [stderr] 121 | fn jieba_test() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test_ff_subword` [INFO] [stderr] --> src/main.rs:145:4 [INFO] [stderr] | [INFO] [stderr] 145 | fn test_ff_subword(){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `stopwords` [INFO] [stderr] --> src/sentence_embedding/mod.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | stopwords: fnv::FnvHashSet, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/database/raw_ptt_article.rs:46:12 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn new() -> Self{ [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `get` [INFO] [stderr] --> src/database/raw_ptt_article.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn get(&self)->Vec{ [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `push` [INFO] [stderr] --> src/database/raw_ptt_article.rs:59:12 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn push(&mut self, reply: String){ [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `decompress` [INFO] [stderr] --> src/database/raw_ptt_article.rs:70:8 [INFO] [stderr] | [INFO] [stderr] 70 | fn decompress(bytes: &Vec) -> Vec{ [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/tasks/mod.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | tfidf_bufreader.read_to_end(&mut buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `vec2seq_rust` (bin "vec2seq_rust_cli" test) generated 90 warnings (61 duplicates) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.17s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vec2seq_rust-8eb3eb202849a2d9) [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/vec2seq_rust_cli-7d0a70ffc1d065ff) [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests vec2seq_rust [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> /opt/rustwide/workdir/src/tasks/mod.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 110 | if (self.objects.len() > 0) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 110 - if (self.objects.len() > 0) { [INFO] [stderr] 110 + if self.objects.len() > 0 { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "1e0a4cb937792e3161dd9dacb7f1dfcea360cc3378c43d8049d2eca396f3280f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1e0a4cb937792e3161dd9dacb7f1dfcea360cc3378c43d8049d2eca396f3280f", kill_on_drop: false }` [INFO] [stdout] 1e0a4cb937792e3161dd9dacb7f1dfcea360cc3378c43d8049d2eca396f3280f