[INFO] fetching crate subslice 0.2.3...
[INFO] testing subslice-0.2.3 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] extracting crate subslice 0.2.3 into /workspace/builds/worker-6-tc1/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-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate subslice 0.2.3 on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "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] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded odds v0.2.26
[INFO] [stderr]   Downloaded unchecked-index v0.2.2
[INFO] [stderr]   Downloaded rustc_version v0.1.7
[INFO] [stderr]   Downloaded semver v0.1.20
[INFO] [stderr]   Downloaded newtype_derive v0.1.6
[INFO] [stderr]   Downloaded jetscii v0.3.1
[INFO] [stderr]   Downloaded defmac v0.1.3
[INFO] [stderr]   Downloaded macro-attr v0.2.0
[INFO] [stderr]   Downloaded galil-seiferas v0.1.5
[INFO] [stderr]   Downloaded itertools v0.7.11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2d7d5a203563845b4128081a71e22b82b98c7aa8bfca6fbf3ea4a0a3e1f0a14c
[INFO] running `Command { std: "docker" "start" "-a" "2d7d5a203563845b4128081a71e22b82b98c7aa8bfca6fbf3ea4a0a3e1f0a14c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2d7d5a203563845b4128081a71e22b82b98c7aa8bfca6fbf3ea4a0a3e1f0a14c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2d7d5a203563845b4128081a71e22b82b98c7aa8bfca6fbf3ea4a0a3e1f0a14c", kill_on_drop: false }`
[INFO] [stdout] 2d7d5a203563845b4128081a71e22b82b98c7aa8bfca6fbf3ea4a0a3e1f0a14c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d7ebbd50315300ad30233854c2252f4656895fb6198ae3bbaae9cead424f647a
[INFO] running `Command { std: "docker" "start" "-a" "d7ebbd50315300ad30233854c2252f4656895fb6198ae3bbaae9cead424f647a", 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.76s
[INFO] running `Command { std: "docker" "inspect" "d7ebbd50315300ad30233854c2252f4656895fb6198ae3bbaae9cead424f647a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d7ebbd50315300ad30233854c2252f4656895fb6198ae3bbaae9cead424f647a", kill_on_drop: false }`
[INFO] [stdout] d7ebbd50315300ad30233854c2252f4656895fb6198ae3bbaae9cead424f647a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 290a3eddbe73c6d57accd7b02ad050d71a3cc84edc20d0012bf440552ea11c64
[INFO] running `Command { std: "docker" "start" "-a" "290a3eddbe73c6d57accd7b02ad050d71a3cc84edc20d0012bf440552ea11c64", 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.41s
[INFO] running `Command { std: "docker" "inspect" "290a3eddbe73c6d57accd7b02ad050d71a3cc84edc20d0012bf440552ea11c64", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "290a3eddbe73c6d57accd7b02ad050d71a3cc84edc20d0012bf440552ea11c64", kill_on_drop: false }`
[INFO] [stdout] 290a3eddbe73c6d57accd7b02ad050d71a3cc84edc20d0012bf440552ea11c64
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 54757c6ba60b77835e37d3f3f34a7ef2617d40bdf7e824bb842df5b9153dd889
[INFO] running `Command { std: "docker" "start" "-a" "54757c6ba60b77835e37d3f3f34a7ef2617d40bdf7e824bb842df5b9153dd889", 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.04s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/subslice-393fa21a33a1378e)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test maximal_suffix ... ok
[INFO] [stdout] test tw::test_find ... ok
[INFO] [stdout] test bmh::bmh_preprocess ... ok
[INFO] [stdout] test tw::test_max ... ok
[INFO] [stdout] test tw::test_maxsuf_and_period ... ok
[INFO] [stdout] test tw::test_max_suf_pos ... ok
[INFO] [stdout] test maximal_suffix_verbose ... 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" "54757c6ba60b77835e37d3f3f34a7ef2617d40bdf7e824bb842df5b9153dd889", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54757c6ba60b77835e37d3f3f34a7ef2617d40bdf7e824bb842df5b9153dd889", kill_on_drop: false }`
[INFO] [stdout] 54757c6ba60b77835e37d3f3f34a7ef2617d40bdf7e824bb842df5b9153dd889
