[INFO] crate ditto 0.2.0 is already in cache [INFO] extracting crate ditto 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/ditto/0.2.0 [INFO] extracting crate ditto 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ditto/0.2.0 [INFO] validating manifest of ditto-0.2.0 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 ditto-0.2.0 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 ditto-0.2.0 [INFO] finished frobbing ditto-0.2.0 [INFO] frobbed toml for ditto-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/ditto/0.2.0/Cargo.toml [INFO] started frobbing ditto-0.2.0 [INFO] finished frobbing ditto-0.2.0 [INFO] frobbed toml for ditto-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ditto/0.2.0/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 ditto-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/ditto/0.2.0:/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] 9e8ada9b6d47d0932500ab0a6562ab562456bda607d33024c6151212ced369be [INFO] running `"docker" "start" "-a" "9e8ada9b6d47d0932500ab0a6562ab562456bda607d33024c6151212ced369be"` [INFO] [stderr] Checking ditto v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tree.rs:794:33 [INFO] [stderr] | [INFO] [stderr] 794 | tree.insert(TextElement{id: id, text: text.into()}).unwrap() [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/tree.rs:794:33 [INFO] [stderr] | [INFO] [stderr] 794 | tree.insert(TextElement{id: id, text: text.into()}).unwrap() [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:276:37 [INFO] [stderr] | [INFO] [stderr] 276 | assert!(uid.position == big(0b1_00000000000000000000)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0000_0000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_digit_groups)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:284:37 [INFO] [stderr] | [INFO] [stderr] 284 | assert!(uid.position == big(0b1_11111111111111111111)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_1111_1111_1111_1111_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sequence/uid.rs:285:32 [INFO] [stderr] | [INFO] [stderr] 285 | assert!(uid.site_id == 4294967295); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `4_294_967_295` [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/sequence/uid.rs:286:32 [INFO] [stderr] | [INFO] [stderr] 286 | assert!(uid.counter == 4294967295); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `4_294_967_295` [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: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:292:38 [INFO] [stderr] | [INFO] [stderr] 292 | let uid1 = Uid{position: big(0b1_00000000000000101001), site_id: 8, counter: 382}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0000_0000_0000_0010_1001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:293:38 [INFO] [stderr] | [INFO] [stderr] 293 | let uid2 = Uid{position: big(0b1_00000000000101010010), site_id: 1, counter: 5}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0000_0000_0001_0101_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:294:38 [INFO] [stderr] | [INFO] [stderr] 294 | let uid3 = Uid{position: big(0b1_00000000000101010010), site_id: 1, counter: 5}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0000_0000_0001_0101_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:295:38 [INFO] [stderr] | [INFO] [stderr] 295 | let uid4 = Uid{position: big(0b1_00000000001011110010), site_id: 4, counter: 4}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0000_0000_0010_1111_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:296:38 [INFO] [stderr] | [INFO] [stderr] 296 | let uid5 = Uid{position: big(0b1_00000000001011111101), site_id: 4, counter: 4}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0000_0000_0010_1111_1101` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:317:21 [INFO] [stderr] | [INFO] [stderr] 317 | assert!(big(0b1_00000000000000000000) < uid.position); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0000_0000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:318:21 [INFO] [stderr] | [INFO] [stderr] 318 | assert!(big(0b1_11111111111111111111) > uid.position); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_1111_1111_1111_1111_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:325:38 [INFO] [stderr] | [INFO] [stderr] 325 | let uid1 = Uid{position: big(0b1_01111111111111111110), site_id: 1, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0111_1111_1111_1111_1110` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:326:38 [INFO] [stderr] | [INFO] [stderr] 326 | let uid2 = Uid{position: big(0b1_10000000000000000000), site_id: 1, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_1000_0000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:328:37 [INFO] [stderr] | [INFO] [stderr] 328 | assert!(uid.position == big(0b1_01111111111111111111)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0111_1111_1111_1111_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:333:38 [INFO] [stderr] | [INFO] [stderr] 333 | let uid1 = Uid{position: big(0b1_11111000000000000000), site_id: 1, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_1111_1000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:334:38 [INFO] [stderr] | [INFO] [stderr] 334 | let uid2 = Uid{position: big(0b1_11111000000000000001), site_id: 1, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_1111_1000_0000_0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:336:36 [INFO] [stderr] | [INFO] [stderr] 336 | assert!(uid.position > big(0b1_11111000000000000000_000000000000000000000)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b11_1111_0000_0000_0000_0000_0000_0000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:337:36 [INFO] [stderr] | [INFO] [stderr] 337 | assert!(uid.position < big(0b1_11111000000000000000_000000000000000101001)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b11_1111_0000_0000_0000_0000_0000_0000_0000_0010_1001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:342:38 [INFO] [stderr] | [INFO] [stderr] 342 | let uid1 = Uid{position: big(0b1_11111000000000000000_001101010010101010101_1010101010101010101010), site_id: 1, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1111_1100_0000_0000_0000_0001_1010_1001_0101_0101_0110_1010_1010_1010_1010_1010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:343:38 [INFO] [stderr] | [INFO] [stderr] 343 | let uid2 = Uid{position: big(0b1_11111000000000000000_001101010010101010111_1010101010101010101010), site_id: 1, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1111_1100_0000_0000_0000_0001_1010_1001_0101_0101_1110_1010_1010_1010_1010_1010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:345:37 [INFO] [stderr] | [INFO] [stderr] 345 | assert!(uid.position == big(0b1_11111000000000000000_001101010010101010110)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b11_1111_0000_0000_0000_0000_0110_1010_0101_0101_0110` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:350:38 [INFO] [stderr] | [INFO] [stderr] 350 | let uid1 = Uid{position: big(0b1_00110011100000000010), site_id: 1, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0011_0011_1000_0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:351:38 [INFO] [stderr] | [INFO] [stderr] 351 | let uid2 = Uid{position: big(0b1_00110011100000000010), site_id: 2, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_0011_0011_1000_0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:353:36 [INFO] [stderr] | [INFO] [stderr] 353 | assert!(uid.position > big(0b1_00110011100000000010_000000000000000000000)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b10_0110_0111_0000_0000_0100_0000_0000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:354:36 [INFO] [stderr] | [INFO] [stderr] 354 | assert!(uid.position < big(0b1_00110011100000000010_000000000000000101001)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b10_0110_0111_0000_0000_0100_0000_0000_0000_0010_1001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:359:38 [INFO] [stderr] | [INFO] [stderr] 359 | let uid1 = Uid{position: big(0b1_11111000000000000000), site_id: 1, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_1111_1000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:360:38 [INFO] [stderr] | [INFO] [stderr] 360 | let uid2 = Uid{position: big(0b1_11111000000000000000_001101010010101010101), site_id: 2, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b11_1111_0000_0000_0000_0000_0110_1010_0101_0101_0101` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:362:36 [INFO] [stderr] | [INFO] [stderr] 362 | assert!(uid.position > big(0b1_11111000000000000000_000000000000000000000)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b11_1111_0000_0000_0000_0000_0000_0000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:363:36 [INFO] [stderr] | [INFO] [stderr] 363 | assert!(uid.position < big(0b1_11111000000000000000_000000000000000101001)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b11_1111_0000_0000_0000_0000_0000_0000_0000_0010_1001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:368:38 [INFO] [stderr] | [INFO] [stderr] 368 | let uid1 = Uid{position: big(0b1_11111000000000000000_001101010010101010110), site_id: 1, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b11_1111_0000_0000_0000_0000_0110_1010_0101_0101_0110` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digit groups should be smaller [INFO] [stderr] --> src/sequence/uid.rs:369:38 [INFO] [stderr] | [INFO] [stderr] 369 | let uid2 = Uid{position: big(0b1_11111000000000000000), site_id: 2, counter: 1}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b1_1111_1000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:371:36 [INFO] [stderr] | [INFO] [stderr] 371 | assert!(uid.position > big(0b1_11111000000000000000_001101010010101010110)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b11_1111_0000_0000_0000_0000_0110_1010_0101_0101_0110` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:372:36 [INFO] [stderr] | [INFO] [stderr] 372 | assert!(uid.position < big(0b1_11111000000000000000_001101010010101111111)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b11_1111_0000_0000_0000_0000_0110_1010_0101_0111_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:377:37 [INFO] [stderr] | [INFO] [stderr] 377 | let uid = Uid{position: big(0b1_010_1010), site_id: 4, counter: 83}; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `0b1010_1010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/sequence/uid.rs:386:38 [INFO] [stderr] | [INFO] [stderr] 386 | let uid1 = Uid{position: big(0b1_010_1010_01101_100110_1011011_10111011_011001101), site_id: 491, counter: 82035}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b101_0101_0011_0110_0110_1011_0111_0111_0110_1100_1101` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tree.rs:617:18 [INFO] [stderr] | [INFO] [stderr] 617 | let id = 510423 as u64; [INFO] [stderr] | ^^^^^^ help: consider: `510_423` [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/tree.rs:625:27 [INFO] [stderr] | [INFO] [stderr] 625 | insert(&mut tree, 50174912, "there"); [INFO] [stderr] | ^^^^^^^^ help: consider: `50_174_912` [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/tree.rs:702:27 [INFO] [stderr] | [INFO] [stderr] 702 | insert(&mut tree, 50172501, "goodbye"); [INFO] [stderr] | ^^^^^^^^ help: consider: `50_172_501` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dot.rs:39:33 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn contains(&self, dot: &Dot) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `Dot` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/json.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn from_str(json_str: &str) -> Result { [INFO] [stderr] 112 | | let local_value: SJValue = serde_json::from_str(json_str)?; [INFO] [stderr] 113 | | let crdt = Json::new(local_value)?; [INFO] [stderr] 114 | | Ok(crdt) [INFO] [stderr] 115 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/json.rs:547:61 [INFO] [stderr] | [INFO] [stderr] 547 | impl + Hash + Eq, T: IntoJson> IntoJson for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 547 | impl + Hash + Eq, T: IntoJson, S: ::std::hash::BuildHasher> IntoJson for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `list::List` [INFO] [stderr] --> src/list.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | / pub fn new() -> Self { [INFO] [stderr] 92 | | let inner = Inner::new(); [INFO] [stderr] 93 | | let summary = Summary::default(); [INFO] [stderr] 94 | | let site_id = 1; [INFO] [stderr] 95 | | List{inner, summary, site_id, cached_ops: vec![]} [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 88 | impl Default for list::List { [INFO] [stderr] 89 | fn default() -> Self { [INFO] [stderr] 90 | Self::new() [INFO] [stderr] 91 | } [INFO] [stderr] 92 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `list::Inner` [INFO] [stderr] --> src/list.rs:177:5 [INFO] [stderr] | [INFO] [stderr] 177 | / pub fn new() -> Self { [INFO] [stderr] 178 | | Inner(Vec::new()) [INFO] [stderr] 179 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 48 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `map::Map` [INFO] [stderr] --> src/map.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn new() -> Self { [INFO] [stderr] 109 | | let inner = Inner::new(); [INFO] [stderr] 110 | | let summary = Summary::default(); [INFO] [stderr] 111 | | let site_id = 1; [INFO] [stderr] 112 | | Map{inner, summary, site_id, cached_ops: vec![]} [INFO] [stderr] 113 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 104 | impl Default for map::Map { [INFO] [stderr] 105 | fn default() -> Self { [INFO] [stderr] 106 | Self::new() [INFO] [stderr] 107 | } [INFO] [stderr] 108 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: item `map::Inner` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/map.rs:165:1 [INFO] [stderr] | [INFO] [stderr] 165 | / impl Inner { [INFO] [stderr] 166 | | pub fn new() -> Self { [INFO] [stderr] 167 | | Inner(HashMap::new()) [INFO] [stderr] 168 | | } [INFO] [stderr] ... | [INFO] [stderr] 279 | | } [INFO] [stderr] 280 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `map::Inner` [INFO] [stderr] --> src/map.rs:166:5 [INFO] [stderr] | [INFO] [stderr] 166 | / pub fn new() -> Self { [INFO] [stderr] 167 | | Inner(HashMap::new()) [INFO] [stderr] 168 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 62 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `set::Set` [INFO] [stderr] --> src/set.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | / pub fn new() -> Self { [INFO] [stderr] 78 | | let inner = Inner::new(); [INFO] [stderr] 79 | | let summary = Summary::default(); [INFO] [stderr] 80 | | let site_id = 1; [INFO] [stderr] 81 | | Set{inner, summary, site_id, cached_ops: vec![]} [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 73 | impl Default for set::Set { [INFO] [stderr] 74 | fn default() -> Self { [INFO] [stderr] 75 | Self::new() [INFO] [stderr] 76 | } [INFO] [stderr] 77 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/set.rs:132:77 [INFO] [stderr] | [INFO] [stderr] 132 | let removed_dots = self.0.insert(value.clone(), vec![inserted_dot]).unwrap_or(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [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: you should consider adding a `Default` implementation for `text::Text` [INFO] [stderr] --> src/text/mod.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | / pub fn new() -> Self { [INFO] [stderr] 77 | | let inner = Inner::new(); [INFO] [stderr] 78 | | let summary = Summary::default(); [INFO] [stderr] 79 | | let site_id = 1; [INFO] [stderr] 80 | | Text{inner, summary, site_id, cached_ops: vec![]} [INFO] [stderr] 81 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 74 | impl Default for text::Text { [INFO] [stderr] 75 | fn default() -> Self { [INFO] [stderr] 76 | Self::new() [INFO] [stderr] 77 | } [INFO] [stderr] 78 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/text/mod.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | / pub fn from_str(string: &str) -> Self { [INFO] [stderr] 86 | | let mut text = Text::new(); [INFO] [stderr] 87 | | let _ = text.replace(0, 0, string).unwrap(); [INFO] [stderr] 88 | | text [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: item `text::Inner` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/text/mod.rs:131:1 [INFO] [stderr] | [INFO] [stderr] 131 | / impl Inner { [INFO] [stderr] 132 | | pub fn new() -> Self { [INFO] [stderr] 133 | | Inner(Tree::new(), None) [INFO] [stderr] 134 | | } [INFO] [stderr] ... | [INFO] [stderr] 336 | | } [INFO] [stderr] 337 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `text::Inner` [INFO] [stderr] --> src/text/mod.rs:132:5 [INFO] [stderr] | [INFO] [stderr] 132 | / pub fn new() -> Self { [INFO] [stderr] 133 | | Inner(Tree::new(), None) [INFO] [stderr] 134 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 56 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/text/mod.rs:243:42 [INFO] [stderr] | [INFO] [stderr] 243 | let new_elements: Vec = other.0.into_iter() [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 244 | | .filter(|e| self.0.get_idx(&e.uid).is_none() && !summary.contains(&e.uid.dot())) [INFO] [stderr] 245 | | .map(|e| e.clone()) [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 243 | let new_elements: Vec = other.0.into_iter() [INFO] [stderr] 244 | .filter(|e| self.0.get_idx(&e.uid).is_none() && !summary.contains(&e.uid.dot())).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/sequence/uid.rs:73:22 [INFO] [stderr] | [INFO] [stderr] 73 | for level in BASE_LEVEL..(MAX_LEVEL+1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `BASE_LEVEL..=MAX_LEVEL` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tree.rs:210:39 [INFO] [stderr] | [INFO] [stderr] 210 | char_idx += self.children[..idx+1].iter().map(|node| node.len).sum::(); [INFO] [stderr] | ^^^^^^^ help: use: `..=idx` [INFO] [stderr] | [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: taken reference of right operand [INFO] [stderr] --> src/vlq.rs:55:12 [INFO] [stderr] | [INFO] [stderr] 55 | if byte < &0x80 { [INFO] [stderr] | ^^^^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `0x80` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/vlq.rs:70:12 [INFO] [stderr] | [INFO] [stderr] 70 | if byte < &0x80 { [INFO] [stderr] | ^^^^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `0x80` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dot.rs:39:33 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn contains(&self, dot: &Dot) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `Dot` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/json.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn from_str(json_str: &str) -> Result { [INFO] [stderr] 112 | | let local_value: SJValue = serde_json::from_str(json_str)?; [INFO] [stderr] 113 | | let crdt = Json::new(local_value)?; [INFO] [stderr] 114 | | Ok(crdt) [INFO] [stderr] 115 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/json.rs:547:61 [INFO] [stderr] | [INFO] [stderr] 547 | impl + Hash + Eq, T: IntoJson> IntoJson for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 547 | impl + Hash + Eq, T: IntoJson, S: ::std::hash::BuildHasher> IntoJson for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/json.rs:912:24 [INFO] [stderr] | [INFO] [stderr] 912 | assert_eq!(map.0.get("bar").unwrap()[0].dot.site_id, 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&map.0["bar"]` [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] --> src/json.rs:913:24 [INFO] [stderr] | [INFO] [stderr] 913 | assert_eq!(map.0.get("baz").unwrap()[0].dot.site_id, 11); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&map.0["baz"]` [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: you should consider adding a `Default` implementation for `list::List` [INFO] [stderr] --> src/list.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | / pub fn new() -> Self { [INFO] [stderr] 92 | | let inner = Inner::new(); [INFO] [stderr] 93 | | let summary = Summary::default(); [INFO] [stderr] 94 | | let site_id = 1; [INFO] [stderr] 95 | | List{inner, summary, site_id, cached_ops: vec![]} [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 88 | impl Default for list::List { [INFO] [stderr] 89 | fn default() -> Self { [INFO] [stderr] 90 | Self::new() [INFO] [stderr] 91 | } [INFO] [stderr] 92 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `list::Inner` [INFO] [stderr] --> src/list.rs:177:5 [INFO] [stderr] | [INFO] [stderr] 177 | / pub fn new() -> Self { [INFO] [stderr] 178 | | Inner(Vec::new()) [INFO] [stderr] 179 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 48 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `map::Map` [INFO] [stderr] --> src/map.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn new() -> Self { [INFO] [stderr] 109 | | let inner = Inner::new(); [INFO] [stderr] 110 | | let summary = Summary::default(); [INFO] [stderr] 111 | | let site_id = 1; [INFO] [stderr] 112 | | Map{inner, summary, site_id, cached_ops: vec![]} [INFO] [stderr] 113 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 104 | impl Default for map::Map { [INFO] [stderr] 105 | fn default() -> Self { [INFO] [stderr] 106 | Self::new() [INFO] [stderr] 107 | } [INFO] [stderr] 108 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: item `map::Inner` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/map.rs:165:1 [INFO] [stderr] | [INFO] [stderr] 165 | / impl Inner { [INFO] [stderr] 166 | | pub fn new() -> Self { [INFO] [stderr] 167 | | Inner(HashMap::new()) [INFO] [stderr] 168 | | } [INFO] [stderr] ... | [INFO] [stderr] 279 | | } [INFO] [stderr] 280 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `map::Inner` [INFO] [stderr] --> src/map.rs:166:5 [INFO] [stderr] | [INFO] [stderr] 166 | / pub fn new() -> Self { [INFO] [stderr] 167 | | Inner(HashMap::new()) [INFO] [stderr] 168 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 62 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `set::Set` [INFO] [stderr] --> src/set.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | / pub fn new() -> Self { [INFO] [stderr] 78 | | let inner = Inner::new(); [INFO] [stderr] 79 | | let summary = Summary::default(); [INFO] [stderr] 80 | | let site_id = 1; [INFO] [stderr] 81 | | Set{inner, summary, site_id, cached_ops: vec![]} [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 73 | impl Default for set::Set { [INFO] [stderr] 74 | fn default() -> Self { [INFO] [stderr] 75 | Self::new() [INFO] [stderr] 76 | } [INFO] [stderr] 77 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/set.rs:132:77 [INFO] [stderr] | [INFO] [stderr] 132 | let removed_dots = self.0.insert(value.clone(), vec![inserted_dot]).unwrap_or(vec![]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [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: you should consider adding a `Default` implementation for `text::Text` [INFO] [stderr] --> src/text/mod.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | / pub fn new() -> Self { [INFO] [stderr] 77 | | let inner = Inner::new(); [INFO] [stderr] 78 | | let summary = Summary::default(); [INFO] [stderr] 79 | | let site_id = 1; [INFO] [stderr] 80 | | Text{inner, summary, site_id, cached_ops: vec![]} [INFO] [stderr] 81 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 74 | impl Default for text::Text { [INFO] [stderr] 75 | fn default() -> Self { [INFO] [stderr] 76 | Self::new() [INFO] [stderr] 77 | } [INFO] [stderr] 78 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/text/mod.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | / pub fn from_str(string: &str) -> Self { [INFO] [stderr] 86 | | let mut text = Text::new(); [INFO] [stderr] 87 | | let _ = text.replace(0, 0, string).unwrap(); [INFO] [stderr] 88 | | text [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: item `text::Inner` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/text/mod.rs:131:1 [INFO] [stderr] | [INFO] [stderr] 131 | / impl Inner { [INFO] [stderr] 132 | | pub fn new() -> Self { [INFO] [stderr] 133 | | Inner(Tree::new(), None) [INFO] [stderr] 134 | | } [INFO] [stderr] ... | [INFO] [stderr] 336 | | } [INFO] [stderr] 337 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `text::Inner` [INFO] [stderr] --> src/text/mod.rs:132:5 [INFO] [stderr] | [INFO] [stderr] 132 | / pub fn new() -> Self { [INFO] [stderr] 133 | | Inner(Tree::new(), None) [INFO] [stderr] 134 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 56 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/text/mod.rs:243:42 [INFO] [stderr] | [INFO] [stderr] 243 | let new_elements: Vec = other.0.into_iter() [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 244 | | .filter(|e| self.0.get_idx(&e.uid).is_none() && !summary.contains(&e.uid.dot())) [INFO] [stderr] 245 | | .map(|e| e.clone()) [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 243 | let new_elements: Vec = other.0.into_iter() [INFO] [stderr] 244 | .filter(|e| self.0.get_idx(&e.uid).is_none() && !summary.contains(&e.uid.dot())).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/sequence/uid.rs:73:22 [INFO] [stderr] | [INFO] [stderr] 73 | for level in BASE_LEVEL..(MAX_LEVEL+1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `BASE_LEVEL..=MAX_LEVEL` [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: an inclusive range would be more readable [INFO] [stderr] --> src/tree.rs:210:39 [INFO] [stderr] | [INFO] [stderr] 210 | char_idx += self.children[..idx+1].iter().map(|node| node.len).sum::(); [INFO] [stderr] | ^^^^^^^ help: use: `..=idx` [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/tree.rs:572:17 [INFO] [stderr] | [INFO] [stderr] 572 | assert!(tree.len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tree.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: length comparison to zero [INFO] [stderr] --> src/tree.rs:749:15 [INFO] [stderr] | [INFO] [stderr] 749 | while tree.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!tree.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: taken reference of right operand [INFO] [stderr] --> src/vlq.rs:55:12 [INFO] [stderr] | [INFO] [stderr] 55 | if byte < &0x80 { [INFO] [stderr] | ^^^^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `0x80` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/vlq.rs:70:12 [INFO] [stderr] | [INFO] [stderr] 70 | if byte < &0x80 { [INFO] [stderr] | ^^^^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `0x80` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 9.63s [INFO] running `"docker" "inspect" "9e8ada9b6d47d0932500ab0a6562ab562456bda607d33024c6151212ced369be"` [INFO] running `"docker" "rm" "-f" "9e8ada9b6d47d0932500ab0a6562ab562456bda607d33024c6151212ced369be"` [INFO] [stdout] 9e8ada9b6d47d0932500ab0a6562ab562456bda607d33024c6151212ced369be