[INFO] crate sourcemap 2.2.1 is already in cache [INFO] extracting crate sourcemap 2.2.1 into work/ex/clippy-test-run/sources/stable/reg/sourcemap/2.2.1 [INFO] extracting crate sourcemap 2.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/sourcemap/2.2.1 [INFO] validating manifest of sourcemap-2.2.1 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 sourcemap-2.2.1 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 sourcemap-2.2.1 [INFO] finished frobbing sourcemap-2.2.1 [INFO] frobbed toml for sourcemap-2.2.1 written to work/ex/clippy-test-run/sources/stable/reg/sourcemap/2.2.1/Cargo.toml [INFO] started frobbing sourcemap-2.2.1 [INFO] finished frobbing sourcemap-2.2.1 [INFO] frobbed toml for sourcemap-2.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/sourcemap/2.2.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 sourcemap-2.2.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/sourcemap/2.2.1:/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] 1a3c47921587dab659e5cfc97d1d57d61c08a066bb11e54c6ff6b944ac2ccda9 [INFO] running `"docker" "start" "-a" "1a3c47921587dab659e5cfc97d1d57d61c08a066bb11e54c6ff6b944ac2ccda9"` [INFO] [stderr] Checking if_chain v0.1.3 [INFO] [stderr] Compiling sourcemap v2.2.1 (/opt/crater/workdir) [INFO] [stderr] Checking base64 v0.4.2 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | dst_line: dst_line, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `dst_line` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | dst_col: dst_col, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `dst_col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | src_line: src_line, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `src_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | src_col: src_col, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `src_col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | src_id: src_id, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `src_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | name_id: name_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `name_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:487:13 [INFO] [stderr] | [INFO] [stderr] 487 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:488:13 [INFO] [stderr] | [INFO] [stderr] 488 | tokens: tokens, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `tokens` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:489:13 [INFO] [stderr] | [INFO] [stderr] 489 | index: index, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:490:13 [INFO] [stderr] | [INFO] [stderr] 490 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:491:13 [INFO] [stderr] | [INFO] [stderr] 491 | sources: sources, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `sources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:514:17 [INFO] [stderr] | [INFO] [stderr] 514 | raw: raw, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:516:17 [INFO] [stderr] | [INFO] [stderr] 516 | idx: idx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `idx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:764:13 [INFO] [stderr] | [INFO] [stderr] 764 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:765:13 [INFO] [stderr] | [INFO] [stderr] 765 | sections: sections, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sections` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:875:13 [INFO] [stderr] | [INFO] [stderr] 875 | offset: offset, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `offset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:876:13 [INFO] [stderr] | [INFO] [stderr] 876 | url: url, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `url` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decoder.rs:175:17 [INFO] [stderr] | [INFO] [stderr] 175 | dst_col: dst_col, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `dst_col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decoder.rs:176:17 [INFO] [stderr] | [INFO] [stderr] 176 | src_line: src_line, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `src_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decoder.rs:177:17 [INFO] [stderr] | [INFO] [stderr] 177 | src_col: src_col, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `src_col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | dst_line: dst_line, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `dst_line` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | dst_col: dst_col, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `dst_col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | src_line: src_line, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `src_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | src_col: src_col, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `src_col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | src_id: src_id, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `src_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/builder.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | name_id: name_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `name_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:487:13 [INFO] [stderr] | [INFO] [stderr] 487 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:488:13 [INFO] [stderr] | [INFO] [stderr] 488 | tokens: tokens, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `tokens` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:489:13 [INFO] [stderr] | [INFO] [stderr] 489 | index: index, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:490:13 [INFO] [stderr] | [INFO] [stderr] 490 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:491:13 [INFO] [stderr] | [INFO] [stderr] 491 | sources: sources, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `sources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:514:17 [INFO] [stderr] | [INFO] [stderr] 514 | raw: raw, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:516:17 [INFO] [stderr] | [INFO] [stderr] 516 | idx: idx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `idx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:764:13 [INFO] [stderr] | [INFO] [stderr] 764 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:765:13 [INFO] [stderr] | [INFO] [stderr] 765 | sections: sections, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sections` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:875:13 [INFO] [stderr] | [INFO] [stderr] 875 | offset: offset, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `offset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:876:13 [INFO] [stderr] | [INFO] [stderr] 876 | url: url, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `url` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decoder.rs:175:17 [INFO] [stderr] | [INFO] [stderr] 175 | dst_col: dst_col, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `dst_col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decoder.rs:176:17 [INFO] [stderr] | [INFO] [stderr] 176 | src_line: src_line, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `src_line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/decoder.rs:177:17 [INFO] [stderr] | [INFO] [stderr] 177 | src_col: src_col, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `src_col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/decoder.rs:13:22 [INFO] [stderr] | [INFO] [stderr] 13 | const DATA_PREABLE: &'static str = "data:application/json;base64,"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/vlq.rs:3:19 [INFO] [stderr] | [INFO] [stderr] 3 | const B64_CHARS: &'static [u8] = [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/decoder.rs:13:22 [INFO] [stderr] | [INFO] [stderr] 13 | const DATA_PREABLE: &'static str = "data:application/json;base64,"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/vlq.rs:3:19 [INFO] [stderr] | [INFO] [stderr] 3 | const B64_CHARS: &'static [u8] = [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/builder.rs:210:27 [INFO] [stderr] | [INFO] [stderr] 210 | let contents = if self.source_contents.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.source_contents.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | / pub fn lookup_token<'a>(&'a self, line: u32, col: u32) -> Option> { [INFO] [stderr] 82 | | match *self { [INFO] [stderr] 83 | | DecodedMap::Regular(ref sm) => sm.lookup_token(line, col), [INFO] [stderr] 84 | | DecodedMap::Index(ref smi) => smi.lookup_token(line, col), [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/types.rs:342:21 [INFO] [stderr] | [INFO] [stderr] 342 | .unwrap_or("".into()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/types.rs:493:18 [INFO] [stderr] | [INFO] [stderr] 493 | .unwrap_or(vec![]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/types.rs:495:36 [INFO] [stderr] | [INFO] [stderr] 495 | .map(|opt| opt.map(|source| SourceView::from_string(source))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SourceView::from_string` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:511:5 [INFO] [stderr] | [INFO] [stderr] 511 | / pub fn get_token<'a>(&'a self, idx: u32) -> Option> { [INFO] [stderr] 512 | | self.tokens.get(idx as usize).map(|raw| { [INFO] [stderr] 513 | | Token { [INFO] [stderr] 514 | | raw: raw, [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:527:5 [INFO] [stderr] | [INFO] [stderr] 527 | / pub fn tokens<'a>(&'a self) -> TokenIter<'a> { [INFO] [stderr] 528 | | TokenIter { [INFO] [stderr] 529 | | i: self, [INFO] [stderr] 530 | | next_idx: 0, [INFO] [stderr] 531 | | } [INFO] [stderr] 532 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:535:5 [INFO] [stderr] | [INFO] [stderr] 535 | / pub fn lookup_token<'a>(&'a self, line: u32, col: u32) -> Option> { [INFO] [stderr] 536 | | let mut low = 0; [INFO] [stderr] 537 | | let mut high = self.index.len(); [INFO] [stderr] 538 | | [INFO] [stderr] ... | [INFO] [stderr] 553 | | } [INFO] [stderr] 554 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:593:5 [INFO] [stderr] | [INFO] [stderr] 593 | / pub fn sources<'a>(&'a self) -> SourceIter<'a> { [INFO] [stderr] 594 | | SourceIter { [INFO] [stderr] 595 | | i: self, [INFO] [stderr] 596 | | next_idx: 0, [INFO] [stderr] 597 | | } [INFO] [stderr] 598 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:601:5 [INFO] [stderr] | [INFO] [stderr] 601 | / pub fn get_source_view<'a>(&'a self, idx: u32) -> Option<&'a SourceView<'a>> { [INFO] [stderr] 602 | | self.sources_content.get(idx as usize) [INFO] [stderr] 603 | | .and_then(|x| x.as_ref()) [INFO] [stderr] 604 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:624:5 [INFO] [stderr] | [INFO] [stderr] 624 | / pub fn source_contents<'a>(&'a self) -> SourceContentsIter<'a> { [INFO] [stderr] 625 | | SourceContentsIter { [INFO] [stderr] 626 | | i: self, [INFO] [stderr] 627 | | next_idx: 0, [INFO] [stderr] 628 | | } [INFO] [stderr] 629 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:632:5 [INFO] [stderr] | [INFO] [stderr] 632 | / pub fn names<'a>(&'a self) -> NameIter<'a> { [INFO] [stderr] 633 | | NameIter { [INFO] [stderr] 634 | | i: self, [INFO] [stderr] 635 | | next_idx: 0, [INFO] [stderr] 636 | | } [INFO] [stderr] 637 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:665:5 [INFO] [stderr] | [INFO] [stderr] 665 | / pub fn index_iter<'a>(&'a self) -> IndexIter<'a> { [INFO] [stderr] 666 | | IndexIter { [INFO] [stderr] 667 | | i: self, [INFO] [stderr] 668 | | next_idx: 0, [INFO] [stderr] 669 | | } [INFO] [stderr] 670 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:795:5 [INFO] [stderr] | [INFO] [stderr] 795 | / pub fn sections<'a>(&'a self) -> SourceMapSectionIter<'a> { [INFO] [stderr] 796 | | SourceMapSectionIter { [INFO] [stderr] 797 | | i: self, [INFO] [stderr] 798 | | next_idx: 0, [INFO] [stderr] 799 | | } [INFO] [stderr] 800 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:807:5 [INFO] [stderr] | [INFO] [stderr] 807 | / pub fn lookup_token<'a>(&'a self, line: u32, col: u32) -> Option> { [INFO] [stderr] 808 | | for section in self.sections() { [INFO] [stderr] 809 | | let (off_line, off_col) = section.get_offset(); [INFO] [stderr] 810 | | if off_line < line || off_col < col { [INFO] [stderr] ... | [INFO] [stderr] 819 | | None [INFO] [stderr] 820 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/types.rs:877:26 [INFO] [stderr] | [INFO] [stderr] 877 | map: map.map(|x| Box::new(x)), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove closure as shown: `Box::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/types.rs:918:27 [INFO] [stderr] | [INFO] [stderr] 918 | self.map = sm.map(|x| Box::new(x)); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove closure as shown: `Box::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/decoder.rs:102:8 [INFO] [stderr] | [INFO] [stderr] 102 | if slice.len() == 0 || !is_junk_json(slice[0]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `slice.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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/decoder.rs:127:27 [INFO] [stderr] | [INFO] [stderr] 127 | let names = rsm.names.unwrap_or(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/decoder.rs:134:12 [INFO] [stderr] | [INFO] [stderr] 134 | if line.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.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: length comparison to zero [INFO] [stderr] --> src/decoder.rs:141:16 [INFO] [stderr] | [INFO] [stderr] 141 | if segment.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `segment.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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:146:24 [INFO] [stderr] | [INFO] [stderr] 146 | dst_col = (dst_col as i64 + nums[0]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(dst_col)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:155:27 [INFO] [stderr] | [INFO] [stderr] 155 | src_id = (src_id as i64 + nums[1]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(src_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:161:29 [INFO] [stderr] | [INFO] [stderr] 161 | src_line = (src_line as i64 + nums[2]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(src_line)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:162:28 [INFO] [stderr] | [INFO] [stderr] 162 | src_col = (src_col as i64 + nums[3]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(src_col)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:165:32 [INFO] [stderr] | [INFO] [stderr] 165 | name_id = (name_id as i64 + nums[4]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(name_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/decoder.rs:189:24 [INFO] [stderr] | [INFO] [stderr] 189 | if x.len() > 0 && [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/decoder.rs:226:41 [INFO] [stderr] | [INFO] [stderr] 226 | for mut raw_section in rsm.sections.unwrap_or(vec![]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/encoder.rs:23:21 [INFO] [stderr] | [INFO] [stderr] 23 | encode_vlq(out, (a as i64) - (b as i64)) [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(a)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/encoder.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | encode_vlq(out, (a as i64) - (b as i64)) [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/sourceview.rs:228:33 [INFO] [stderr] | [INFO] [stderr] 228 | while let Some(c) = char_iter.next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `for c in char_iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/vlq.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | let enc = B64[c as usize] as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(B64[c as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/vlq.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | cur = cur >> 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `cur >>= 1` [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: length comparison to zero [INFO] [stderr] --> src/vlq.rs:46:15 [INFO] [stderr] | [INFO] [stderr] 46 | } else if rv.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rv.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: an inclusive range would be more readable [INFO] [stderr] --> src/utils.rs:81:24 [INFO] [stderr] | [INFO] [stderr] 81 | Some(&shortest[..max_idx + 1]) [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `..=max_idx` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/utils.rs:116:27 [INFO] [stderr] | [INFO] [stderr] 116 | pub fn make_relative_path<'a>(base: &str, target: &str) -> String { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/utils.rs:117:73 [INFO] [stderr] | [INFO] [stderr] 117 | let target_path: Vec<_> = target.split(&['/', '\\'][..]).filter(|x| x.len() > 0).collect(); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: length comparison to zero [INFO] [stderr] --> src/utils.rs:118:73 [INFO] [stderr] | [INFO] [stderr] 118 | let mut base_path: Vec<_> = base.split(&['/', '\\'][..]).filter(|x| x.len() > 0).collect(); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: length comparison to zero [INFO] [stderr] --> src/builder.rs:210:27 [INFO] [stderr] | [INFO] [stderr] 210 | let contents = if self.source_contents.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.source_contents.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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | / pub fn lookup_token<'a>(&'a self, line: u32, col: u32) -> Option> { [INFO] [stderr] 82 | | match *self { [INFO] [stderr] 83 | | DecodedMap::Regular(ref sm) => sm.lookup_token(line, col), [INFO] [stderr] 84 | | DecodedMap::Index(ref smi) => smi.lookup_token(line, col), [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/types.rs:342:21 [INFO] [stderr] | [INFO] [stderr] 342 | .unwrap_or("".into()))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".into())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/types.rs:493:18 [INFO] [stderr] | [INFO] [stderr] 493 | .unwrap_or(vec![]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/types.rs:495:36 [INFO] [stderr] | [INFO] [stderr] 495 | .map(|opt| opt.map(|source| SourceView::from_string(source))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SourceView::from_string` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:511:5 [INFO] [stderr] | [INFO] [stderr] 511 | / pub fn get_token<'a>(&'a self, idx: u32) -> Option> { [INFO] [stderr] 512 | | self.tokens.get(idx as usize).map(|raw| { [INFO] [stderr] 513 | | Token { [INFO] [stderr] 514 | | raw: raw, [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:527:5 [INFO] [stderr] | [INFO] [stderr] 527 | / pub fn tokens<'a>(&'a self) -> TokenIter<'a> { [INFO] [stderr] 528 | | TokenIter { [INFO] [stderr] 529 | | i: self, [INFO] [stderr] 530 | | next_idx: 0, [INFO] [stderr] 531 | | } [INFO] [stderr] 532 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:535:5 [INFO] [stderr] | [INFO] [stderr] 535 | / pub fn lookup_token<'a>(&'a self, line: u32, col: u32) -> Option> { [INFO] [stderr] 536 | | let mut low = 0; [INFO] [stderr] 537 | | let mut high = self.index.len(); [INFO] [stderr] 538 | | [INFO] [stderr] ... | [INFO] [stderr] 553 | | } [INFO] [stderr] 554 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:593:5 [INFO] [stderr] | [INFO] [stderr] 593 | / pub fn sources<'a>(&'a self) -> SourceIter<'a> { [INFO] [stderr] 594 | | SourceIter { [INFO] [stderr] 595 | | i: self, [INFO] [stderr] 596 | | next_idx: 0, [INFO] [stderr] 597 | | } [INFO] [stderr] 598 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:601:5 [INFO] [stderr] | [INFO] [stderr] 601 | / pub fn get_source_view<'a>(&'a self, idx: u32) -> Option<&'a SourceView<'a>> { [INFO] [stderr] 602 | | self.sources_content.get(idx as usize) [INFO] [stderr] 603 | | .and_then(|x| x.as_ref()) [INFO] [stderr] 604 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:624:5 [INFO] [stderr] | [INFO] [stderr] 624 | / pub fn source_contents<'a>(&'a self) -> SourceContentsIter<'a> { [INFO] [stderr] 625 | | SourceContentsIter { [INFO] [stderr] 626 | | i: self, [INFO] [stderr] 627 | | next_idx: 0, [INFO] [stderr] 628 | | } [INFO] [stderr] 629 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:632:5 [INFO] [stderr] | [INFO] [stderr] 632 | / pub fn names<'a>(&'a self) -> NameIter<'a> { [INFO] [stderr] 633 | | NameIter { [INFO] [stderr] 634 | | i: self, [INFO] [stderr] 635 | | next_idx: 0, [INFO] [stderr] 636 | | } [INFO] [stderr] 637 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:665:5 [INFO] [stderr] | [INFO] [stderr] 665 | / pub fn index_iter<'a>(&'a self) -> IndexIter<'a> { [INFO] [stderr] 666 | | IndexIter { [INFO] [stderr] 667 | | i: self, [INFO] [stderr] 668 | | next_idx: 0, [INFO] [stderr] 669 | | } [INFO] [stderr] 670 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:795:5 [INFO] [stderr] | [INFO] [stderr] 795 | / pub fn sections<'a>(&'a self) -> SourceMapSectionIter<'a> { [INFO] [stderr] 796 | | SourceMapSectionIter { [INFO] [stderr] 797 | | i: self, [INFO] [stderr] 798 | | next_idx: 0, [INFO] [stderr] 799 | | } [INFO] [stderr] 800 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/types.rs:807:5 [INFO] [stderr] | [INFO] [stderr] 807 | / pub fn lookup_token<'a>(&'a self, line: u32, col: u32) -> Option> { [INFO] [stderr] 808 | | for section in self.sections() { [INFO] [stderr] 809 | | let (off_line, off_col) = section.get_offset(); [INFO] [stderr] 810 | | if off_line < line || off_col < col { [INFO] [stderr] ... | [INFO] [stderr] 819 | | None [INFO] [stderr] 820 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/types.rs:877:26 [INFO] [stderr] | [INFO] [stderr] 877 | map: map.map(|x| Box::new(x)), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove closure as shown: `Box::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/types.rs:918:27 [INFO] [stderr] | [INFO] [stderr] 918 | self.map = sm.map(|x| Box::new(x)); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove closure as shown: `Box::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/decoder.rs:102:8 [INFO] [stderr] | [INFO] [stderr] 102 | if slice.len() == 0 || !is_junk_json(slice[0]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `slice.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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/decoder.rs:127:27 [INFO] [stderr] | [INFO] [stderr] 127 | let names = rsm.names.unwrap_or(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/decoder.rs:134:12 [INFO] [stderr] | [INFO] [stderr] 134 | if line.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.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: length comparison to zero [INFO] [stderr] --> src/decoder.rs:141:16 [INFO] [stderr] | [INFO] [stderr] 141 | if segment.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `segment.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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:146:24 [INFO] [stderr] | [INFO] [stderr] 146 | dst_col = (dst_col as i64 + nums[0]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(dst_col)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:155:27 [INFO] [stderr] | [INFO] [stderr] 155 | src_id = (src_id as i64 + nums[1]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(src_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:161:29 [INFO] [stderr] | [INFO] [stderr] 161 | src_line = (src_line as i64 + nums[2]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(src_line)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:162:28 [INFO] [stderr] | [INFO] [stderr] 162 | src_col = (src_col as i64 + nums[3]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(src_col)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/decoder.rs:165:32 [INFO] [stderr] | [INFO] [stderr] 165 | name_id = (name_id as i64 + nums[4]) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(name_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/decoder.rs:189:24 [INFO] [stderr] | [INFO] [stderr] 189 | if x.len() > 0 && [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/decoder.rs:226:41 [INFO] [stderr] | [INFO] [stderr] 226 | for mut raw_section in rsm.sections.unwrap_or(vec![]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/encoder.rs:23:21 [INFO] [stderr] | [INFO] [stderr] 23 | encode_vlq(out, (a as i64) - (b as i64)) [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(a)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/encoder.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | encode_vlq(out, (a as i64) - (b as i64)) [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/sourceview.rs:228:33 [INFO] [stderr] | [INFO] [stderr] 228 | while let Some(c) = char_iter.next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `for c in char_iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/sourceview.rs:306:1 [INFO] [stderr] | [INFO] [stderr] 306 | / fn test_minified_source_view() { [INFO] [stderr] 307 | | let view = SourceView::new("a\nb\nc"); [INFO] [stderr] 308 | | assert_eq!(view.get_line(0), Some("a")); [INFO] [stderr] 309 | | assert_eq!(view.get_line(0), Some("a")); [INFO] [stderr] ... | [INFO] [stderr] 342 | | assert_eq!(view.get_line(4), None); [INFO] [stderr] 343 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/vlq.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | let enc = B64[c as usize] as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(B64[c as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/vlq.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | cur = cur >> 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `cur >>= 1` [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: length comparison to zero [INFO] [stderr] --> src/vlq.rs:46:15 [INFO] [stderr] | [INFO] [stderr] 46 | } else if rv.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `rv.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: an inclusive range would be more readable [INFO] [stderr] --> src/utils.rs:81:24 [INFO] [stderr] | [INFO] [stderr] 81 | Some(&shortest[..max_idx + 1]) [INFO] [stderr] | ^^^^^^^^^^^^^ help: use: `..=max_idx` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/utils.rs:116:27 [INFO] [stderr] | [INFO] [stderr] 116 | pub fn make_relative_path<'a>(base: &str, target: &str) -> String { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/utils.rs:117:73 [INFO] [stderr] | [INFO] [stderr] 117 | let target_path: Vec<_> = target.split(&['/', '\\'][..]).filter(|x| x.len() > 0).collect(); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: length comparison to zero [INFO] [stderr] --> src/utils.rs:118:73 [INFO] [stderr] | [INFO] [stderr] 118 | let mut base_path: Vec<_> = base.split(&['/', '\\'][..]).filter(|x| x.len() > 0).collect(); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/test_index.rs:61:14 [INFO] [stderr] | [INFO] [stderr] 61 | *raw_files.get(filename).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&raw_files[filename]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/test_index.rs:72:19 [INFO] [stderr] | [INFO] [stderr] 72 | let src = files.get(token.get_source().unwrap()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&files[token.get_source().unwrap()]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/test_index.rs:82:28 [INFO] [stderr] | [INFO] [stderr] 82 | let ref_contents = files.get(filename).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&files[filename]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> tests/test_index.rs:84:14 [INFO] [stderr] | [INFO] [stderr] 84 | .expect(&format!("no source for {}", filename)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("no source for {}", filename))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> tests/test_index.rs:90:14 [INFO] [stderr] | [INFO] [stderr] 90 | .expect(&format!("no source for {}", filename)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("no source for {}", filename))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> tests/test_namemap.rs:8:17 [INFO] [stderr] | [INFO] [stderr] 8 | let input = r#"{"version":3,"file":"test.min.js","sources":["test.js"],"names":["makeAFailure","testingStuff","Error","onSuccess","data","onFailure","invoke","cb","failed","test","value"],"mappings":"AAAA,GAAIA,cAAe,WACjB,QAASC,KACP,GAAIA,GAAe,EACnB,MAAM,IAAIC,OAAMD,GAGlB,QAASE,GAAUC,GACjBH,IAGF,QAASI,GAAUD,GACjB,KAAM,IAAIF,OAAM,WAGlB,QAASI,GAAOF,GACd,GAAIG,GAAK,IACT,IAAIH,EAAKI,OAAQ,CACfD,EAAKF,MACA,CACLE,EAAKJ,EAEPI,EAAGH,GAGL,QAASK,KACP,GAAIL,IAAQI,OAAQ,KAAME,MAAO,GACjCJ,GAAOF,GAGT,MAAOK","sourcesContent":["var makeAFailure = (function() {\n function testingStuff() {\n var testingStuff = 42;\n throw new Error(testingStuff);\n }\n\n function onSuccess(data) {\n testingStuff();\n }\n\n function onFailure(data) {\n throw new Error('failed!');\n }\n\n function invoke(data) {\n var cb = null;\n if (data.failed) {\n cb = onFailure;\n } else {\n cb = onSuccess;\n }\n cb(data);\n }\n\n function test() {\n var data = {failed: true, value: 42};\n invoke(data);\n }\n\n return test;\n})();\n"]}"#.as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `br#"{"version":3,"file":"test.min.js","sources":["test.js"],"names":["makeAFailure","testingStuff","Error","onSuccess","data","onFailure","invoke","cb","failed","test","value"],"mappings":"AAAA,GAAIA,cAAe,WACjB,QAASC,KACP,GAAIA,GAAe,EACnB,MAAM,IAAIC,OAAMD,GAGlB,QAASE,GAAUC,GACjBH,IAGF,QAASI,GAAUD,GACjB,KAAM,IAAIF,OAAM,WAGlB,QAASI,GAAOF,GACd,GAAIG,GAAK,IACT,IAAIH,EAAKI,OAAQ,CACfD,EAAKF,MACA,CACLE,EAAKJ,EAEPI,EAAGH,GAGL,QAASK,KACP,GAAIL,IAAQI,OAAQ,KAAME,MAAO,GACjCJ,GAAOF,GAGT,MAAOK","sourcesContent":["var makeAFailure = (function() {\n function testingStuff() {\n var testingStuff = 42;\n throw new Error(testingStuff);\n }\n\n function onSuccess(data) {\n testingStuff();\n }\n\n function onFailure(data) {\n throw new Error('failed!');\n }\n\n function invoke(data) {\n var cb = null;\n if (data.failed) {\n cb = onFailure;\n } else {\n cb = onSuccess;\n }\n cb(data);\n }\n\n function test() {\n var data = {failed: true, value: 42};\n invoke(data);\n }\n\n return test;\n})();\n"]}"#` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 18.22s [INFO] running `"docker" "inspect" "1a3c47921587dab659e5cfc97d1d57d61c08a066bb11e54c6ff6b944ac2ccda9"` [INFO] running `"docker" "rm" "-f" "1a3c47921587dab659e5cfc97d1d57d61c08a066bb11e54c6ff6b944ac2ccda9"` [INFO] [stdout] 1a3c47921587dab659e5cfc97d1d57d61c08a066bb11e54c6ff6b944ac2ccda9