[INFO] updating cached repository johnny-human/nlp-tokenize [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/johnny-human/nlp-tokenize [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/johnny-human/nlp-tokenize" "work/ex/clippy-test-run/sources/stable/gh/johnny-human/nlp-tokenize"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/johnny-human/nlp-tokenize'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/johnny-human/nlp-tokenize" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/johnny-human/nlp-tokenize"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/johnny-human/nlp-tokenize'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] fa68c7ce430a43fd9b9f7983f97a58ec4c195caf [INFO] sha for GitHub repo johnny-human/nlp-tokenize: fa68c7ce430a43fd9b9f7983f97a58ec4c195caf [INFO] validating manifest of johnny-human/nlp-tokenize on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of johnny-human/nlp-tokenize on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing johnny-human/nlp-tokenize [INFO] finished frobbing johnny-human/nlp-tokenize [INFO] frobbed toml for johnny-human/nlp-tokenize written to work/ex/clippy-test-run/sources/stable/gh/johnny-human/nlp-tokenize/Cargo.toml [INFO] started frobbing johnny-human/nlp-tokenize [INFO] finished frobbing johnny-human/nlp-tokenize [INFO] frobbed toml for johnny-human/nlp-tokenize written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/johnny-human/nlp-tokenize/Cargo.toml [INFO] crate johnny-human/nlp-tokenize has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting johnny-human/nlp-tokenize against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/johnny-human/nlp-tokenize:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] a78cf2323fdf0341d7633288196a2d35b3fb672b1473e8c731c5ae885a6c918b [INFO] running `"docker" "start" "-a" "a78cf2323fdf0341d7633288196a2d35b3fb672b1473e8c731c5ae885a6c918b"` [INFO] [stderr] Checking bitflags v0.9.0 [INFO] [stderr] Checking clap v2.24.1 [INFO] [stderr] Checking fs2 v0.2.5 [INFO] [stderr] Checking filebuffer v0.1.1 [INFO] [stderr] Checking memmap v0.4.0 [INFO] [stderr] Checking fst v0.1.38 [INFO] [stderr] Checking nlp v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::borrow::Cow` [INFO] [stderr] --> src/tokenizer_loop.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::borrow::Cow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DecoderTrap`, `Encoding` [INFO] [stderr] --> src/tokenizer_loop.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | use encoding::{Encoding, DecoderTrap}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `encoding::all::UTF_8` [INFO] [stderr] --> src/tokenizer_loop.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use encoding::all::UTF_8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:17:33 [INFO] [stderr] | [INFO] [stderr] 17 | const CONTROL = 0b0000000000000001; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:18:33 [INFO] [stderr] | [INFO] [stderr] 18 | const SPECIAL = 0b0000000000000010; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:19:33 [INFO] [stderr] | [INFO] [stderr] 19 | const NUMBER = 0b0000000000000100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:20:33 [INFO] [stderr] | [INFO] [stderr] 20 | const ALPHA = 0b0000000000001000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:21:33 [INFO] [stderr] | [INFO] [stderr] 21 | const LATIN = 0b0000000000010000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:22:33 [INFO] [stderr] | [INFO] [stderr] 22 | const STOP = 0b0000000000100000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:23:33 [INFO] [stderr] | [INFO] [stderr] 23 | const FULL_STOP = 0b0000000001000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:24:33 [INFO] [stderr] | [INFO] [stderr] 24 | const QUOTE = 0b0000000010000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:25:33 [INFO] [stderr] | [INFO] [stderr] 25 | const BRACKET = 0b0000000100000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0001_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:26:33 [INFO] [stderr] | [INFO] [stderr] 26 | const HYPHEN = 0b0000001000000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0010_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/tokenizer_loop.rs:143:7 [INFO] [stderr] | [INFO] [stderr] 143 | slice [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/tokenizer_loop.rs:142:19 [INFO] [stderr] | [INFO] [stderr] 142 | let slice = if byte < 192 {[194u8, byte]} else {[195u8, byte - 64u8]}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `bitflags::*` [INFO] [stderr] --> src/numbers.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use bitflags::*; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Cow` [INFO] [stderr] --> src/numbers.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::borrow::Cow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DecoderTrap`, `Encoding` [INFO] [stderr] --> src/numbers.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | use encoding::{Encoding, DecoderTrap}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `encoding::all::UTF_8` [INFO] [stderr] --> src/numbers.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use encoding::all::UTF_8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Duration` [INFO] [stderr] --> src/main.rs:14:25 [INFO] [stderr] | [INFO] [stderr] 14 | use time::{PreciseTime, Duration}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokenizer_peek::*` [INFO] [stderr] --> src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use tokenizer_peek::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Cow` [INFO] [stderr] --> src/tokenizer_loop.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::borrow::Cow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DecoderTrap`, `Encoding` [INFO] [stderr] --> src/tokenizer_loop.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | use encoding::{Encoding, DecoderTrap}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `encoding::all::UTF_8` [INFO] [stderr] --> src/tokenizer_loop.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use encoding::all::UTF_8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:17:33 [INFO] [stderr] | [INFO] [stderr] 17 | const CONTROL = 0b0000000000000001; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:18:33 [INFO] [stderr] | [INFO] [stderr] 18 | const SPECIAL = 0b0000000000000010; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:19:33 [INFO] [stderr] | [INFO] [stderr] 19 | const NUMBER = 0b0000000000000100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:20:33 [INFO] [stderr] | [INFO] [stderr] 20 | const ALPHA = 0b0000000000001000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:21:33 [INFO] [stderr] | [INFO] [stderr] 21 | const LATIN = 0b0000000000010000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:22:33 [INFO] [stderr] | [INFO] [stderr] 22 | const STOP = 0b0000000000100000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:23:33 [INFO] [stderr] | [INFO] [stderr] 23 | const FULL_STOP = 0b0000000001000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:24:33 [INFO] [stderr] | [INFO] [stderr] 24 | const QUOTE = 0b0000000010000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:25:33 [INFO] [stderr] | [INFO] [stderr] 25 | const BRACKET = 0b0000000100000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0001_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tokenizer_loop.rs:26:33 [INFO] [stderr] | [INFO] [stderr] 26 | const HYPHEN = 0b0000001000000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0010_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/tokenizer_loop.rs:143:7 [INFO] [stderr] | [INFO] [stderr] 143 | slice [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/tokenizer_loop.rs:142:19 [INFO] [stderr] | [INFO] [stderr] 142 | let slice = if byte < 192 {[194u8, byte]} else {[195u8, byte - 64u8]}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `bitflags::*` [INFO] [stderr] --> src/numbers.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use bitflags::*; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Cow` [INFO] [stderr] --> src/numbers.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::borrow::Cow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DecoderTrap`, `Encoding` [INFO] [stderr] --> src/numbers.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | use encoding::{Encoding, DecoderTrap}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `encoding::all::UTF_8` [INFO] [stderr] --> src/numbers.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use encoding::all::UTF_8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Duration` [INFO] [stderr] --> src/main.rs:14:25 [INFO] [stderr] | [INFO] [stderr] 14 | use time::{PreciseTime, Duration}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokenizer_peek::*` [INFO] [stderr] --> src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use tokenizer_peek::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `token` [INFO] [stderr] --> src/tokenizer_loop.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | let token = Token { [INFO] [stderr] | ^^^^^ help: consider using `_token` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `length` [INFO] [stderr] --> src/tokenizer_peek.rs:75:11 [INFO] [stderr] | [INFO] [stderr] 75 | let length = c.len(); [INFO] [stderr] | ^^^^^^ help: consider using `_length` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tokenizer_peek.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 77 | for (i, byte) in c.iter().enumerate() { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `pos` is never read [INFO] [stderr] --> src/numbers.rs:11:15 [INFO] [stderr] | [INFO] [stderr] 11 | let mut pos: usize = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `token` [INFO] [stderr] --> src/tokenizer_loop.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | let token = Token { [INFO] [stderr] | ^^^^^ help: consider using `_token` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `length` [INFO] [stderr] --> src/tokenizer_peek.rs:75:11 [INFO] [stderr] | [INFO] [stderr] 75 | let length = c.len(); [INFO] [stderr] | ^^^^^^ help: consider using `_length` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tokenizer_peek.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 77 | for (i, byte) in c.iter().enumerate() { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `pos` is never read [INFO] [stderr] --> src/numbers.rs:11:15 [INFO] [stderr] | [INFO] [stderr] 11 | let mut pos: usize = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Alpha` [INFO] [stderr] --> src/tokenizer_peek.rs:16:7 [INFO] [stderr] | [INFO] [stderr] 16 | Alpha, // Pure alpha string [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Other` [INFO] [stderr] --> src/tokenizer_peek.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 17 | Other, // Unidentified elements [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Numeric` [INFO] [stderr] --> src/tokenizer_peek.rs:21:7 [INFO] [stderr] | [INFO] [stderr] 21 | Numeric, // Pure numeric strings 123 [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NonAlphaNum` [INFO] [stderr] --> src/tokenizer_peek.rs:22:7 [INFO] [stderr] | [INFO] [stderr] 22 | NonAlphaNum // Strings with only | ¦ § _ ~ ^ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Alpha` [INFO] [stderr] --> src/tokenizer_peek.rs:16:7 [INFO] [stderr] | [INFO] [stderr] 16 | Alpha, // Pure alpha string [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/tokenizer_loop.rs:81:33 [INFO] [stderr] | [INFO] [stderr] 81 | 127 ... 159 | 1 ... 31 => { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Other` [INFO] [stderr] --> src/tokenizer_peek.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 17 | Other, // Unidentified elements [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Numeric` [INFO] [stderr] --> src/tokenizer_peek.rs:21:7 [INFO] [stderr] | [INFO] [stderr] 21 | Numeric, // Pure numeric strings 123 [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NonAlphaNum` [INFO] [stderr] --> src/tokenizer_peek.rs:22:7 [INFO] [stderr] | [INFO] [stderr] 22 | NonAlphaNum // Strings with only | ¦ § _ ~ ^ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/tokenizer_loop.rs:52:24 [INFO] [stderr] | [INFO] [stderr] 52 | 32 | 10 | 13 => { [INFO] [stderr] | ^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokenizer_loop.rs:53:28 [INFO] [stderr] | [INFO] [stderr] 53 | if buffer.len() == 0 { continue; }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:71:25 [INFO] [stderr] | [INFO] [stderr] 71 | parse_flags = parse_flags | ALPHA; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= ALPHA` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:75:25 [INFO] [stderr] | [INFO] [stderr] 75 | parse_flags = parse_flags | parse_special(byte); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= parse_special(byte)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:79:25 [INFO] [stderr] | [INFO] [stderr] 79 | parse_flags = parse_flags | NUMBER; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= NUMBER` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:83:25 [INFO] [stderr] | [INFO] [stderr] 83 | parse_flags = parse_flags | CONTROL; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= CONTROL` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:87:25 [INFO] [stderr] | [INFO] [stderr] 87 | parse_flags = parse_flags | LATIN; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= LATIN` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokenizer_loop.rs:96:10 [INFO] [stderr] | [INFO] [stderr] 96 | if buffer.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: function `U80_FF` should have a snake case name such as `u80_ff` [INFO] [stderr] --> src/tokenizer_loop.rs:141:1 [INFO] [stderr] | [INFO] [stderr] 141 | / pub fn U80_FF(byte: u8) -> [u8; 2] { [INFO] [stderr] 142 | | let slice = if byte < 192 {[194u8, byte]} else {[195u8, byte - 64u8]}; [INFO] [stderr] 143 | | slice [INFO] [stderr] 144 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/tokenizer_peek.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / loop { [INFO] [stderr] 39 | | match it.peek() { [INFO] [stderr] 40 | | Some(_) => { [INFO] [stderr] 41 | | //println!("{:?}", &byte); [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try: `while let Some(_) = it.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/tokenizer_peek.rs:42:82 [INFO] [stderr] | [INFO] [stderr] 42 | let object: Vec = consume_while(&mut it, |a| not_eow(a)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove closure as shown: `not_eow` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/tokenizer_peek.rs:131:7 [INFO] [stderr] | [INFO] [stderr] 131 | / loop { [INFO] [stderr] 132 | | match it.peek() { [INFO] [stderr] 133 | | Some(&&byte) => { [INFO] [stderr] 134 | | if condition(byte) { [INFO] [stderr] ... | [INFO] [stderr] 142 | | } [INFO] [stderr] 143 | | } [INFO] [stderr] | |_______^ help: try: `while let Some(&&byte) = it.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/tokenizer_loop.rs:81:33 [INFO] [stderr] | [INFO] [stderr] 81 | 127 ... 159 | 1 ... 31 => { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/tokenizer_loop.rs:52:24 [INFO] [stderr] | [INFO] [stderr] 52 | 32 | 10 | 13 => { [INFO] [stderr] | ^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokenizer_loop.rs:53:28 [INFO] [stderr] | [INFO] [stderr] 53 | if buffer.len() == 0 { continue; }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:71:25 [INFO] [stderr] | [INFO] [stderr] 71 | parse_flags = parse_flags | ALPHA; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= ALPHA` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:75:25 [INFO] [stderr] | [INFO] [stderr] 75 | parse_flags = parse_flags | parse_special(byte); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= parse_special(byte)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:79:25 [INFO] [stderr] | [INFO] [stderr] 79 | parse_flags = parse_flags | NUMBER; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= NUMBER` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:83:25 [INFO] [stderr] | [INFO] [stderr] 83 | parse_flags = parse_flags | CONTROL; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= CONTROL` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer_loop.rs:87:25 [INFO] [stderr] | [INFO] [stderr] 87 | parse_flags = parse_flags | LATIN; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `parse_flags |= LATIN` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokenizer_loop.rs:96:10 [INFO] [stderr] | [INFO] [stderr] 96 | if buffer.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: function `U80_FF` should have a snake case name such as `u80_ff` [INFO] [stderr] --> src/tokenizer_loop.rs:141:1 [INFO] [stderr] | [INFO] [stderr] 141 | / pub fn U80_FF(byte: u8) -> [u8; 2] { [INFO] [stderr] 142 | | let slice = if byte < 192 {[194u8, byte]} else {[195u8, byte - 64u8]}; [INFO] [stderr] 143 | | slice [INFO] [stderr] 144 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/tokenizer_peek.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / loop { [INFO] [stderr] 39 | | match it.peek() { [INFO] [stderr] 40 | | Some(_) => { [INFO] [stderr] 41 | | //println!("{:?}", &byte); [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try: `while let Some(_) = it.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/tokenizer_peek.rs:42:82 [INFO] [stderr] | [INFO] [stderr] 42 | let object: Vec = consume_while(&mut it, |a| not_eow(a)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove closure as shown: `not_eow` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/tokenizer_peek.rs:131:7 [INFO] [stderr] | [INFO] [stderr] 131 | / loop { [INFO] [stderr] 132 | | match it.peek() { [INFO] [stderr] 133 | | Some(&&byte) => { [INFO] [stderr] 134 | | if condition(byte) { [INFO] [stderr] ... | [INFO] [stderr] 142 | | } [INFO] [stderr] 143 | | } [INFO] [stderr] | |_______^ help: try: `while let Some(&&byte) = it.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.78s [INFO] running `"docker" "inspect" "a78cf2323fdf0341d7633288196a2d35b3fb672b1473e8c731c5ae885a6c918b"` [INFO] running `"docker" "rm" "-f" "a78cf2323fdf0341d7633288196a2d35b3fb672b1473e8c731c5ae885a6c918b"` [INFO] [stdout] a78cf2323fdf0341d7633288196a2d35b3fb672b1473e8c731c5ae885a6c918b