[INFO] cloning repository https://github.com/NattapongSiri/permutator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NattapongSiri/permutator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNattapongSiri%2Fpermutator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNattapongSiri%2Fpermutator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 85a83956f6e36bcf033867a735d9c8c18a0d8827
[INFO] testing NattapongSiri/permutator against 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNattapongSiri%2Fpermutator" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/NattapongSiri/permutator
[INFO] finished tweaking git repo https://github.com/NattapongSiri/permutator
[INFO] tweaked toml for git repo https://github.com/NattapongSiri/permutator written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/NattapongSiri/permutator on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/NattapongSiri/permutator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num-traits v0.2.10
[INFO] [stderr]   Downloaded num-bigint v0.2.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5dc14f709484c9a4bb422d45bb029ec2e1ef6684445d15fdc9f6b724e7319626
[INFO] running `Command { std: "docker" "start" "-a" "5dc14f709484c9a4bb422d45bb029ec2e1ef6684445d15fdc9f6b724e7319626", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5dc14f709484c9a4bb422d45bb029ec2e1ef6684445d15fdc9f6b724e7319626", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5dc14f709484c9a4bb422d45bb029ec2e1ef6684445d15fdc9f6b724e7319626", kill_on_drop: false }`
[INFO] [stdout] 5dc14f709484c9a4bb422d45bb029ec2e1ef6684445d15fdc9f6b724e7319626
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6c68631fe731213d22beb0f894ea95b56930b10d0453ac7d84155d66a1357e55
[INFO] running `Command { std: "docker" "start" "-a" "6c68631fe731213d22beb0f894ea95b56930b10d0453ac7d84155d66a1357e55", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.10
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num-bigint v0.2.3
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]    Compiling num-complex v0.2.3
[INFO] [stderr]    Compiling num v0.2.0
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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:3760:23
[INFO] [stdout]      |
[INFO] [stdout] 3760 |     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] 3760 |     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:4125:23
[INFO] [stdout]      |
[INFO] [stdout] 4125 |     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] 4125 |     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:4322:25
[INFO] [stdout]      |
[INFO] [stdout] 4322 |             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:4322:25
[INFO] [stdout]      |
[INFO] [stdout] 4322 |             c : vec![0; (*data).len()],
[INFO] [stdout]      |                         ^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4322 |             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:4503:23
[INFO] [stdout]      |
[INFO] [stdout] 4503 |     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] 4503 |     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:5082:42
[INFO] [stdout]      |
[INFO] [stdout] 5082 |     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] 5082 |     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:5128:24
[INFO] [stdout]      |
[INFO] [stdout] 5128 |                     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:5128:24
[INFO] [stdout]      |
[INFO] [stdout] 5128 |                     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] 5128 |                     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:5261:24
[INFO] [stdout]      |
[INFO] [stdout] 5261 |                     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:5261:24
[INFO] [stdout]      |
[INFO] [stdout] 5261 |                     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] 5261 |                     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:5394:24
[INFO] [stdout]      |
[INFO] [stdout] 5394 |                     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:5394:24
[INFO] [stdout]      |
[INFO] [stdout] 5394 |                     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] 5394 |                     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:6157:57
[INFO] [stdout]      |
[INFO] [stdout] 6157 |     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] 6157 |     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:6175:57
[INFO] [stdout]      |
[INFO] [stdout] 6175 |     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] 6175 |     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:6193:53
[INFO] [stdout]      |
[INFO] [stdout] 6193 |     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] 6193 |     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:6222:53
[INFO] [stdout]      |
[INFO] [stdout] 6222 |     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] 6222 |     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:6227:33
[INFO] [stdout]      |
[INFO] [stdout] 6227 |                     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:6227:33
[INFO] [stdout]      |
[INFO] [stdout] 6227 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 6227 |                     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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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.22s
[INFO] running `Command { std: "docker" "inspect" "6c68631fe731213d22beb0f894ea95b56930b10d0453ac7d84155d66a1357e55", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6c68631fe731213d22beb0f894ea95b56930b10d0453ac7d84155d66a1357e55", kill_on_drop: false }`
[INFO] [stdout] 6c68631fe731213d22beb0f894ea95b56930b10d0453ac7d84155d66a1357e55
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 79afaa5fd9c57f1028d2700dfdfff6276df96013c864278e5534125cc8b5fe49
[INFO] running `Command { std: "docker" "start" "-a" "79afaa5fd9c57f1028d2700dfdfff6276df96013c864278e5534125cc8b5fe49", 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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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:3760:23
[INFO] [stdout]      |
[INFO] [stdout] 3760 |     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] 3760 |     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:4125:23
[INFO] [stdout]      |
[INFO] [stdout] 4125 |     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] 4125 |     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:4322:25
[INFO] [stdout]      |
[INFO] [stdout] 4322 |             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:4322:25
[INFO] [stdout]      |
[INFO] [stdout] 4322 |             c : vec![0; (*data).len()],
[INFO] [stdout]      |                         ^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4322 |             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:4503:23
[INFO] [stdout]      |
[INFO] [stdout] 4503 |     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] 4503 |     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:5082:42
[INFO] [stdout]      |
[INFO] [stdout] 5082 |     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] 5082 |     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:5128:24
[INFO] [stdout]      |
[INFO] [stdout] 5128 |                     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:5128:24
[INFO] [stdout]      |
[INFO] [stdout] 5128 |                     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] 5128 |                     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:5261:24
[INFO] [stdout]      |
[INFO] [stdout] 5261 |                     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:5261:24
[INFO] [stdout]      |
[INFO] [stdout] 5261 |                     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] 5261 |                     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:5394:24
[INFO] [stdout]      |
[INFO] [stdout] 5394 |                     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:5394:24
[INFO] [stdout]      |
[INFO] [stdout] 5394 |                     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] 5394 |                     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:6157:57
[INFO] [stdout]      |
[INFO] [stdout] 6157 |     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] 6157 |     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:6175:57
[INFO] [stdout]      |
[INFO] [stdout] 6175 |     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] 6175 |     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:6193:53
[INFO] [stdout]      |
[INFO] [stdout] 6193 |     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] 6193 |     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:6222:53
[INFO] [stdout]      |
[INFO] [stdout] 6222 |     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] 6222 |     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:6227:33
[INFO] [stdout]      |
[INFO] [stdout] 6227 |                     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:6227:33
[INFO] [stdout]      |
[INFO] [stdout] 6227 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 6227 |                     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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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] [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: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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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:3760:23
[INFO] [stdout]      |
[INFO] [stdout] 3760 |     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] 3760 |     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:4125:23
[INFO] [stdout]      |
[INFO] [stdout] 4125 |     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] 4125 |     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:4322:25
[INFO] [stdout]      |
[INFO] [stdout] 4322 |             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:4322:25
[INFO] [stdout]      |
[INFO] [stdout] 4322 |             c : vec![0; (*data).len()],
[INFO] [stdout]      |                         ^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 4322 |             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:4503:23
[INFO] [stdout]      |
[INFO] [stdout] 4503 |     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] 4503 |     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:5082:42
[INFO] [stdout]      |
[INFO] [stdout] 5082 |     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] 5082 |     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:5128:24
[INFO] [stdout]      |
[INFO] [stdout] 5128 |                     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:5128:24
[INFO] [stdout]      |
[INFO] [stdout] 5128 |                     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] 5128 |                     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:5261:24
[INFO] [stdout]      |
[INFO] [stdout] 5261 |                     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:5261:24
[INFO] [stdout]      |
[INFO] [stdout] 5261 |                     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] 5261 |                     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:5394:24
[INFO] [stdout]      |
[INFO] [stdout] 5394 |                     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:5394:24
[INFO] [stdout]      |
[INFO] [stdout] 5394 |                     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] 5394 |                     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:6157:57
[INFO] [stdout]      |
[INFO] [stdout] 6157 |     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] 6157 |     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:6175:57
[INFO] [stdout]      |
[INFO] [stdout] 6175 |     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] 6175 |     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:6193:53
[INFO] [stdout]      |
[INFO] [stdout] 6193 |     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] 6193 |     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:6222:53
[INFO] [stdout]      |
[INFO] [stdout] 6222 |     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] 6222 |     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:6227:33
[INFO] [stdout]      |
[INFO] [stdout] 6227 |                     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:6227:33
[INFO] [stdout]      |
[INFO] [stdout] 6227 |                     c : vec![0; (**self).len()],
[INFO] [stdout]      |                                 ^^^^^^^^
[INFO] [stdout] note: method calls to `len` require a reference
[INFO] [stdout]     --> /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 6227 |                     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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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 5.24s
[INFO] running `Command { std: "docker" "inspect" "79afaa5fd9c57f1028d2700dfdfff6276df96013c864278e5534125cc8b5fe49", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "79afaa5fd9c57f1028d2700dfdfff6276df96013c864278e5534125cc8b5fe49", kill_on_drop: false }`
[INFO] [stdout] 79afaa5fd9c57f1028d2700dfdfff6276df96013c864278e5534125cc8b5fe49
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3fe8c716a95b5cd6870f0d75515702490fa2197089bad884771af30e174d9566
[INFO] running `Command { std: "docker" "start" "-a" "3fe8c716a95b5cd6870f0d75515702490fa2197089bad884771af30e174d9566", 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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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:3760:23
[INFO] [stderr]      |
[INFO] [stderr] 3760 |     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] 3760 |     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:4125:23
[INFO] [stderr]      |
[INFO] [stderr] 4125 |     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] 4125 |     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:4322:25
[INFO] [stderr]      |
[INFO] [stderr] 4322 |             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:4322:25
[INFO] [stderr]      |
[INFO] [stderr] 4322 |             c : vec![0; (*data).len()],
[INFO] [stderr]      |                         ^^^^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 4322 |             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:4503:23
[INFO] [stderr]      |
[INFO] [stderr] 4503 |     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] 4503 |     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:5082:42
[INFO] [stderr]      |
[INFO] [stderr] 5082 |     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] 5082 |     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:5128:24
[INFO] [stderr]      |
[INFO] [stderr] 5128 |                     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:5128:24
[INFO] [stderr]      |
[INFO] [stderr] 5128 |                     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] 5128 |                     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:5261:24
[INFO] [stderr]      |
[INFO] [stderr] 5261 |                     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:5261:24
[INFO] [stderr]      |
[INFO] [stderr] 5261 |                     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] 5261 |                     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:5394:24
[INFO] [stderr]      |
[INFO] [stderr] 5394 |                     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:5394:24
[INFO] [stderr]      |
[INFO] [stderr] 5394 |                     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] 5394 |                     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:6157:57
[INFO] [stderr]      |
[INFO] [stderr] 6157 |     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] 6157 |     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:6175:57
[INFO] [stderr]      |
[INFO] [stderr] 6175 |     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] 6175 |     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:6193:53
[INFO] [stderr]      |
[INFO] [stderr] 6193 |     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] 6193 |     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:6222:53
[INFO] [stderr]      |
[INFO] [stderr] 6222 |     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] 6222 |     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:6227:33
[INFO] [stderr]      |
[INFO] [stderr] 6227 |                     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:6227:33
[INFO] [stderr]      |
[INFO] [stderr] 6227 |                     c : vec![0; (**self).len()],
[INFO] [stderr]      |                                 ^^^^^^^^
[INFO] [stderr] note: method calls to `len` require a reference
[INFO] [stderr]     --> /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 6227 |                     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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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] [stdout] 
[INFO] [stderr]      |                        ^^^^^^^^^^^^^
[INFO] [stdout] running 182 tests
[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/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/slice/mod.rs:116:4
[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.14s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/permutator-20c4bd2524137266)
[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_reset ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_mimic_iterator_2 ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_mimic_iterator ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_iterator_alike_shared_result ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_ptr_trait ... ok
[INFO] [stdout] test copy::test::test_GosperCombinationCellIter ... ok
[INFO] [stdout] test copy::test::test_GosperCombinationIteratorUnsafe ... ok
[INFO] [stdout] test copy::test::test_GosperCombinationIteratorAlike_reset ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_shared_trait ... ok
[INFO] [stdout] test copy::test::test_HeapPermutation ... ok
[INFO] [stdout] test copy::test::test_GosperCombinationIterator ... ok
[INFO] [stdout] test copy::test::test_HeapPermutationCellIterIterator ... ok
[INFO] [stdout] test copy::test::test_HeapPermutationIntoIterator ... ok
[INFO] [stdout] test copy::test::test_HeapPermutation_reset ... ok
[INFO] [stdout] test copy::test::test_HeapPermutationIterator ... ok
[INFO] [stdout] test copy::test::test_HeapPermutationRefIterator ... ok
[INFO] [stdout] test copy::test::test_KPermutationIterator ... ok
[INFO] [stdout] test copy::test::test_KPermutation_into_Ref_trait ... ok
[INFO] [stdout] test copy::test::test_KPermutation_into_cell_trait ... ok
[INFO] [stdout] test copy::test::test_KPermutation_single_term ... ok
[INFO] [stdout] test copy::test::test_SelfCartesianProduct_ref ... ok
[INFO] [stdout] test copy::test::test_XPermutationIterator_mt ... ignored
[INFO] [stdout] test copy::test::test_XPermutationCellIter ... ok
[INFO] [stdout] test copy::test::test_KPermutation_trait ... ok
[INFO] [stdout] test copy::test::test_XPermutationIterator ... ok
[INFO] [stdout] test copy::test::test_cartesian_product ... ok
[INFO] [stdout] test copy::test::test_cartesian_product_shared_result_fn ... ok
[INFO] [stdout] test copy::test::test_combination_fn ... ok
[INFO] [stdout] test copy::test::test_combination_cell_fn ... ok
[INFO] [stdout] test copy::test::test_combination_trait_share ... ok
[INFO] [stdout] test copy::test::test_heap_permutation_6 ... ok
[INFO] [stdout] test copy::test::test_get_permutation_for ... ok
[INFO] [stdout] test copy::test::test_get_cartesian_for ... ok
[INFO] [stdout] test copy::test::test_k_permutation ... ok
[INFO] [stdout] test copy::test::test_k_permutation_ref_single_term ... ok
[INFO] [stdout] test copy::test::test_permutation_trait ... ok
[INFO] [stdout] test copy::test::test_KPermutation_into_Ref ... ok
[INFO] [stdout] test copy::test::test_XPermutationRefIter ... ok
[INFO] [stdout] test copy::test::test_permutation_trait_cell ... ok
[INFO] [stdout] test copy::test::test_KPermutation_into_Cell ... ok
[INFO] [stdout] test copy::test::test_SelfCartesianProduct_cell ... ok
[INFO] [stdout] test copy::test::test_permutation_trait_ref ... 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_self_cartesian_product ... ok
[INFO] [stdout] test copy::test::test_k_permutation_primitive ... ok
[INFO] [stdout] test copy::test::test_self_cartesian_product_shared_result_fn ... ok
[INFO] [stdout] test copy::test::test_shared_KPermutation_result ... ok
[INFO] [stdout] test copy::test::test_shared_combination_result_fn ... ok
[INFO] [stdout] test copy::test::test_shared_combination_result_iterator_alike ... ok
[INFO] [stdout] test copy::test::test_unsafe_cartesian_product_shared_result ... ok
[INFO] [stdout] test copy::test::test_unsafe_combination_fn ... ok
[INFO] [stdout] test copy::test::test_unsafe_k_permutation ... ok
[INFO] [stdout] test copy::test::test_shared_k_permutation_result_fn ... ok
[INFO] [stdout] test copy::test::test_unsafe_x_permutation ... ok
[INFO] [stdout] test copy::test::test_x_permutation ... ok
[INFO] [stdout] test copy::test::test_x_permutation_cell ... ok
[INFO] [stdout] test copy::test::test_x_permutation_restricted ... ok
[INFO] [stdout] test copy::test::test_x_permutation_sync ... ok
[INFO] [stdout] test test::bench_cart_fn ... ignored
[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_iterator_alike_shared_result ... ok
[INFO] [stdout] test test::test_CartesianProduct_mimic_iterator ... ok
[INFO] [stdout] test test::test_CartesianProduct_mimic_iterator_2 ... ok
[INFO] [stdout] test test::test_CartesianProduct_ptr_trait ... ok
[INFO] [stdout] test copy::test::test_CartesianProduct_trait ... ok
[INFO] [stdout] test copy::test::test_SelfCartesianProduct ... ok
[INFO] [stdout] test copy::test::test_unsafe_cartesian_product ... ok
[INFO] [stdout] test copy::test::test_unsafe_self_cartesian_product_shared_result ... ok
[INFO] [stdout] test test::test_GosperCombinationCellIter ... ok
[INFO] [stdout] test test::test_GosperCombinationIterator ... ok
[INFO] [stdout] test copy::test::test_unsafe_shared_k_permutation_result_fn ... ok
[INFO] [stdout] test test::test_CartesianProduct_shared_trait ... ok
[INFO] [stdout] test copy::test::test_share_CartesianProductIterator_result_to_thread ... ok
[INFO] [stdout] test copy::test::test_tldr_case ... ok
[INFO] [stdout] test test::test_CartesianProduct_trait ... ok
[INFO] [stdout] test test::test_GosperCombinationIteratorAlike_reset ... ok
[INFO] [stdout] test test::test_HeapPermutation ... ok
[INFO] [stdout] test test::test_GosperCombinationIteratorUnsafe ... ok
[INFO] [stdout] test test::test_HeapPermutation_reset ... ok
[INFO] [stdout] test test::test_KPermutationIterator ... ok
[INFO] [stdout] test copy::test::test_unsafe_shared_combination_result_fn ... ok
[INFO] [stdout] test test::test_KPermutationIteratorBound ... ok
[INFO] [stdout] test test::test_KPermutation_into_Cell ... ok
[INFO] [stdout] test test::test_KPermutation_into_Ref ... ok
[INFO] [stdout] test test::test_KPermutation_into_Ref_trait ... ok
[INFO] [stdout] test test::test_LargeCombinationIterator ... ok
[INFO] [stdout] test test::test_KPermutation_into_cell_trait ... ok
[INFO] [stdout] test test::test_KPermutation_single ... ok
[INFO] [stdout] test test::test_KPermutation_trait ... ok
[INFO] [stdout] test test::test_LargeCombinationIterator_single ... ok
[INFO] [stdout] test test::test_HeapPermutationCellIterIterator ... ok
[INFO] [stdout] test test::test_SelfCartesianProduct_ref ... ok
[INFO] [stdout] test test::test_XPermutationIterator ... ok
[INFO] [stdout] test test::test_HeapPermutationIntoIterator ... ok
[INFO] [stdout] test test::test_XPermutationCellIter ... ok
[INFO] [stdout] test test::test_SelfCartesianProduct ... ok
[INFO] [stdout] test test::test_XPermutationIterator_mt ... ignored
[INFO] [stdout] test test::test_XPermutationRefIter ... ok
[INFO] [stdout] test test::test_cartesian_product_shared_result_fn ... ok
[INFO] [stdout] test test::test_case_15 ... ok
[INFO] [stdout] test test::test_cartesian_product ... ok
[INFO] [stdout] test test::test_case_16 ... ok
[INFO] [stdout] test test::test_combination_fn_bound ... 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_SelfCartesianProduct_cell ... ok
[INFO] [stdout] test copy::test::test_shared_cartesian_product_result_sync_fn ... ok
[INFO] [stdout] test test::test_get_permutation_for ... ok
[INFO] [stdout] test test::test_combination_trait ... ok
[INFO] [stdout] test test::test_get_cartesian_for ... 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_heap_permutation_6 ... ok
[INFO] [stdout] test test::test_combination_trait_share ... ok
[INFO] [stdout] test test::test_combination_trait_ptr ... 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_k_permutation ... ignored
[INFO] [stdout] test test::test_large_combination_fn_k_1 ... ok
[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 ... ok
[INFO] [stdout] test test::test_self_cartesian_product ... ok
[INFO] [stdout] test test::test_permutation_trait_ref ... ok
[INFO] [stdout] test test::test_permutation_trait_cell ... ok
[INFO] [stdout] test test::test_self_cartesian_product_shared_result_fn ... ok
[INFO] [stdout] test test::test_share_result_CombinationIterator_with_thread_fn ... ok
[INFO] [stdout] test test::test_share_result_KPermutation_iterator_sync ... ok
[INFO] [stdout] test test::test_k_permutation_primitive ... ok
[INFO] [stdout] test test::test_large_combination_fn_d_eq_k ... ok
[INFO] [stdout] test test::test_share_CartesianProductIterator_result_to_thread ... ok
[INFO] [stdout] test test::test_shared_KPermutation_result ... ok
[INFO] [stdout] test test::test_shared_combination_result_iterator_alike ... ok
[INFO] [stdout] test test::test_shared_combination_result_fn ... ok
[INFO] [stdout] test test::test_shared_CartesianProduct_result_sync ... ok
[INFO] [stdout] test test::test_shared_k_permutation_result_fn ... ok
[INFO] [stdout] test test::test_tldr_case ... ok
[INFO] [stdout] test test::test_unsafe_cartesian_product ... ok
[INFO] [stdout] test test::test_shared_combination_result_sync_fn ... 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_unsafe_shared_combination_result_fn ... ok
[INFO] [stdout] test test::test_unsafe_shared_k_permutation_result_fn ... ok
[INFO] [stdout] test test::test_unsafe_x_permutation ... ok
[INFO] [stdout] test test::test_unsafe_cartesian_product_shared_result ... ok
[INFO] [stdout] test test::test_x_permutation_cell ... ok
[INFO] [stdout] test test::test_x_permutation_restricted ... ok
[INFO] [stdout] test test::test_x_permutation_sync ... ok
[INFO] [stdout] test test::test_x_permutation ... ok
[INFO] [stdout] test test::test_shared_cartesian_product_result_sync_fn ... ok
[INFO] [stdout] test copy::test::test_shared_CartesianProduct_result_sync ... ok
[INFO] [stdout] test copy::test::test_share_result_KPermutation_iterator_sync ... ok
[INFO] [stdout] test test::test_shared_k_permutation_sync_fn ... ok
[INFO] [stdout] test test::test_CartesianProduct_reset ... ok
[INFO] [stdout] test test::test_HeapPermutationRefIterator ... ok
[INFO] [stdout] test copy::test::test_share_result_CombinationIterator_with_thread_fn ... 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.58s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests permutator
[INFO] [stdout] 
[INFO] [stdout] running 92 tests
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProductCellIter (line 2293) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::LargeCombinationRefIter (line 3258) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::Permutation (line 4900) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProductRefIter (line 2427) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::GosperCombinationCellIter (line 2717) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::LargeCombinationIterator (line 3026) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::GosperCombinationIterator (line 2574) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::GosperCombinationRefIter (line 2883) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::KPermutationCellIter (line 3490) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::Combination (line 4794) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::cartesian_product (line 256) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::KPermutationRefIter (line 3639) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::KPermutationIterator (line 3363) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::SelfCartesianProductIterator (line 3759) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProductIterator (line 2180) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::SelfCartesianProductCellIter (line 3877) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::SelfCartesianProductRefIter (line 4000) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProduct (line 4606) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::combination_cell (line 1116) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::k_permutation (line 1533) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::LargeCombinationCellIter (line 3131) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::combination (line 960) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::Permutation (line 4910) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::get_cartesian_for (line 77) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::self_cartesian_product_cell (line 762) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::CartesianProduct (line 4623) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::self_cartesian_product (line 605) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::unsafe_cartesian_product (line 321) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::get_permutation_for (line 142) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::cartesian_product_cell (line 414) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::k_permutation_cell (line 1705) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::get_permutation_size (line 117) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::unsafe_self_cartesian_product (line 667) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::cartesian_product_sync (line 507) ... ok
[INFO] [stdout] test src/lib.rs - (line 66) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::unsafe_k_permutation (line 1599) ... ok
[INFO] [stdout] test src/lib.rs - (line 52) ... ok
[INFO] [stdout] test src/lib.rs - (line 40) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProductCellIter (line 2830) ... ok
[INFO] [stdout] test src/lib.rs - Combination (line 5988) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProductIterator (line 2717) ... ok
[INFO] [stdout] test src/lib.rs - (line 28) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProduct (line 5824) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProductRefIter (line 2964) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::combination_sync (line 1220) ... ok
[INFO] [stdout] test src/lib.rs - (line 88) ... ok
[INFO] [stdout] test src/lib.rs - CartesianProduct (line 5807) ... ok
[INFO] [stdout] test src/lib.rs - LargeCombinationIterator (line 3725) ... FAILED
[INFO] [stdout] test src/lib.rs - GosperCombinationIterator (line 3136) ... ok
[INFO] [stdout] test src/lib.rs - HeapPermutationCellIter (line 4197) ... ok
[INFO] [stdout] test src/lib.rs - GosperCombinationRefIter (line 3469) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::unsafe_combination (line 1019) ... ok
[INFO] [stdout] test src/lib.rs - GosperCombinationCellIter (line 3283) ... ok
[INFO] [stdout] test src/lib.rs - HeapPermutationRefIter (line 4282) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::self_cartesian_product_sync (line 857) ... ok
[INFO] [stdout] test src/lib.rs - KPermutationCellIter (line 4582) ... ok
[INFO] [stdout] test src/lib.rs - LargeCombinationCellIter (line 3836) ... ok
[INFO] [stdout] test src/lib.rs - KPermutationIterator (line 4454) ... ok
[INFO] [stdout] test src/lib.rs - Permutation (line 6099) ... ok
[INFO] [stdout] test src/lib.rs - SelfCartesianProductCellIter (line 5557) ... ok
[INFO] [stdout] test src/lib.rs - LargeCombinationRefIter (line 3962) ... ok
[INFO] [stdout] test src/lib.rs - cartesian_product_cell (line 545) ... ok
[INFO] [stdout] test src/lib.rs - SelfCartesianProductIterator (line 5439) ... ok
[INFO] [stdout] test src/lib.rs - LargeCombinationIterator (line 3731) ... ok
[INFO] [stdout] test src/lib.rs - KPermutationRefIter (line 4731) ... ok
[INFO] [stdout] test src/lib.rs - cartesian_product (line 387) ... ok
[INFO] [stdout] test src/lib.rs - combination_cell (line 1244) ... ok
[INFO] [stdout] test src/lib.rs - combination (line 1088) ... ok
[INFO] [stdout] test src/lib.rs - SelfCartesianProductRefIter (line 5680) ... ok
[INFO] [stdout] test src/lib.rs - get_cartesian_size (line 137) ... ok
[INFO] [stdout] test src/lib.rs - get_permutation_for (line 225) ... ok
[INFO] [stdout] test src/lib.rs - get_cartesian_for (line 160) ... ok
[INFO] [stdout] test src/lib.rs - get_permutation_size (line 200) ... ok
[INFO] [stdout] test src/copy/mod.rs - copy::k_permutation_sync (line 1810) ... ok
[INFO] [stdout] test src/lib.rs - Permutation (line 6109) ... ok
[INFO] [stdout] test src/lib.rs - heap_permutation (line 1710) ... ok
[INFO] [stdout] test src/lib.rs - divide_factorial (line 6370) ... ok
[INFO] [stdout] test src/lib.rs - HeapPermutationIterator (line 4094) ... ok
[INFO] [stdout] test src/lib.rs - self_cartesian_product (line 729) ... 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_k_permutation (line 1950) ... ok
[INFO] [stdout] test src/lib.rs - multiply_factorial (line 6395) ... ok
[INFO] [stdout] test src/lib.rs - self_cartesian_product_sync (line 985) ... ok
[INFO] [stdout] test src/lib.rs - k_permutation_cell (line 2057) ... ok
[INFO] [stdout] test src/lib.rs - k_permutation (line 1878) ... ok
[INFO] [stdout] test src/lib.rs - cartesian_product_sync (line 638) ... ok
[INFO] [stdout] test src/lib.rs - unsafe_cartesian_product (line 452) ... ok
[INFO] [stdout] test src/lib.rs - self_cartesian_product_cell (line 890) ... ok
[INFO] [stdout] test src/lib.rs - unsafe_self_cartesian_product (line 795) ... ok
[INFO] [stdout] test src/lib.rs - combination_sync (line 1348) ... ok
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] [stdout] test src/lib.rs - k_permutation_sync (line 2163) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - LargeCombinationIterator (line 3725) stdout ----
[INFO] [stdout] error: expected item, found `[`
[INFO] [stdout]     --> src/lib.rs:3726:1
[INFO] [stdout]      |
[INFO] [stdout] 3726 | [1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4], [1, 2, 5],
[INFO] [stdout]      | ^ expected item
[INFO] [stdout]      |
[INFO] [stdout]      = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - LargeCombinationIterator (line 3725)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 91 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.47s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3fe8c716a95b5cd6870f0d75515702490fa2197089bad884771af30e174d9566", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3fe8c716a95b5cd6870f0d75515702490fa2197089bad884771af30e174d9566", kill_on_drop: false }`
[INFO] [stdout] 3fe8c716a95b5cd6870f0d75515702490fa2197089bad884771af30e174d9566
