[INFO] fetching crate subslice 0.2.3...
[INFO] testing subslice-0.2.3 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate subslice 0.2.3 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate subslice 0.2.3
[INFO] finished tweaking crates.io crate subslice 0.2.3
[INFO] tweaked toml for crates.io crate subslice 0.2.3 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate subslice 0.2.3 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 23 packages to latest compatible versions
[INFO] [stderr]       Adding itertools v0.7.11 (available: v0.14.0)
[INFO] [stderr]       Adding jetscii v0.3.1 (available: v0.5.3)
[INFO] [stderr]       Adding odds v0.2.26 (available: v0.4.0)
[INFO] [stderr]       Adding quickcheck v0.5.0 (available: v1.1.0)
[INFO] [stderr]       Adding rand v0.3.23 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 92919fe0b4c5d2079deeaa4f67515f3e1b50dae334fa9ec7809705961bedeae4
[INFO] running `Command { std: "docker" "start" "-a" "92919fe0b4c5d2079deeaa4f67515f3e1b50dae334fa9ec7809705961bedeae4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92919fe0b4c5d2079deeaa4f67515f3e1b50dae334fa9ec7809705961bedeae4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92919fe0b4c5d2079deeaa4f67515f3e1b50dae334fa9ec7809705961bedeae4", kill_on_drop: false }`
[INFO] [stdout] 92919fe0b4c5d2079deeaa4f67515f3e1b50dae334fa9ec7809705961bedeae4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3597655c55f85a5ff3e1a10b23d8a54635ae23ed931bd0cdc01afb4a61366e5b
[INFO] running `Command { std: "docker" "start" "-a" "3597655c55f85a5ff3e1a10b23d8a54635ae23ed931bd0cdc01afb4a61366e5b", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling subslice v0.2.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:735:18
[INFO] [stdout]     |
[INFO] [stdout] 735 |     fn rejecting(usize, usize) -> Self::Output;
[INFO] [stdout]     |                  ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:735:25
[INFO] [stdout]     |
[INFO] [stdout] 735 |     fn rejecting(usize, usize) -> Self::Output;
[INFO] [stdout]     |                         ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:736:17
[INFO] [stdout]     |
[INFO] [stdout] 736 |     fn matching(usize, usize) -> Self::Output;
[INFO] [stdout]     |                 ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:736:24
[INFO] [stdout]     |
[INFO] [stdout] 736 |     fn matching(usize, usize) -> Self::Output;
[INFO] [stdout]     |                        ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `haystack`, `needle`, and `searcher` are never read
[INFO] [stdout]    --> src/lib.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct StrSearcher<'a, 'b> {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 131 |     haystack: &'a str,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 132 |     needle: &'b str,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 133 |
[INFO] [stdout] 134 |     searcher: StrSearcherImpl,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StrSearcher` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/lib.rs:139:11
[INFO] [stdout]     |
[INFO] [stdout] 139 |     Empty(EmptyNeedle),
[INFO] [stdout]     |     ----- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StrSearcherImpl` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 139 -     Empty(EmptyNeedle),
[INFO] [stdout] 139 +     Empty(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/lib.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     TwoWay(TwoWaySearcher),
[INFO] [stdout]     |     ------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StrSearcherImpl` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 140 -     TwoWay(TwoWaySearcher),
[INFO] [stdout] 140 +     TwoWay(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position`, `end`, `is_match_fw`, and `is_match_bw` are never read
[INFO] [stdout]    --> src/lib.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | struct EmptyNeedle {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 145 |     position: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 146 |     end: usize,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 147 |     is_match_fw: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 148 |     is_match_bw: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EmptyNeedle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.85s
[INFO] running `Command { std: "docker" "inspect" "3597655c55f85a5ff3e1a10b23d8a54635ae23ed931bd0cdc01afb4a61366e5b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3597655c55f85a5ff3e1a10b23d8a54635ae23ed931bd0cdc01afb4a61366e5b", kill_on_drop: false }`
[INFO] [stdout] 3597655c55f85a5ff3e1a10b23d8a54635ae23ed931bd0cdc01afb4a61366e5b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4bc01c735682ab00fd239df65fcb7e852b12a131db3ff1a5e817c149c24d2216
[INFO] running `Command { std: "docker" "start" "-a" "4bc01c735682ab00fd239df65fcb7e852b12a131db3ff1a5e817c149c24d2216", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling semver v0.1.20
[INFO] [stderr]    Compiling macro-attr v0.2.0
[INFO] [stderr]    Compiling odds v0.2.26
[INFO] [stderr]    Compiling itertools v0.7.11
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:735:18
[INFO] [stdout]     |
[INFO] [stdout] 735 |     fn rejecting(usize, usize) -> Self::Output;
[INFO] [stdout]     |                  ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:735:25
[INFO] [stdout]     |
[INFO] [stdout] 735 |     fn rejecting(usize, usize) -> Self::Output;
[INFO] [stdout]     |                         ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:736:17
[INFO] [stdout]     |
[INFO] [stdout] 736 |     fn matching(usize, usize) -> Self::Output;
[INFO] [stdout]     |                 ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:736:24
[INFO] [stdout]     |
[INFO] [stdout] 736 |     fn matching(usize, usize) -> Self::Output;
[INFO] [stdout]     |                        ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `haystack`, `needle`, and `searcher` are never read
[INFO] [stdout]    --> src/lib.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct StrSearcher<'a, 'b> {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 131 |     haystack: &'a str,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 132 |     needle: &'b str,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 133 |
[INFO] [stdout] 134 |     searcher: StrSearcherImpl,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StrSearcher` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/lib.rs:139:11
[INFO] [stdout]     |
[INFO] [stdout] 139 |     Empty(EmptyNeedle),
[INFO] [stdout]     |     ----- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StrSearcherImpl` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 139 -     Empty(EmptyNeedle),
[INFO] [stdout] 139 +     Empty(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/lib.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     TwoWay(TwoWaySearcher),
[INFO] [stdout]     |     ------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StrSearcherImpl` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 140 -     TwoWay(TwoWaySearcher),
[INFO] [stdout] 140 +     TwoWay(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position`, `end`, `is_match_fw`, and `is_match_bw` are never read
[INFO] [stdout]    --> src/lib.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | struct EmptyNeedle {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 145 |     position: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 146 |     end: usize,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 147 |     is_match_fw: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 148 |     is_match_bw: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EmptyNeedle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling rustc_version v0.1.7
[INFO] [stderr]    Compiling newtype_derive v0.1.6
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling quickcheck v0.5.0
[INFO] [stderr]    Compiling subslice v0.2.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/tw.rs:305:39
[INFO] [stdout]     |
[INFO] [stdout] 305 |     assert_eq!(2, compute_max_suf_pos((b"aab")));
[INFO] [stdout]     |                                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 305 -     assert_eq!(2, compute_max_suf_pos((b"aab")));
[INFO] [stdout] 305 +     assert_eq!(2, compute_max_suf_pos(b"aab"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/tw.rs:307:39
[INFO] [stdout]     |
[INFO] [stdout] 307 |     assert_eq!(2, compute_max_suf_pos((b"aabaa")));
[INFO] [stdout]     |                                       ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 307 -     assert_eq!(2, compute_max_suf_pos((b"aabaa")));
[INFO] [stdout] 307 +     assert_eq!(2, compute_max_suf_pos(b"aabaa"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/tw.rs:309:39
[INFO] [stdout]     |
[INFO] [stdout] 309 |     assert_eq!(0, compute_max_suf_pos((b"gcagagag")));
[INFO] [stdout]     |                                       ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 309 -     assert_eq!(0, compute_max_suf_pos((b"gcagagag")));
[INFO] [stdout] 309 +     assert_eq!(0, compute_max_suf_pos(b"gcagagag"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/tw.rs:310:39
[INFO] [stdout]     |
[INFO] [stdout] 310 |     assert_eq!(2, compute_max_suf_pos((b"banana")));
[INFO] [stdout]     |                                       ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 310 -     assert_eq!(2, compute_max_suf_pos((b"banana")));
[INFO] [stdout] 310 +     assert_eq!(2, compute_max_suf_pos(b"banana"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/tw.rs:315:42
[INFO] [stdout]     |
[INFO] [stdout] 315 |     assert_eq!((2, 1), maxsuf_and_period((b"aab")));
[INFO] [stdout]     |                                          ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 315 -     assert_eq!((2, 1), maxsuf_and_period((b"aab")));
[INFO] [stdout] 315 +     assert_eq!((2, 1), maxsuf_and_period(b"aab"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/tw.rs:316:42
[INFO] [stdout]     |
[INFO] [stdout] 316 |     assert_eq!((2, 3), maxsuf_and_period((b"aabaa")));
[INFO] [stdout]     |                                          ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 316 -     assert_eq!((2, 3), maxsuf_and_period((b"aabaa")));
[INFO] [stdout] 316 +     assert_eq!((2, 3), maxsuf_and_period(b"aabaa"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/tw.rs:317:42
[INFO] [stdout]     |
[INFO] [stdout] 317 |     assert_eq!((0, 7), maxsuf_and_period((b"gcagagag")));
[INFO] [stdout]     |                                          ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 317 -     assert_eq!((0, 7), maxsuf_and_period((b"gcagagag")));
[INFO] [stdout] 317 +     assert_eq!((0, 7), maxsuf_and_period(b"gcagagag"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:735:18
[INFO] [stdout]     |
[INFO] [stdout] 735 |     fn rejecting(usize, usize) -> Self::Output;
[INFO] [stdout]     |                  ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:735:25
[INFO] [stdout]     |
[INFO] [stdout] 735 |     fn rejecting(usize, usize) -> Self::Output;
[INFO] [stdout]     |                         ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:736:17
[INFO] [stdout]     |
[INFO] [stdout] 736 |     fn matching(usize, usize) -> Self::Output;
[INFO] [stdout]     |                 ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:736:24
[INFO] [stdout]     |
[INFO] [stdout] 736 |     fn matching(usize, usize) -> Self::Output;
[INFO] [stdout]     |                        ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `haystack`, `needle`, and `searcher` are never read
[INFO] [stdout]    --> src/lib.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct StrSearcher<'a, 'b> {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 131 |     haystack: &'a str,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 132 |     needle: &'b str,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 133 |
[INFO] [stdout] 134 |     searcher: StrSearcherImpl,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StrSearcher` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/lib.rs:139:11
[INFO] [stdout]     |
[INFO] [stdout] 139 |     Empty(EmptyNeedle),
[INFO] [stdout]     |     ----- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StrSearcherImpl` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 139 -     Empty(EmptyNeedle),
[INFO] [stdout] 139 +     Empty(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/lib.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |     TwoWay(TwoWaySearcher),
[INFO] [stdout]     |     ------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StrSearcherImpl` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 140 -     TwoWay(TwoWaySearcher),
[INFO] [stdout] 140 +     TwoWay(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position`, `end`, `is_match_fw`, and `is_match_bw` are never read
[INFO] [stdout]    --> src/lib.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | struct EmptyNeedle {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 145 |     position: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 146 |     end: usize,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 147 |     is_match_fw: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 148 |     is_match_bw: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EmptyNeedle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.13s
[INFO] running `Command { std: "docker" "inspect" "4bc01c735682ab00fd239df65fcb7e852b12a131db3ff1a5e817c149c24d2216", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4bc01c735682ab00fd239df65fcb7e852b12a131db3ff1a5e817c149c24d2216", kill_on_drop: false }`
[INFO] [stdout] 4bc01c735682ab00fd239df65fcb7e852b12a131db3ff1a5e817c149c24d2216
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e1bf0f7261940b630ae88e966ba84b8c6fb7ee6fa93b4507b0e3e2e7cd151cc0
[INFO] running `Command { std: "docker" "start" "-a" "e1bf0f7261940b630ae88e966ba84b8c6fb7ee6fa93b4507b0e3e2e7cd151cc0", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]    --> src/lib.rs:735:18
[INFO] [stderr]     |
[INFO] [stderr] 735 |     fn rejecting(usize, usize) -> Self::Output;
[INFO] [stderr]     |                  ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stderr]     = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]    --> src/lib.rs:735:25
[INFO] [stderr]     |
[INFO] [stderr] 735 |     fn rejecting(usize, usize) -> Self::Output;
[INFO] [stderr]     |                         ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]    --> src/lib.rs:736:17
[INFO] [stderr]     |
[INFO] [stderr] 736 |     fn matching(usize, usize) -> Self::Output;
[INFO] [stderr]     |                 ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]    --> src/lib.rs:736:24
[INFO] [stderr]     |
[INFO] [stderr] 736 |     fn matching(usize, usize) -> Self::Output;
[INFO] [stderr]     |                        ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stderr] 
[INFO] [stderr] warning: fields `haystack`, `needle`, and `searcher` are never read
[INFO] [stderr]    --> src/lib.rs:131:5
[INFO] [stderr]     |
[INFO] [stderr] 130 | pub struct StrSearcher<'a, 'b> {
[INFO] [stderr]     |            ----------- fields in this struct
[INFO] [stderr] 131 |     haystack: &'a str,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] 132 |     needle: &'b str,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] 133 |
[INFO] [stderr] 134 |     searcher: StrSearcherImpl,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `StrSearcher` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/lib.rs:139:11
[INFO] [stderr]     |
[INFO] [stderr] 139 |     Empty(EmptyNeedle),
[INFO] [stderr]     |     ----- ^^^^^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `StrSearcherImpl` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 139 -     Empty(EmptyNeedle),
[INFO] [stderr] 139 +     Empty(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/lib.rs:140:12
[INFO] [stderr]     |
[INFO] [stderr] 140 |     TwoWay(TwoWaySearcher),
[INFO] [stderr]     |     ------ ^^^^^^^^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `StrSearcherImpl` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 140 -     TwoWay(TwoWaySearcher),
[INFO] [stderr] 140 +     TwoWay(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `position`, `end`, `is_match_fw`, and `is_match_bw` are never read
[INFO] [stderr]    --> src/lib.rs:145:5
[INFO] [stderr]     |
[INFO] [stderr] 144 | struct EmptyNeedle {
[INFO] [stderr]     |        ----------- fields in this struct
[INFO] [stderr] 145 |     position: usize,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] 146 |     end: usize,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 147 |     is_match_fw: bool,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] 148 |     is_match_bw: bool,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `EmptyNeedle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `subslice` (lib) generated 8 warnings (run `cargo fix --lib -p subslice` to apply 4 suggestions)
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/tw.rs:305:39
[INFO] [stderr]     |
[INFO] [stderr] 305 |     assert_eq!(2, compute_max_suf_pos((b"aab")));
[INFO] [stderr]     |                                       ^      ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 305 -     assert_eq!(2, compute_max_suf_pos((b"aab")));
[INFO] [stderr] 305 +     assert_eq!(2, compute_max_suf_pos(b"aab"));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/tw.rs:307:39
[INFO] [stderr]     |
[INFO] [stderr] 307 |     assert_eq!(2, compute_max_suf_pos((b"aabaa")));
[INFO] [stderr]     |                                       ^        ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 307 -     assert_eq!(2, compute_max_suf_pos((b"aabaa")));
[INFO] [stderr] 307 +     assert_eq!(2, compute_max_suf_pos(b"aabaa"));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/tw.rs:309:39
[INFO] [stderr]     |
[INFO] [stderr] 309 |     assert_eq!(0, compute_max_suf_pos((b"gcagagag")));
[INFO] [stderr]     |                                       ^           ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 309 -     assert_eq!(0, compute_max_suf_pos((b"gcagagag")));
[INFO] [stderr] 309 +     assert_eq!(0, compute_max_suf_pos(b"gcagagag"));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/tw.rs:310:39
[INFO] [stderr]     |
[INFO] [stderr] 310 |     assert_eq!(2, compute_max_suf_pos((b"banana")));
[INFO] [stderr]     |                                       ^         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 310 -     assert_eq!(2, compute_max_suf_pos((b"banana")));
[INFO] [stderr] 310 +     assert_eq!(2, compute_max_suf_pos(b"banana"));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/tw.rs:315:42
[INFO] [stderr]     |
[INFO] [stderr] 315 |     assert_eq!((2, 1), maxsuf_and_period((b"aab")));
[INFO] [stderr]     |                                          ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 315 -     assert_eq!((2, 1), maxsuf_and_period((b"aab")));
[INFO] [stderr] 315 +     assert_eq!((2, 1), maxsuf_and_period(b"aab"));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/tw.rs:316:42
[INFO] [stderr]     |
[INFO] [stderr] 316 |     assert_eq!((2, 3), maxsuf_and_period((b"aabaa")));
[INFO] [stderr]     |                                          ^        ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 316 -     assert_eq!((2, 3), maxsuf_and_period((b"aabaa")));
[INFO] [stderr] 316 +     assert_eq!((2, 3), maxsuf_and_period(b"aabaa"));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/tw.rs:317:42
[INFO] [stderr]     |
[INFO] [stderr] 317 |     assert_eq!((0, 7), maxsuf_and_period((b"gcagagag")));
[INFO] [stderr]     |                                          ^           ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 317 -     assert_eq!((0, 7), maxsuf_and_period((b"gcagagag")));
[INFO] [stderr] 317 +     assert_eq!((0, 7), maxsuf_and_period(b"gcagagag"));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `subslice` (lib test) generated 15 warnings (8 duplicates) (run `cargo fix --lib -p subslice --tests` to apply 7 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/subslice-393fa21a33a1378e)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test bmh::bmh_preprocess ... ok
[INFO] [stdout] test maximal_suffix_verbose ... ok
[INFO] [stdout] test tw::test_find ... ok
[INFO] [stdout] test maximal_suffix ... ok
[INFO] [stdout] test tw::test_maxsuf_and_period ... ok
[INFO] [stdout] test tw::test_max ... ok
[INFO] [stdout] test tw::test_max_suf_pos ... ok
[INFO] [stdout] test bmh::bmh_find ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/quick.rs (/opt/rustwide/target/debug/deps/quick-d827146eb2fa3c21)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests subslice
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e1bf0f7261940b630ae88e966ba84b8c6fb7ee6fa93b4507b0e3e2e7cd151cc0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e1bf0f7261940b630ae88e966ba84b8c6fb7ee6fa93b4507b0e3e2e7cd151cc0", kill_on_drop: false }`
[INFO] [stdout] e1bf0f7261940b630ae88e966ba84b8c6fb7ee6fa93b4507b0e3e2e7cd151cc0
