[INFO] fetching crate permutator 0.4.3...
[INFO] testing permutator-0.4.3 against beta-2025-10-28 for beta-1.92-2
[INFO] extracting crate permutator 0.4.3 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate permutator 0.4.3
[INFO] finished tweaking crates.io crate permutator 0.4.3
[INFO] tweaked toml for crates.io crate permutator 0.4.3 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate permutator 0.4.3 on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "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" "+beta-2025-10-28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 8 packages to latest compatible versions
[INFO] [stderr]       Adding num v0.2.1 (available: v0.4.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 744419eff60be0199da91a85e783277cf61dafc5bcbb9419e046c84c5f43deea
[INFO] running `Command { std: "docker" "start" "-a" "744419eff60be0199da91a85e783277cf61dafc5bcbb9419e046c84c5f43deea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "744419eff60be0199da91a85e783277cf61dafc5bcbb9419e046c84c5f43deea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "744419eff60be0199da91a85e783277cf61dafc5bcbb9419e046c84c5f43deea", kill_on_drop: false }`
[INFO] [stdout] 744419eff60be0199da91a85e783277cf61dafc5bcbb9419e046c84c5f43deea
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fbbd9ce580acbdf21c08d627e0ae5426bebd474c51919f332daba8aca013d096
[INFO] running `Command { std: "docker" "start" "-a" "fbbd9ce580acbdf21c08d627e0ae5426bebd474c51919f332daba8aca013d096", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling num v0.2.1
[INFO] [stderr]    Compiling permutator v0.4.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2010:19
[INFO] [stdout]      |
[INFO] [stdout] 2010 |     assert_eq!(k, (*result).len());
[INFO] [stdout]      |                   ^^------^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this raw pointer has type `*mut [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:2010:19
[INFO] [stdout]      |
[INFO] [stdout] 2010 |     assert_eq!(k, (*result).len());
[INFO] [stdout]      |                   ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout]      = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2010 |     assert_eq!(k, (&(*result)).len());
[INFO] [stdout]      |                   ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2485:20
[INFO] [stdout]      |
[INFO] [stdout] 2485 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^--------^^^^^^^
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      this raw pointer has type `*const Vec<&T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<&T>`
[INFO] [stdout]     --> src/lib.rs:2485:20
[INFO] [stdout]      |
[INFO] [stdout] 2485 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2485 |                 t(&(&(*perm_ptr))[0..k])
[INFO] [stdout]      |                    ++           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2636:16
[INFO] [stdout]      |
[INFO] [stdout] 2636 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:2636:16
[INFO] [stdout]      |
[INFO] [stdout] 2636 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2636 |     assert_eq!((&(*result)).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2644:16
[INFO] [stdout]      |
[INFO] [stdout] 2644 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:2644:16
[INFO] [stdout]      |
[INFO] [stdout] 2644 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2644 |             t(&(&(*result))[0..k])
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:3171:23
[INFO] [stdout]      |
[INFO] [stdout] 3171 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3171 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:3755:23
[INFO] [stdout]      |
[INFO] [stdout] 3755 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3755 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:4120:23
[INFO] [stdout]      |
[INFO] [stdout] 4120 |     pub fn new(data : &mut [T]) -> HeapPermutationIterator<T> {
[INFO] [stdout]      |                       ^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 4120 |     pub fn new(data : &mut [T]) -> HeapPermutationIterator<'_, T> {
[INFO] [stdout]      |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:4317:25
[INFO] [stdout]      |
[INFO] [stdout] 4317 |             c : vec![0; (*data).len()],
[INFO] [stdout]      |                         ^^----^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/lib.rs:4317:25
[INFO] [stdout]      |
[INFO] [stdout] 4317 |             c : vec![0; (*data).len()],
[INFO] [stdout]      |                         ^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4317 |             c : vec![0; (&(*data)).len()],
[INFO] [stdout]      |                         ++       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:4498:23
[INFO] [stdout]      |
[INFO] [stdout] 4498 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 4498 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<'_, T> {
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:5077:42
[INFO] [stdout]      |
[INFO] [stdout] 5077 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<F, T> {
[INFO] [stdout]      |                        --                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 5077 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<'a, F, T> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:5123:24
[INFO] [stdout]      |
[INFO] [stdout] 5123 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:5123:24
[INFO] [stdout]      |
[INFO] [stdout] 5123 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5123 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:5256:24
[INFO] [stdout]      |
[INFO] [stdout] 5256 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:5256:24
[INFO] [stdout]      |
[INFO] [stdout] 5256 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5256 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:5389:24
[INFO] [stdout]      |
[INFO] [stdout] 5389 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:5389:24
[INFO] [stdout]      |
[INFO] [stdout] 5389 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5389 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6148:57
[INFO] [stdout]      |
[INFO] [stdout] 6148 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6148 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stdout]      |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6166:57
[INFO] [stdout]      |
[INFO] [stdout] 6166 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6166 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stdout]      |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6184:53
[INFO] [stdout]      |
[INFO] [stdout] 6184 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6184 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<'a, T>> {
[INFO] [stdout]      |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6213:53
[INFO] [stdout]      |
[INFO] [stdout] 6213 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6213 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<'a, T>> {
[INFO] [stdout]      |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:6218:33
[INFO] [stdout]      |
[INFO] [stdout] 6218 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^-----^^^^^^^
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/lib.rs:6218:33
[INFO] [stdout]      |
[INFO] [stdout] 6218 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 6218 |                     c : vec![0; (&(**self)).len()],
[INFO] [stdout]      |                                 ++        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:1656:19
[INFO] [stdout]      |
[INFO] [stdout] 1656 |     assert_eq!(k, (*result).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stdout]      |                   ^^------^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:1656:19
[INFO] [stdout]      |
[INFO] [stdout] 1656 |     assert_eq!(k, (*result).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stdout]      |                   ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1656 |     assert_eq!(k, (&(*result)).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stdout]      |                   ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:2008:20
[INFO] [stdout]      |
[INFO] [stdout] 2008 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^--------^^^^^^^
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      this raw pointer has type `*const Vec<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<T>`
[INFO] [stdout]     --> src/copy/mod.rs:2008:20
[INFO] [stdout]      |
[INFO] [stdout] 2008 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2008 |                 t(&(&(*perm_ptr))[0..k])
[INFO] [stdout]      |                    ++           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:2159:16
[INFO] [stdout]      |
[INFO] [stdout] 2159 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:2159:16
[INFO] [stdout]      |
[INFO] [stdout] 2159 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2159 |     assert_eq!((&(*result)).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:2167:16
[INFO] [stdout]      |
[INFO] [stdout] 2167 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:2167:16
[INFO] [stdout]      |
[INFO] [stdout] 2167 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2167 |             t(&(&(*result))[0..k])
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:2609:23
[INFO] [stdout]      |
[INFO] [stdout] 2609 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2609 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:3054:23
[INFO] [stdout]      |
[INFO] [stdout] 3054 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3054 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:3411:23
[INFO] [stdout]      |
[INFO] [stdout] 3411 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3411 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<'_, T> {
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:4245:42
[INFO] [stdout]      |
[INFO] [stdout] 4245 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<F, T> {
[INFO] [stdout]      |                        --                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 4245 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<'a, F, T> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:4291:24
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:4291:24
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:4424:24
[INFO] [stdout]      |
[INFO] [stdout] 4424 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:4424:24
[INFO] [stdout]      |
[INFO] [stdout] 4424 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4424 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:4557:24
[INFO] [stdout]      |
[INFO] [stdout] 4557 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:4557:24
[INFO] [stdout]      |
[INFO] [stdout] 4557 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4557 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:4973:57
[INFO] [stdout]      |
[INFO] [stdout] 4973 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 4973 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stdout]      |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:4991:53
[INFO] [stdout]      |
[INFO] [stdout] 4991 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 4991 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<'a, T>> {
[INFO] [stdout]      |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:5020:53
[INFO] [stdout]      |
[INFO] [stdout] 5020 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 5020 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<'a, T>> {
[INFO] [stdout]      |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:5025:33
[INFO] [stdout]      |
[INFO] [stdout] 5025 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^-----^^^^^^^
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:5025:33
[INFO] [stdout]      |
[INFO] [stdout] 5025 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5025 |                     c : vec![0; (&(**self)).len()],
[INFO] [stdout]      |                                 ++        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.68s
[INFO] running `Command { std: "docker" "inspect" "fbbd9ce580acbdf21c08d627e0ae5426bebd474c51919f332daba8aca013d096", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fbbd9ce580acbdf21c08d627e0ae5426bebd474c51919f332daba8aca013d096", kill_on_drop: false }`
[INFO] [stdout] fbbd9ce580acbdf21c08d627e0ae5426bebd474c51919f332daba8aca013d096
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0aebc9a6c5893f5f076092601158200c3b5d47b619332572dc38f2ccf61f9d38
[INFO] running `Command { std: "docker" "start" "-a" "0aebc9a6c5893f5f076092601158200c3b5d47b619332572dc38f2ccf61f9d38", kill_on_drop: false }`
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2010:19
[INFO] [stdout]      |
[INFO] [stdout] 2010 |     assert_eq!(k, (*result).len());
[INFO] [stdout]      |                   ^^------^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this raw pointer has type `*mut [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:2010:19
[INFO] [stdout]      |
[INFO] [stdout] 2010 |     assert_eq!(k, (*result).len());
[INFO] [stdout]      |                   ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout]      = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2010 |     assert_eq!(k, (&(*result)).len());
[INFO] [stdout]      |                   ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2485:20
[INFO] [stdout]      |
[INFO] [stdout] 2485 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^--------^^^^^^^
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      this raw pointer has type `*const Vec<&T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<&T>`
[INFO] [stdout]     --> src/lib.rs:2485:20
[INFO] [stdout]      |
[INFO] [stdout] 2485 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2485 |                 t(&(&(*perm_ptr))[0..k])
[INFO] [stdout]      |                    ++           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2636:16
[INFO] [stdout]      |
[INFO] [stdout] 2636 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:2636:16
[INFO] [stdout]      |
[INFO] [stdout] 2636 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2636 |     assert_eq!((&(*result)).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2644:16
[INFO] [stdout]      |
[INFO] [stdout] 2644 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:2644:16
[INFO] [stdout]      |
[INFO] [stdout] 2644 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2644 |             t(&(&(*result))[0..k])
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:3171:23
[INFO] [stdout]      |
[INFO] [stdout] 3171 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3171 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:3755:23
[INFO] [stdout]      |
[INFO] [stdout] 3755 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3755 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:4120:23
[INFO] [stdout]      |
[INFO] [stdout] 4120 |     pub fn new(data : &mut [T]) -> HeapPermutationIterator<T> {
[INFO] [stdout]      |                       ^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 4120 |     pub fn new(data : &mut [T]) -> HeapPermutationIterator<'_, T> {
[INFO] [stdout]      |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:4317:25
[INFO] [stdout]      |
[INFO] [stdout] 4317 |             c : vec![0; (*data).len()],
[INFO] [stdout]      |                         ^^----^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/lib.rs:4317:25
[INFO] [stdout]      |
[INFO] [stdout] 4317 |             c : vec![0; (*data).len()],
[INFO] [stdout]      |                         ^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4317 |             c : vec![0; (&(*data)).len()],
[INFO] [stdout]      |                         ++       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:4498:23
[INFO] [stdout]      |
[INFO] [stdout] 4498 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 4498 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<'_, T> {
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:5077:42
[INFO] [stdout]      |
[INFO] [stdout] 5077 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<F, T> {
[INFO] [stdout]      |                        --                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 5077 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<'a, F, T> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:5123:24
[INFO] [stdout]      |
[INFO] [stdout] 5123 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:5123:24
[INFO] [stdout]      |
[INFO] [stdout] 5123 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5123 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:5256:24
[INFO] [stdout]      |
[INFO] [stdout] 5256 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:5256:24
[INFO] [stdout]      |
[INFO] [stdout] 5256 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5256 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:5389:24
[INFO] [stdout]      |
[INFO] [stdout] 5389 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:5389:24
[INFO] [stdout]      |
[INFO] [stdout] 5389 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5389 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6148:57
[INFO] [stdout]      |
[INFO] [stdout] 6148 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6148 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stdout]      |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6166:57
[INFO] [stdout]      |
[INFO] [stdout] 6166 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6166 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stdout]      |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6184:53
[INFO] [stdout]      |
[INFO] [stdout] 6184 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6184 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<'a, T>> {
[INFO] [stdout]      |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6213:53
[INFO] [stdout]      |
[INFO] [stdout] 6213 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6213 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<'a, T>> {
[INFO] [stdout]      |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:6218:33
[INFO] [stdout]      |
[INFO] [stdout] 6218 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^-----^^^^^^^
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/lib.rs:6218:33
[INFO] [stdout]      |
[INFO] [stdout] 6218 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 6218 |                     c : vec![0; (&(**self)).len()],
[INFO] [stdout]      |                                 ++        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:1656:19
[INFO] [stdout]      |
[INFO] [stdout] 1656 |     assert_eq!(k, (*result).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stdout]      |                   ^^------^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:1656:19
[INFO] [stdout]      |
[INFO] [stdout] 1656 |     assert_eq!(k, (*result).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stdout]      |                   ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1656 |     assert_eq!(k, (&(*result)).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stdout]      |                   ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling permutator v0.4.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:2008:20
[INFO] [stdout]      |
[INFO] [stdout] 2008 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^--------^^^^^^^
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      this raw pointer has type `*const Vec<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<T>`
[INFO] [stdout]     --> src/copy/mod.rs:2008:20
[INFO] [stdout]      |
[INFO] [stdout] 2008 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2008 |                 t(&(&(*perm_ptr))[0..k])
[INFO] [stdout]      |                    ++           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:2159:16
[INFO] [stdout]      |
[INFO] [stdout] 2159 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:2159:16
[INFO] [stdout]      |
[INFO] [stdout] 2159 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2159 |     assert_eq!((&(*result)).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:2167:16
[INFO] [stdout]      |
[INFO] [stdout] 2167 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:2167:16
[INFO] [stdout]      |
[INFO] [stdout] 2167 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2167 |             t(&(&(*result))[0..k])
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:2609:23
[INFO] [stdout]      |
[INFO] [stdout] 2609 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2609 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:3054:23
[INFO] [stdout]      |
[INFO] [stdout] 3054 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3054 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:3411:23
[INFO] [stdout]      |
[INFO] [stdout] 3411 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3411 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<'_, T> {
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:4245:42
[INFO] [stdout]      |
[INFO] [stdout] 4245 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<F, T> {
[INFO] [stdout]      |                        --                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 4245 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<'a, F, T> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:4291:24
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:4291:24
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:4424:24
[INFO] [stdout]      |
[INFO] [stdout] 4424 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:4424:24
[INFO] [stdout]      |
[INFO] [stdout] 4424 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4424 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:4557:24
[INFO] [stdout]      |
[INFO] [stdout] 4557 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:4557:24
[INFO] [stdout]      |
[INFO] [stdout] 4557 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4557 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:4973:57
[INFO] [stdout]      |
[INFO] [stdout] 4973 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 4973 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stdout]      |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:4991:53
[INFO] [stdout]      |
[INFO] [stdout] 4991 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 4991 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<'a, T>> {
[INFO] [stdout]      |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:5020:53
[INFO] [stdout]      |
[INFO] [stdout] 5020 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 5020 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<'a, T>> {
[INFO] [stdout]      |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:5025:33
[INFO] [stdout]      |
[INFO] [stdout] 5025 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^-----^^^^^^^
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:5025:33
[INFO] [stdout]      |
[INFO] [stdout] 5025 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5025 |                     c : vec![0; (&(**self)).len()],
[INFO] [stdout]      |                                 ++        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2010:19
[INFO] [stdout]      |
[INFO] [stdout] 2010 |     assert_eq!(k, (*result).len());
[INFO] [stdout]      |                   ^^------^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this raw pointer has type `*mut [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:2010:19
[INFO] [stdout]      |
[INFO] [stdout] 2010 |     assert_eq!(k, (*result).len());
[INFO] [stdout]      |                   ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout]      = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2010 |     assert_eq!(k, (&(*result)).len());
[INFO] [stdout]      |                   ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2485:20
[INFO] [stdout]      |
[INFO] [stdout] 2485 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^--------^^^^^^^
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      this raw pointer has type `*const Vec<&T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<&T>`
[INFO] [stdout]     --> src/lib.rs:2485:20
[INFO] [stdout]      |
[INFO] [stdout] 2485 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2485 |                 t(&(&(*perm_ptr))[0..k])
[INFO] [stdout]      |                    ++           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2636:16
[INFO] [stdout]      |
[INFO] [stdout] 2636 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:2636:16
[INFO] [stdout]      |
[INFO] [stdout] 2636 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2636 |     assert_eq!((&(*result)).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2644:16
[INFO] [stdout]      |
[INFO] [stdout] 2644 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:2644:16
[INFO] [stdout]      |
[INFO] [stdout] 2644 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2644 |             t(&(&(*result))[0..k])
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:3171:23
[INFO] [stdout]      |
[INFO] [stdout] 3171 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3171 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:3755:23
[INFO] [stdout]      |
[INFO] [stdout] 3755 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3755 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:4120:23
[INFO] [stdout]      |
[INFO] [stdout] 4120 |     pub fn new(data : &mut [T]) -> HeapPermutationIterator<T> {
[INFO] [stdout]      |                       ^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 4120 |     pub fn new(data : &mut [T]) -> HeapPermutationIterator<'_, T> {
[INFO] [stdout]      |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:4317:25
[INFO] [stdout]      |
[INFO] [stdout] 4317 |             c : vec![0; (*data).len()],
[INFO] [stdout]      |                         ^^----^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/lib.rs:4317:25
[INFO] [stdout]      |
[INFO] [stdout] 4317 |             c : vec![0; (*data).len()],
[INFO] [stdout]      |                         ^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4317 |             c : vec![0; (&(*data)).len()],
[INFO] [stdout]      |                         ++       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:4498:23
[INFO] [stdout]      |
[INFO] [stdout] 4498 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 4498 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<'_, T> {
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:5077:42
[INFO] [stdout]      |
[INFO] [stdout] 5077 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<F, T> {
[INFO] [stdout]      |                        --                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 5077 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<'a, F, T> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:5123:24
[INFO] [stdout]      |
[INFO] [stdout] 5123 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:5123:24
[INFO] [stdout]      |
[INFO] [stdout] 5123 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5123 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:5256:24
[INFO] [stdout]      |
[INFO] [stdout] 5256 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:5256:24
[INFO] [stdout]      |
[INFO] [stdout] 5256 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5256 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:5389:24
[INFO] [stdout]      |
[INFO] [stdout] 5389 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [&T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stdout]     --> src/lib.rs:5389:24
[INFO] [stdout]      |
[INFO] [stdout] 5389 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5389 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6148:57
[INFO] [stdout]      |
[INFO] [stdout] 6148 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6148 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stdout]      |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6166:57
[INFO] [stdout]      |
[INFO] [stdout] 6166 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6166 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stdout]      |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6184:53
[INFO] [stdout]      |
[INFO] [stdout] 6184 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6184 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<'a, T>> {
[INFO] [stdout]      |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/lib.rs:6213:53
[INFO] [stdout]      |
[INFO] [stdout] 6213 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 6213 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<'a, T>> {
[INFO] [stdout]      |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:6218:33
[INFO] [stdout]      |
[INFO] [stdout] 6218 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^-----^^^^^^^
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/lib.rs:6218:33
[INFO] [stdout]      |
[INFO] [stdout] 6218 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 6218 |                     c : vec![0; (&(**self)).len()],
[INFO] [stdout]      |                                 ++        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:1656:19
[INFO] [stdout]      |
[INFO] [stdout] 1656 |     assert_eq!(k, (*result).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stdout]      |                   ^^------^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:1656:19
[INFO] [stdout]      |
[INFO] [stdout] 1656 |     assert_eq!(k, (*result).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stdout]      |                   ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 1656 |     assert_eq!(k, (&(*result)).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stdout]      |                   ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:2008:20
[INFO] [stdout]      |
[INFO] [stdout] 2008 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^--------^^^^^^^
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      this raw pointer has type `*const Vec<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec<T>`
[INFO] [stdout]     --> src/copy/mod.rs:2008:20
[INFO] [stdout]      |
[INFO] [stdout] 2008 |                 t(&(*perm_ptr)[0..k])
[INFO] [stdout]      |                    ^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2008 |                 t(&(&(*perm_ptr))[0..k])
[INFO] [stdout]      |                    ++           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:2159:16
[INFO] [stdout]      |
[INFO] [stdout] 2159 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:2159:16
[INFO] [stdout]      |
[INFO] [stdout] 2159 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2159 |     assert_eq!((&(*result)).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:2167:16
[INFO] [stdout]      |
[INFO] [stdout] 2167 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^------^^^^^^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:2167:16
[INFO] [stdout]      |
[INFO] [stdout] 2167 |             t(&(*result)[0..k])
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2167 |             t(&(&(*result))[0..k])
[INFO] [stdout]      |                ++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:2609:23
[INFO] [stdout]      |
[INFO] [stdout] 2609 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 2609 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:3054:23
[INFO] [stdout]      |
[INFO] [stdout] 3054 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3054 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<'_, T> {
[INFO] [stdout]      |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:3411:23
[INFO] [stdout]      |
[INFO] [stdout] 3411 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<T> {
[INFO] [stdout]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 3411 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<'_, T> {
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:4245:42
[INFO] [stdout]      |
[INFO] [stdout] 4245 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<F, T> {
[INFO] [stdout]      |                        --                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        the lifetime is named here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 4245 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<'a, F, T> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:4291:24
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:4291:24
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4291 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:4424:24
[INFO] [stdout]      |
[INFO] [stdout] 4424 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:4424:24
[INFO] [stdout]      |
[INFO] [stdout] 4424 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4424 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:4557:24
[INFO] [stdout]      |
[INFO] [stdout] 4557 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^----------^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this raw pointer has type `*const [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:4557:24
[INFO] [stdout]      |
[INFO] [stdout] 4557 |                     t(&(*result_ptr)[0..k])
[INFO] [stdout]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4557 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stdout]      |                        ++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:4973:57
[INFO] [stdout]      |
[INFO] [stdout] 4973 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 4973 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stdout]      |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:4991:53
[INFO] [stdout]      |
[INFO] [stdout] 4991 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 4991 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<'a, T>> {
[INFO] [stdout]      |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]     --> src/copy/mod.rs:5020:53
[INFO] [stdout]      |
[INFO] [stdout] 5020 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<T>> {
[INFO] [stdout]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]      |
[INFO] [stdout] 5020 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<'a, T>> {
[INFO] [stdout]      |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/copy/mod.rs:5025:33
[INFO] [stdout]      |
[INFO] [stdout] 5025 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^-----^^^^^^^
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this raw pointer has type `*mut [T]`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stdout]     --> src/copy/mod.rs:5025:33
[INFO] [stdout]      |
[INFO] [stdout] 5025 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 5025 |                     c : vec![0; (&(**self)).len()],
[INFO] [stdout]      |                                 ++        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.64s
[INFO] running `Command { std: "docker" "inspect" "0aebc9a6c5893f5f076092601158200c3b5d47b619332572dc38f2ccf61f9d38", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0aebc9a6c5893f5f076092601158200c3b5d47b619332572dc38f2ccf61f9d38", kill_on_drop: false }`
[INFO] [stdout] 0aebc9a6c5893f5f076092601158200c3b5d47b619332572dc38f2ccf61f9d38
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 37f58a6b8529ee63b4ca1244bf8584770f1f934c4b88d8391ac6e3cbed2c030e
[INFO] running `Command { std: "docker" "start" "-a" "37f58a6b8529ee63b4ca1244bf8584770f1f934c4b88d8391ac6e3cbed2c030e", kill_on_drop: false }`
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:2010:19
[INFO] [stderr]      |
[INFO] [stderr] 2010 |     assert_eq!(k, (*result).len());
[INFO] [stderr]      |                   ^^------^^^^^^^
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     this raw pointer has type `*mut [&T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stderr]     --> src/lib.rs:2010:19
[INFO] [stderr]      |
[INFO] [stderr] 2010 |     assert_eq!(k, (*result).len());
[INFO] [stderr]      |                   ^^^^^^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stderr]      = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 2010 |     assert_eq!(k, (&(*result)).len());
[INFO] [stderr]      |                   ++         +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:2485:20
[INFO] [stderr]      |
[INFO] [stderr] 2485 |                 t(&(*perm_ptr)[0..k])
[INFO] [stderr]      |                    ^^--------^^^^^^^
[INFO] [stderr]      |                      |
[INFO] [stderr]      |                      this raw pointer has type `*const Vec<&T>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<&T>`
[INFO] [stderr]     --> src/lib.rs:2485:20
[INFO] [stderr]      |
[INFO] [stderr] 2485 |                 t(&(*perm_ptr)[0..k])
[INFO] [stderr]      |                    ^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 2485 |                 t(&(&(*perm_ptr))[0..k])
[INFO] [stderr]      |                    ++           +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:2636:16
[INFO] [stderr]      |
[INFO] [stderr] 2636 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stderr]      |                ^^------^^^^^^^
[INFO] [stderr]      |                  |
[INFO] [stderr]      |                  this raw pointer has type `*mut [&T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stderr]     --> src/lib.rs:2636:16
[INFO] [stderr]      |
[INFO] [stderr] 2636 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stderr]      |                ^^^^^^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 2636 |     assert_eq!((&(*result)).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stderr]      |                ++         +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:2644:16
[INFO] [stderr]      |
[INFO] [stderr] 2644 |             t(&(*result)[0..k])
[INFO] [stderr]      |                ^^------^^^^^^^
[INFO] [stderr]      |                  |
[INFO] [stderr]      |                  this raw pointer has type `*mut [&T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stderr]     --> src/lib.rs:2644:16
[INFO] [stderr]      |
[INFO] [stderr] 2644 |             t(&(*result)[0..k])
[INFO] [stderr]      |                ^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 2644 |             t(&(&(*result))[0..k])
[INFO] [stderr]      |                ++         +
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/lib.rs:3171:23
[INFO] [stderr]      |
[INFO] [stderr] 3171 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<T> {
[INFO] [stderr]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]      = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 3171 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<'_, T> {
[INFO] [stderr]      |                                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/lib.rs:3755:23
[INFO] [stderr]      |
[INFO] [stderr] 3755 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<T> {
[INFO] [stderr]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 3755 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<'_, T> {
[INFO] [stderr]      |                                                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/lib.rs:4120:23
[INFO] [stderr]      |
[INFO] [stderr] 4120 |     pub fn new(data : &mut [T]) -> HeapPermutationIterator<T> {
[INFO] [stderr]      |                       ^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 4120 |     pub fn new(data : &mut [T]) -> HeapPermutationIterator<'_, T> {
[INFO] [stderr]      |                                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:4317:25
[INFO] [stderr]      |
[INFO] [stderr] 4317 |             c : vec![0; (*data).len()],
[INFO] [stderr]      |                         ^^----^^^^^^^
[INFO] [stderr]      |                           |
[INFO] [stderr]      |                           this raw pointer has type `*mut [T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stderr]     --> src/lib.rs:4317:25
[INFO] [stderr]      |
[INFO] [stderr] 4317 |             c : vec![0; (*data).len()],
[INFO] [stderr]      |                         ^^^^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 4317 |             c : vec![0; (&(*data)).len()],
[INFO] [stderr]      |                         ++       +
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/lib.rs:4498:23
[INFO] [stderr]      |
[INFO] [stderr] 4498 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<T> {
[INFO] [stderr]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 4498 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<'_, T> {
[INFO] [stderr]      |                                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]     --> src/lib.rs:5077:42
[INFO] [stderr]      |
[INFO] [stderr] 5077 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<F, T> {
[INFO] [stderr]      |                        --                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                        |
[INFO] [stderr]      |                        the lifetime is named here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]      |
[INFO] [stderr] 5077 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<'a, F, T> {
[INFO] [stderr]      |                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:5123:24
[INFO] [stderr]      |
[INFO] [stderr] 5123 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^----------^^^^^^^
[INFO] [stderr]      |                          |
[INFO] [stderr]      |                          this raw pointer has type `*const [&T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stderr]     --> src/lib.rs:5123:24
[INFO] [stderr]      |
[INFO] [stderr] 5123 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 5123 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stderr]      |                        ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:5256:24
[INFO] [stderr]      |
[INFO] [stderr] 5256 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^----------^^^^^^^
[INFO] [stderr]      |                          |
[INFO] [stderr]      |                          this raw pointer has type `*const [&T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stderr]     --> src/lib.rs:5256:24
[INFO] [stderr]      |
[INFO] [stderr] 5256 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 5256 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stderr]      |                        ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:5389:24
[INFO] [stderr]      |
[INFO] [stderr] 5389 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^----------^^^^^^^
[INFO] [stderr]      |                          |
[INFO] [stderr]      |                          this raw pointer has type `*const [&T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[&T]`
[INFO] [stderr]     --> src/lib.rs:5389:24
[INFO] [stderr]      |
[INFO] [stderr] 5389 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 5389 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stderr]      |                        ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]     --> src/lib.rs:6148:57
[INFO] [stderr]      |
[INFO] [stderr] 6148 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stderr]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]      |
[INFO] [stderr] 6148 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stderr]      |                                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]     --> src/lib.rs:6166:57
[INFO] [stderr]      |
[INFO] [stderr] 6166 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stderr]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]      |
[INFO] [stderr] 6166 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stderr]      |                                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]     --> src/lib.rs:6184:53
[INFO] [stderr]      |
[INFO] [stderr] 6184 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<T>> {
[INFO] [stderr]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]      |
[INFO] [stderr] 6184 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<'a, T>> {
[INFO] [stderr]      |                                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]     --> src/lib.rs:6213:53
[INFO] [stderr]      |
[INFO] [stderr] 6213 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<T>> {
[INFO] [stderr]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]      |
[INFO] [stderr] 6213 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<'a, T>> {
[INFO] [stderr]      |                                                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:6218:33
[INFO] [stderr]      |
[INFO] [stderr] 6218 |                     c : vec![0; (**self).len()],
[INFO] [stderr]      |                                 ^^-----^^^^^^^
[INFO] [stderr]      |                                   |
[INFO] [stderr]      |                                   this raw pointer has type `*mut [T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stderr]     --> src/lib.rs:6218:33
[INFO] [stderr]      |
[INFO] [stderr] 6218 |                     c : vec![0; (**self).len()],
[INFO] [stderr]      |                                 ^^^^^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 6218 |                     c : vec![0; (&(**self)).len()],
[INFO] [stderr]      |                                 ++        +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/copy/mod.rs:1656:19
[INFO] [stderr]      |
[INFO] [stderr] 1656 |     assert_eq!(k, (*result).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stderr]      |                   ^^------^^^^^^^
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     this raw pointer has type `*mut [T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stderr]     --> src/copy/mod.rs:1656:19
[INFO] [stderr]      |
[INFO] [stderr] 1656 |     assert_eq!(k, (*result).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stderr]      |                   ^^^^^^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 1656 |     assert_eq!(k, (&(*result)).len(), "Result is too large. Result length need to be exactly equals to 'k'");
[INFO] [stderr]      |                   ++         +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/copy/mod.rs:2008:20
[INFO] [stderr]      |
[INFO] [stderr] 2008 |                 t(&(*perm_ptr)[0..k])
[INFO] [stderr]      |                    ^^--------^^^^^^^
[INFO] [stderr]      |                      |
[INFO] [stderr]      |                      this raw pointer has type `*const Vec<T>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&Vec<T>`
[INFO] [stderr]     --> src/copy/mod.rs:2008:20
[INFO] [stderr]      |
[INFO] [stderr] 2008 |                 t(&(*perm_ptr)[0..k])
[INFO] [stderr]      |                    ^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 2008 |                 t(&(&(*perm_ptr))[0..k])
[INFO] [stderr]      |                    ++           +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/copy/mod.rs:2159:16
[INFO] [stderr]      |
[INFO] [stderr] 2159 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stderr]      |                ^^------^^^^^^^
[INFO] [stderr]      |                  |
[INFO] [stderr]      |                  this raw pointer has type `*mut [T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stderr]     --> src/copy/mod.rs:2159:16
[INFO] [stderr]      |
[INFO] [stderr] 2159 |     assert_eq!((*result).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stderr]      |                ^^^^^^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 2159 |     assert_eq!((&(*result)).len(), d.len(), "`result` shall has length equals to `d`");
[INFO] [stderr]      |                ++         +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/copy/mod.rs:2167:16
[INFO] [stderr]      |
[INFO] [stderr] 2167 |             t(&(*result)[0..k])
[INFO] [stderr]      |                ^^------^^^^^^^
[INFO] [stderr]      |                  |
[INFO] [stderr]      |                  this raw pointer has type `*mut [T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stderr]     --> src/copy/mod.rs:2167:16
[INFO] [stderr]      |
[INFO] [stderr] 2167 |             t(&(*result)[0..k])
[INFO] [stderr]      |                ^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 2167 |             t(&(&(*result))[0..k])
[INFO] [stderr]      |                ++         +
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/copy/mod.rs:2609:23
[INFO] [stderr]      |
[INFO] [stderr] 2609 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<T> {
[INFO] [stderr]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 2609 |     pub fn new(data : &[T], r : usize) -> GosperCombinationIterator<'_, T> {
[INFO] [stderr]      |                                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/copy/mod.rs:3054:23
[INFO] [stderr]      |
[INFO] [stderr] 3054 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<T> {
[INFO] [stderr]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 3054 |     pub fn new(data : &[T], r : usize) -> LargeCombinationIterator<'_, T> {
[INFO] [stderr]      |                                                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/copy/mod.rs:3411:23
[INFO] [stderr]      |
[INFO] [stderr] 3411 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<T> {
[INFO] [stderr]      |                       ^^^^                ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 3411 |     pub fn new(data : &[T], k : usize) -> KPermutationIterator<'_, T> {
[INFO] [stderr]      |                                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]     --> src/copy/mod.rs:4245:42
[INFO] [stderr]      |
[INFO] [stderr] 4245 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<F, T> {
[INFO] [stderr]      |                        --                ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                        |
[INFO] [stderr]      |                        the lifetime is named here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]      |
[INFO] [stderr] 4245 |     pub fn new(data : &'a [T], t : F) -> XPermutationIterator<'a, F, T> {
[INFO] [stderr]      |                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/copy/mod.rs:4291:24
[INFO] [stderr]      |
[INFO] [stderr] 4291 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^----------^^^^^^^
[INFO] [stderr]      |                          |
[INFO] [stderr]      |                          this raw pointer has type `*const [T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stderr]     --> src/copy/mod.rs:4291:24
[INFO] [stderr]      |
[INFO] [stderr] 4291 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 4291 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stderr]      |                        ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/copy/mod.rs:4424:24
[INFO] [stderr]      |
[INFO] [stderr] 4424 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^----------^^^^^^^
[INFO] [stderr]      |                          |
[INFO] [stderr]      |                          this raw pointer has type `*const [T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stderr]     --> src/copy/mod.rs:4424:24
[INFO] [stderr]      |
[INFO] [stderr] 4424 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 4424 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stderr]      |                        ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/copy/mod.rs:4557:24
[INFO] [stderr]      |
[INFO] [stderr] 4557 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^----------^^^^^^^
[INFO] [stderr]      |                          |
[INFO] [stderr]      |                          this raw pointer has type `*const [T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stderr]     --> src/copy/mod.rs:4557:24
[INFO] [stderr]      |
[INFO] [stderr] 4557 |                     t(&(*result_ptr)[0..k])
[INFO] [stderr]      |                        ^^^^^^^^^^^^^
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 4557 |                     t(&(&(*result_ptr))[0..k])
[INFO] [stderr]      |                        ++             +
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]     --> src/copy/mod.rs:4973:57
[INFO] [stderr]      |
[INFO] [stderr] 4973 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<T>> {
[INFO] [stderr]      |                     -- the lifetime is named here       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]      |
[INFO] [stderr] 4973 |     fn permutation(&'a mut self) -> Chain<Once<Vec<T>>, HeapPermutationIterator<'a, T>> {
[INFO] [stderr]      |                                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]     --> src/copy/mod.rs:4991:53
[INFO] [stderr]      |
[INFO] [stderr] 4991 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<T>> {
[INFO] [stderr]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]      |
[INFO] [stderr] 4991 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationCellIter<'a, T>> {
[INFO] [stderr]      |                                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]     --> src/copy/mod.rs:5020:53
[INFO] [stderr]      |
[INFO] [stderr] 5020 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<T>> {
[INFO] [stderr]      |                     -- the lifetime is named here   ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]      |
[INFO] [stderr] 5020 |     fn permutation(&'a mut self) -> Chain<Once<()>, HeapPermutationRefIter<'a, T>> {
[INFO] [stderr]      |                                                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/copy/mod.rs:5025:33
[INFO] [stderr]      |
[INFO] [stderr] 5025 |                     c : vec![0; (**self).len()],
[INFO] [stderr]      |                                 ^^-----^^^^^^^
[INFO] [stderr]      |                                   |
[INFO] [stderr]      |                                   this raw pointer has type `*mut [T]`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr] note: autoref is being applied to this expression, resulting in: `&[T]`
[INFO] [stderr]     --> src/copy/mod.rs:5025:33
[INFO] [stderr]      |
[INFO] [stderr] 5025 |                     c : vec![0; (**self).len()],
[INFO] [stderr]      |                                 ^^^^^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:114:5
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 5025 |                     c : vec![0; (&(**self)).len()],
[INFO] [stderr]      |                                 ++        +
[INFO] [stderr] 
[INFO] [stderr] warning: `permutator` (lib) generated 33 warnings (run `cargo fix --lib -p permutator` to apply 16 suggestions)
[INFO] [stderr] warning: `permutator` (lib test) generated 33 warnings (33 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/permutator-1937668409b102f1)
[INFO] [stdout] 
[INFO] [stdout] running 182 tests
[INFO] [stdout] test copy::test::compare_gosper_custom_cell_iter ... ignored
[INFO] [stdout] test copy::test::compare_gosper_custom_fn ... ignored
[INFO] [stdout] test copy::test::compare_gosper_custom_iter ... ignored
[INFO] [stdout] test copy::test::compare_gosper_custom_ref_iter ... ignored
[INFO] [stdout] test copy::test::test_CartesianProduct ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_iterator_alike_shared_result ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_reset ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_trait ... ok
[INFO] [stdout] test copy::test::test_GosperCombinationIterator ... ok
[INFO] [stdout] test copy::test::test_GosperCombinationCellIter ... ok
[INFO] [stdout] test copy::test::test_HeapPermutation ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_mimic_iterator ... ok
[INFO] [stdout] test copy::test::test_HeapPermutationIntoIterator ... ok
[INFO] [stdout] test copy::test::test_GosperCombinationIteratorUnsafe ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_mimic_iterator_2 ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_shared_trait ... ok
[INFO] [stdout] test copy::test::test_HeapPermutationCellIterIterator ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_ptr_trait ... ok
[INFO] [stdout] test copy::test::test_GosperCombinationIteratorAlike_reset ... ok
[INFO] [stdout] test copy::test::test_XPermutationIterator ... ok
[INFO] [stdout] test copy::test::test_HeapPermutationIterator ... ok
[INFO] [stdout] test copy::test::test_HeapPermutationRefIterator ... ok
[INFO] [stdout] test copy::test::test_HeapPermutation_reset ... ok
[INFO] [stdout] test copy::test::test_KPermutationIterator ... ok
[INFO] [stdout] test copy::test::test_KPermutation_into_Cell ... ok
[INFO] [stdout] test copy::test::test_XPermutationIterator_mt ... ignored
[INFO] [stdout] test copy::test::test_KPermutation_into_Ref ... ok
[INFO] [stdout] test copy::test::test_KPermutation_into_cell_trait ... ok
[INFO] [stdout] test copy::test::test_KPermutation_into_Ref_trait ... ok
[INFO] [stdout] test copy::test::test_XPermutationRefIter ... ok
[INFO] [stdout] test copy::test::test_KPermutation_trait ... ok
[INFO] [stdout] test copy::test::test_KPermutation_single_term ... ok
[INFO] [stdout] test copy::test::test_SelfCartesianProduct_cell ... ok
[INFO] [stdout] test copy::test::test_XPermutationCellIter ... ok
[INFO] [stdout] test copy::test::test_SelfCartesianProduct ... ok
[INFO] [stdout] test copy::test::test_combination_trait_share ... ok
[INFO] [stdout] test copy::test::test_cartesian_product ... ok
[INFO] [stdout] test copy::test::test_get_cartesian_for ... ok
[INFO] [stdout] test copy::test::test_get_permutation_for ... ok
[INFO] [stdout] test copy::test::test_cartesian_product_shared_result_fn ... ok
[INFO] [stdout] test copy::test::test_k_permutation ... ok
[INFO] [stdout] test copy::test::test_combination_cell_fn ... ok
[INFO] [stdout] test copy::test::test_k_permutation_ref_single_term ... ok
[INFO] [stdout] test copy::test::test_combination_fn ... ok
[INFO] [stdout] test copy::test::test_heap_permutation_6 ... ok
[INFO] [stdout] test copy::test::test_combination_trait ... ok
[INFO] [stdout] test copy::test::test_combination_trait_ptr ... ok
[INFO] [stdout] test copy::test::test_k_permutation_primitive ... ok
[INFO] [stdout] test copy::test::test_SelfCartesianProduct_ref ... ok
[INFO] [stdout] test copy::test::test_shared_KPermutation_result ... ok
[INFO] [stdout] test copy::test::test_permutation_trait_ref ... ok
[INFO] [stdout] test copy::test::test_self_cartesian_product ... ok
[INFO] [stdout] test copy::test::test_permutation_trait ... ok
[INFO] [stdout] test copy::test::test_self_cartesian_product_shared_result_fn ... ok
[INFO] [stdout] test copy::test::test_permutation_trait_cell ... ok
[INFO] [stdout] test copy::test::test_shared_k_permutation_result_fn ... ok
[INFO] [stdout] test copy::test::test_shared_combination_result_fn ... ok
[INFO] [stdout] test copy::test::test_unsafe_cartesian_product ... ok
[INFO] [stdout] test copy::test::test_unsafe_cartesian_product_shared_result ... ok
[INFO] [stdout] test copy::test::test_unsafe_k_permutation ... ok
[INFO] [stdout] test copy::test::test_tldr_case ... ok
[INFO] [stdout] test copy::test::test_share_CartesianProductIterator_result_to_thread ... ok
[INFO] [stdout] test copy::test::test_unsafe_self_cartesian_product_shared_result ... ok
[INFO] [stdout] test copy::test::test_x_permutation_cell ... ok
[INFO] [stdout] test copy::test::test_x_permutation ... ok
[INFO] [stdout] test copy::test::test_x_permutation_restricted ... ok
[INFO] [stdout] test copy::test::test_unsafe_shared_combination_result_fn ... ok
[INFO] [stdout] test copy::test::test_x_permutation_sync ... ok
[INFO] [stdout] test test::bench_cart_fn ... ignored
[INFO] [stdout] test copy::test::test_unsafe_x_permutation ... ok
[INFO] [stdout] test test::bench_cart_iter ... ignored
[INFO] [stdout] test test::bench_heap_fn ... ignored
[INFO] [stdout] test test::bench_heap_iter ... ignored
[INFO] [stdout] test test::bench_k_perm_fn ... ignored
[INFO] [stdout] test test::bench_k_perm_iter ... ignored
[INFO] [stdout] test test::bench_x_perm_mt_fn ... ignored
[INFO] [stdout] test test::bench_x_perm_st_fn ... ignored
[INFO] [stdout] test test::compare_gosper_custom_cell_iter ... ignored
[INFO] [stdout] test test::compare_gosper_custom_fn ... ignored
[INFO] [stdout] test test::compare_gosper_custom_iter ... ignored
[INFO] [stdout] test test::compare_gosper_custom_ref_iter ... ignored
[INFO] [stdout] test test::test_CartesianProduct ... ok
[INFO] [stdout] test test::test_CartesianProduct_mimic_iterator_2 ... ok
[INFO] [stdout] test test::test_CartesianProduct_mimic_iterator ... ok
[INFO] [stdout] test copy::test::test_shared_CartesianProduct_result_sync ... ok
[INFO] [stdout] test test::test_CartesianProduct_ptr_trait ... ok
[INFO] [stdout] test copy::test::test_unsafe_shared_k_permutation_result_fn ... ok
[INFO] [stdout] test test::test_CartesianProduct_trait ... ok
[INFO] [stdout] test test::test_GosperCombinationCellIter ... ok
[INFO] [stdout] test test::test_GosperCombinationIteratorAlike_reset ... ok
[INFO] [stdout] test test::test_CartesianProduct_iterator_alike_shared_result ... ok
[INFO] [stdout] test test::test_GosperCombinationIteratorUnsafe ... ok
[INFO] [stdout] test test::test_GosperCombinationIterator ... ok
[INFO] [stdout] test test::test_HeapPermutation ... ok
[INFO] [stdout] test copy::test::test_share_result_KPermutation_iterator_sync ... ok
[INFO] [stdout] test test::test_CartesianProduct_shared_trait ... ok
[INFO] [stdout] test test::test_HeapPermutationCellIterIterator ... ok
[INFO] [stdout] test test::test_HeapPermutationIntoIterator ... ok
[INFO] [stdout] test test::test_HeapPermutationRefIterator ... ok
[INFO] [stdout] test test::test_KPermutationIteratorBound ... ok
[INFO] [stdout] test test::test_KPermutation_into_Ref ... ok
[INFO] [stdout] test test::test_KPermutation_into_cell_trait ... ok
[INFO] [stdout] test test::test_KPermutation_into_Ref_trait ... ok
[INFO] [stdout] test test::test_KPermutation_single ... ok
[INFO] [stdout] test test::test_KPermutation_trait ... ok
[INFO] [stdout] test test::test_SelfCartesianProduct ... ok
[INFO] [stdout] test test::test_XPermutationCellIter ... ok
[INFO] [stdout] test copy::test::test_shared_combination_result_iterator_alike ... ok
[INFO] [stdout] test test::test_XPermutationIterator ... ok
[INFO] [stdout] test copy::test::test_unsafe_combination_fn ... ok
[INFO] [stdout] test test::test_XPermutationIterator_mt ... ignored
[INFO] [stdout] test test::test_XPermutationRefIter ... ok
[INFO] [stdout] test test::test_SelfCartesianProduct_cell ... ok
[INFO] [stdout] test test::test_SelfCartesianProduct_ref ... ok
[INFO] [stdout] test test::test_case_15 ... ok
[INFO] [stdout] test test::test_cartesian_product_shared_result_fn ... ok
[INFO] [stdout] test test::test_case_16 ... ok
[INFO] [stdout] test test::test_HeapPermutation_reset ... ok
[INFO] [stdout] test test::test_cartesian_product ... ok
[INFO] [stdout] test test::test_combination_cell_fn ... ok
[INFO] [stdout] test test::test_combination_fn_single ... ok
[INFO] [stdout] test test::test_combination_fn ... ok
[INFO] [stdout] test test::test_combination_fn_bound ... ok
[INFO] [stdout] test test::test_CartesianProduct_reset ... ok
[INFO] [stdout] test test::test_KPermutationIterator ... ok
[INFO] [stdout] test test::test_LargeCombinationIterator ... ok
[INFO] [stdout] test test::test_KPermutation_into_Cell ... ok
[INFO] [stdout] test test::test_combination_trait ... ok
[INFO] [stdout] test test::test_LargeCombinationIterator_single ... ok
[INFO] [stdout] test test::test_combination_trait_ptr ... ok
[INFO] [stdout] test test::test_combination_trait_share ... ok
[INFO] [stdout] test test::test_get_cartesian_for ... ok
[INFO] [stdout] test test::test_get_permutation_for ... ok
[INFO] [stdout] test test::test_heap_permutation_6 ... ok
[INFO] [stdout] test copy::test::test_shared_cartesian_product_result_sync_fn ... ok
[INFO] [stdout] test test::test_k_permutation_k_1 ... ok
[INFO] [stdout] test test::test_k_permutation_fn ... ok
[INFO] [stdout] test test::test_k_permutation_primitive ... ok
[INFO] [stdout] test test::test_large_combination_cell_fn ... ok
[INFO] [stdout] test test::test_large_combination_fn ... ok
[INFO] [stdout] test test::test_large_combination_fn_d_eq_k ... ok
[INFO] [stdout] test test::test_large_combination_fn_k_1 ... ok
[INFO] [stdout] test test::test_large_k_permutation ... ignored
[INFO] [stdout] test test::test_lex_family ... ignored
[INFO] [stdout] test test::test_large_combination_sync_fn ... ok
[INFO] [stdout] test test::test_permutation_trait_cell ... ok
[INFO] [stdout] test test::test_self_cartesian_product ... ok
[INFO] [stdout] test test::test_permutation_trait ... ok
[INFO] [stdout] test test::test_permutation_trait_ref ... ok
[INFO] [stdout] test test::test_self_cartesian_product_shared_result_fn ... ok
[INFO] [stdout] test test::test_shared_KPermutation_result ... ok
[INFO] [stdout] test test::test_shared_combination_result_fn ... ok
[INFO] [stdout] test test::test_share_result_CombinationIterator_with_thread_fn ... ok
[INFO] [stdout] test test::test_shared_CartesianProduct_result_sync ... ok
[INFO] [stdout] test test::test_tldr_case ... ok
[INFO] [stdout] test test::test_shared_cartesian_product_result_sync_fn ... ok
[INFO] [stdout] test test::test_unsafe_cartesian_product ... ok
[INFO] [stdout] test test::test_unsafe_cartesian_product_shared_result ... ok
[INFO] [stdout] test test::test_unsafe_combination_fn ... ok
[INFO] [stdout] test test::test_unsafe_k_permutation ... ok
[INFO] [stdout] test test::test_unsafe_self_cartesian_product_shared_result ... ok
[INFO] [stdout] test test::test_shared_combination_result_iterator_alike ... ok
[INFO] [stdout] test test::test_unsafe_shared_combination_result_fn ... ok
[INFO] [stdout] test test::test_unsafe_shared_k_permutation_result_fn ... ok
[INFO] [stdout] test test::test_shared_k_permutation_result_fn ... ok
[INFO] [stdout] test test::test_unsafe_x_permutation ... ok
[INFO] [stdout] test test::test_x_permutation ... ok
[INFO] [stdout] test test::test_x_permutation_sync ... ok
[INFO] [stdout] test test::test_x_permutation_cell ... ok
[INFO] [stdout] test test::test_x_permutation_restricted ... ok
[INFO] [stdout] test test::test_share_result_KPermutation_iterator_sync ... ok
[INFO] [stdout] test test::test_shared_combination_result_sync_fn ... ok
[INFO] [stdout] test copy::test::test_share_result_CombinationIterator_with_thread_fn ... ok
[INFO] [stdout] test test::test_shared_k_permutation_sync_fn ... ok
[INFO] [stdout] test test::test_share_CartesianProductIterator_result_to_thread ... ok
[INFO] [stdout] test test::test_k_permutation_empty_dom - should panic ... ok
[INFO] [stdout] test test::test_large_combination_fn_k_0 - should panic ... ok
[INFO] [stdout] test test::test_self_cartesian_product_zero - should panic ... ok
[INFO] [stdout] test copy::test::test_shared_combination_result_sync_fn ... ok
[INFO] [stdout] test copy::test::test_heap_permutation_10 ... ok
[INFO] [stdout] test test::test_heap_permutation_10 ... ok
[INFO] [stdout] test copy::test::test_shared_k_permutation_sync_fn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 162 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out; finished in 1.67s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests permutator
[INFO] [stdout] 
[INFO] [stdout] running 91 tests
[INFO] [stdout] test src/copy/mod.rs - copy::GosperCombinationCellIter (line 2717) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::KPermutationIterator (line 3363) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::Combination (line 4794) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::GosperCombinationIterator (line 2574) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProductRefIter (line 2427) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::GosperCombinationRefIter (line 2883) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProductIterator (line 2180) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::LargeCombinationRefIter (line 3258) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProduct (line 4606) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::Permutation (line 4910) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::LargeCombinationCellIter (line 3131) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::KPermutationCellIter (line 3490) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::Permutation (line 4900) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProductCellIter (line 2293) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::SelfCartesianProductIterator (line 3759) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::LargeCombinationIterator (line 3026) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProduct (line 4623) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::cartesian_product (line 256) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::combination (line 960) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::k_permutation (line 1533) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::cartesian_product_cell (line 414) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::KPermutationRefIter (line 3639) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::SelfCartesianProductRefIter (line 4000) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::get_cartesian_for (line 77) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::SelfCartesianProductCellIter (line 3877) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::combination_cell (line 1116) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::self_cartesian_product (line 605) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::unsafe_k_permutation (line 1599) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::get_permutation_for (line 142) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::self_cartesian_product_cell (line 762) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::cartesian_product_sync (line 507) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::unsafe_combination (line 1019) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::get_permutation_size (line 117) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::self_cartesian_product_sync (line 857) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::k_permutation_cell (line 1705) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::combination_sync (line 1220) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::unsafe_cartesian_product (line 321) ... ok
[INFO] [stdout] test src/lib.rs - (line 28) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::k_permutation_sync (line 1810) ... ok
[INFO] [stdout] test src/lib.rs - (line 40) ... ok
[INFO] [stdout] test src/lib.rs - GosperCombinationRefIter (line 3469) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProductCellIter (line 2830) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProduct (line 5802) ... ok
[INFO] [stdout] test src/lib.rs - (line 52) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::unsafe_self_cartesian_product (line 667) ... ok
[INFO] [stdout] test src/lib.rs - (line 88) ... ok
[INFO] [stdout] test src/lib.rs - HeapPermutationCellIter (line 4192) ... ok
[INFO] [stdout] test src/lib.rs - GosperCombinationIterator (line 3136) ... ok
[INFO] [stdout] test src/lib.rs - Combination (line 5983) ... ok
[INFO] [stdout] test src/lib.rs - GosperCombinationCellIter (line 3283) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProductIterator (line 2717) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProductRefIter (line 2964) ... ok
[INFO] [stdout] test src/lib.rs - (line 66) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProduct (line 5819) ... ok
[INFO] [stdout] test src/lib.rs - KPermutationIterator (line 4449) ... ok
[INFO] [stdout] test src/lib.rs - KPermutationRefIter (line 4726) ... ok
[INFO] [stdout] test src/lib.rs - SelfCartesianProductIterator (line 5434) ... ok
[INFO] [stdout] test src/lib.rs - LargeCombinationRefIter (line 3957) ... ok
[INFO] [stdout] test src/lib.rs - KPermutationCellIter (line 4577) ... ok
[INFO] [stdout] test src/lib.rs - HeapPermutationRefIter (line 4277) ... ok
[INFO] [stdout] test src/lib.rs - SelfCartesianProductCellIter (line 5552) ... ok
[INFO] [stdout] test src/lib.rs - LargeCombinationIterator (line 3727) ... ok
[INFO] [stdout] test src/lib.rs - SelfCartesianProductRefIter (line 5675) ... ok
[INFO] [stdout] test src/lib.rs - cartesian_product_cell (line 545) ... ok
[INFO] [stdout] test src/lib.rs - LargeCombinationCellIter (line 3831) ... ok
[INFO] [stdout] test src/lib.rs - divide_factorial (line 6361) ... ok
[INFO] [stdout] test src/lib.rs - Permutation (line 6090) ... ok
[INFO] [stdout] test src/lib.rs - get_cartesian_for (line 160) ... ok
[INFO] [stdout] test src/lib.rs - Permutation (line 6100) ... ok
[INFO] [stdout] test src/lib.rs - get_permutation_for (line 225) ... ok
[INFO] [stdout] test src/lib.rs - combination_cell (line 1244) ... ok
[INFO] [stdout] test src/lib.rs - cartesian_product (line 387) ... ok
[INFO] [stdout] test src/lib.rs - combination (line 1088) ... ok
[INFO] [stdout] test src/lib.rs - get_permutation_size (line 200) ... ok
[INFO] [stdout] test src/lib.rs - get_cartesian_size (line 137) ... ok
[INFO] [stdout] test src/lib.rs - heap_permutation (line 1710) ... ok
[INFO] [stdout] test src/lib.rs - k_permutation (line 1878) ... ok
[INFO] [stdout] test src/lib.rs - k_permutation_cell (line 2057) ... ok
[INFO] [stdout] test src/lib.rs - unsafe_cartesian_product (line 452) ... ok
[INFO] [stdout] test src/lib.rs - multiply_factorial (line 6386) ... ok
[INFO] [stdout] test src/lib.rs - combination_sync (line 1348) ... ok
[INFO] [stdout] test src/lib.rs - self_cartesian_product_cell (line 890) ... ok
[INFO] [stdout] test src/lib.rs - heap_permutation_cell (line 1759) ... ok
[INFO] [stdout] test src/lib.rs - unsafe_combination (line 1147) ... ok
[INFO] [stdout] test src/lib.rs - unsafe_self_cartesian_product (line 795) ... ok
[INFO] [stdout] test src/lib.rs - HeapPermutationIterator (line 4089) ... ok
[INFO] [stdout] test src/lib.rs - self_cartesian_product (line 729) ... ok
[INFO] [stdout] test src/lib.rs - cartesian_product_sync (line 638) ... ok
[INFO] [stdout] test src/lib.rs - self_cartesian_product_sync (line 985) ... ok
[INFO] [stdout] test src/lib.rs - unsafe_k_permutation (line 1950) ... ok
[INFO] [stdout] test src/lib.rs - k_permutation_sync (line 2163) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 91 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.43s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "37f58a6b8529ee63b4ca1244bf8584770f1f934c4b88d8391ac6e3cbed2c030e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "37f58a6b8529ee63b4ca1244bf8584770f1f934c4b88d8391ac6e3cbed2c030e", kill_on_drop: false }`
[INFO] [stdout] 37f58a6b8529ee63b4ca1244bf8584770f1f934c4b88d8391ac6e3cbed2c030e
