[INFO] cloning repository https://github.com/b-paul/rbtree
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/b-paul/rbtree" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fb-paul%2Frbtree", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fb-paul%2Frbtree'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] aeb515a29aa1a2bb2f96da75668e1406991a7544
[INFO] checking b-paul/rbtree against try#fa4dd1f19bfeb3fd235dc7f1406c42404436bef5 for pr-145108-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fb-paul%2Frbtree" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/b-paul/rbtree
[INFO] finished tweaking git repo https://github.com/b-paul/rbtree
[INFO] tweaked toml for git repo https://github.com/b-paul/rbtree written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/b-paul/rbtree on toolchain fa4dd1f19bfeb3fd235dc7f1406c42404436bef5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fa4dd1f19bfeb3fd235dc7f1406c42404436bef5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/b-paul/rbtree 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" "+fa4dd1f19bfeb3fd235dc7f1406c42404436bef5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+fa4dd1f19bfeb3fd235dc7f1406c42404436bef5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 66735366a596b685e1119c603f8de46ffe1c175137dde8e5050f56fc4d49c380
[INFO] running `Command { std: "docker" "start" "-a" "66735366a596b685e1119c603f8de46ffe1c175137dde8e5050f56fc4d49c380", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "66735366a596b685e1119c603f8de46ffe1c175137dde8e5050f56fc4d49c380", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "66735366a596b685e1119c603f8de46ffe1c175137dde8e5050f56fc4d49c380", kill_on_drop: false }`
[INFO] [stdout] 66735366a596b685e1119c603f8de46ffe1c175137dde8e5050f56fc4d49c380
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+fa4dd1f19bfeb3fd235dc7f1406c42404436bef5" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eed8397a19c0be70f20dca5703fdd7c72af9d0a19ba309c86be75d48d18ccc5e
[INFO] running `Command { std: "docker" "start" "-a" "eed8397a19c0be70f20dca5703fdd7c72af9d0a19ba309c86be75d48d18ccc5e", kill_on_drop: false }`
[INFO] [stderr]     Checking rbtree v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/lib.rs:97:24
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let opposite = (*root.as_ptr())[dir.opposite()];
[INFO] [stdout]    |                        ^^-------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]   --> src/lib.rs:97:24
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let opposite = (*root.as_ptr())[dir.opposite()];
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[deny(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] 97 |         let opposite = (&(*root.as_ptr()))[dir.opposite()];
[INFO] [stdout]    |                        ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:100:22
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let middle = (*opposite.as_ptr())[dir];
[INFO] [stdout]     |                      ^^-----------------^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:100:22
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let middle = (*opposite.as_ptr())[dir];
[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] 100 |         let middle = (&(*opposite.as_ptr()))[dir];
[INFO] [stdout]     |                      ++                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         (*root.as_ptr())[dir.opposite()] = middle;
[INFO] [stdout]     |         ^^-------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         (*root.as_ptr())[dir.opposite()] = middle;
[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] 102 |         (&mut (*root.as_ptr()))[dir.opposite()] = middle;
[INFO] [stdout]     |         +++++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         (*opposite.as_ptr())[dir] = Some(root);
[INFO] [stdout]     |         ^^-----------------^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         (*opposite.as_ptr())[dir] = Some(root);
[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] 106 |         (&mut (*opposite.as_ptr()))[dir] = Some(root);
[INFO] [stdout]     |         +++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:111:40
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 let parent_dir = match (*parent.as_ptr())[Direction::Left] == Some(root) {
[INFO] [stdout]     |                                        ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:111:40
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 let parent_dir = match (*parent.as_ptr())[Direction::Left] == Some(root) {
[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] 111 |                 let parent_dir = match (&(*parent.as_ptr()))[Direction::Left] == Some(root) {
[INFO] [stdout]     |                                        ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 (*parent.as_ptr())[parent_dir] = Some(opposite);
[INFO] [stdout]     |                 ^^---------------^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 (*parent.as_ptr())[parent_dir] = Some(opposite);
[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] 115 |                 (&mut (*parent.as_ptr()))[parent_dir] = Some(opposite);
[INFO] [stdout]     |                 +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:138:35
[INFO] [stdout]     |
[INFO] [stdout] 138 |                 if Some(point) == (*parent.as_ptr())[Direction::Left] {
[INFO] [stdout]     |                                   ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:138:35
[INFO] [stdout]     |
[INFO] [stdout] 138 |                 if Some(point) == (*parent.as_ptr())[Direction::Left] {
[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] 138 |                 if Some(point) == (&(*parent.as_ptr()))[Direction::Left] {
[INFO] [stdout]     |                                   ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     (*parent.as_ptr())[Direction::Left] = new;
[INFO] [stdout]     |                     ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     (*parent.as_ptr())[Direction::Left] = new;
[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] 139 |                     (&mut (*parent.as_ptr()))[Direction::Left] = new;
[INFO] [stdout]     |                     +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:141:21
[INFO] [stdout]     |
[INFO] [stdout] 141 |                     (*parent.as_ptr())[Direction::Right] = new;
[INFO] [stdout]     |                     ^^---------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:141:21
[INFO] [stdout]     |
[INFO] [stdout] 141 |                     (*parent.as_ptr())[Direction::Right] = new;
[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] 141 |                     (&mut (*parent.as_ptr()))[Direction::Right] = new;
[INFO] [stdout]     |                     +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:152:41
[INFO] [stdout]     |
[INFO] [stdout] 152 |         while let Some(node) = unsafe { (*root.as_ptr())[Direction::Left] } {
[INFO] [stdout]     |                                         ^^-------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:152:41
[INFO] [stdout]     |
[INFO] [stdout] 152 |         while let Some(node) = unsafe { (*root.as_ptr())[Direction::Left] } {
[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] 152 |         while let Some(node) = unsafe { (&(*root.as_ptr()))[Direction::Left] } {
[INFO] [stdout]     |                                         ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:160:41
[INFO] [stdout]     |
[INFO] [stdout] 160 |         while let Some(node) = unsafe { (*root.as_ptr())[Direction::Right] } {
[INFO] [stdout]     |                                         ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:160:41
[INFO] [stdout]     |
[INFO] [stdout] 160 |         while let Some(node) = unsafe { (*root.as_ptr())[Direction::Right] } {
[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] 160 |         while let Some(node) = unsafe { (&(*root.as_ptr()))[Direction::Right] } {
[INFO] [stdout]     |                                         ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:354:26
[INFO] [stdout]     |
[INFO] [stdout] 354 |                 unsafe { (*parent.as_ptr())[dir] = cur };
[INFO] [stdout]     |                          ^^---------------^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:354:26
[INFO] [stdout]     |
[INFO] [stdout] 354 |                 unsafe { (*parent.as_ptr())[dir] = cur };
[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] 354 |                 unsafe { (&mut (*parent.as_ptr()))[dir] = cur };
[INFO] [stdout]     |                          +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:378:56
[INFO] [stdout]     |
[INFO] [stdout] 378 |                         match Some(parent) == unsafe { (*grandparent.as_ptr())[Direction::Left] } {
[INFO] [stdout]     |                                                        ^^--------------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:378:56
[INFO] [stdout]     |
[INFO] [stdout] 378 |                         match Some(parent) == unsafe { (*grandparent.as_ptr())[Direction::Left] } {
[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] 378 |                         match Some(parent) == unsafe { (&(*grandparent.as_ptr()))[Direction::Left] } {
[INFO] [stdout]     |                                                        ++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:382:42
[INFO] [stdout]     |
[INFO] [stdout] 382 |                     let uncle = unsafe { (*grandparent.as_ptr())[grandparent_dir.opposite()] };
[INFO] [stdout]     |                                          ^^--------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:382:42
[INFO] [stdout]     |
[INFO] [stdout] 382 |                     let uncle = unsafe { (*grandparent.as_ptr())[grandparent_dir.opposite()] };
[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] 382 |                     let uncle = unsafe { (&(*grandparent.as_ptr()))[grandparent_dir.opposite()] };
[INFO] [stdout]     |                                          ++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:397:51
[INFO] [stdout]     |
[INFO] [stdout] 397 |                         if Some(node) == unsafe { (*parent.as_ptr())[grandparent_dir.opposite()] } {
[INFO] [stdout]     |                                                   ^^---------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:397:51
[INFO] [stdout]     |
[INFO] [stdout] 397 |                         if Some(node) == unsafe { (*parent.as_ptr())[grandparent_dir.opposite()] } {
[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] 397 |                         if Some(node) == unsafe { (&(*parent.as_ptr()))[grandparent_dir.opposite()] } {
[INFO] [stdout]     |                                                   ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:432:21
[INFO] [stdout]     |
[INFO] [stdout] 432 |         if unsafe { (*node.as_ptr())[Direction::Left].is_none() } {
[INFO] [stdout]     |                     ^^-------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:432:21
[INFO] [stdout]     |
[INFO] [stdout] 432 |         if unsafe { (*node.as_ptr())[Direction::Left].is_none() } {
[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] 432 |         if unsafe { (&(*node.as_ptr()))[Direction::Left].is_none() } {
[INFO] [stdout]     |                     ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:434:31
[INFO] [stdout]     |
[INFO] [stdout] 434 |                 replacement = (*node.as_ptr())[Direction::Right];
[INFO] [stdout]     |                               ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:434:31
[INFO] [stdout]     |
[INFO] [stdout] 434 |                 replacement = (*node.as_ptr())[Direction::Right];
[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] 434 |                 replacement = (&(*node.as_ptr()))[Direction::Right];
[INFO] [stdout]     |                               ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:438:28
[INFO] [stdout]     |
[INFO] [stdout] 438 |         } else if unsafe { (*node.as_ptr())[Direction::Right].is_none() } {
[INFO] [stdout]     |                            ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:438:28
[INFO] [stdout]     |
[INFO] [stdout] 438 |         } else if unsafe { (*node.as_ptr())[Direction::Right].is_none() } {
[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] 438 |         } else if unsafe { (&(*node.as_ptr()))[Direction::Right].is_none() } {
[INFO] [stdout]     |                            ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:440:31
[INFO] [stdout]     |
[INFO] [stdout] 440 |                 replacement = (*node.as_ptr())[Direction::Left];
[INFO] [stdout]     |                               ^^-------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:440:31
[INFO] [stdout]     |
[INFO] [stdout] 440 |                 replacement = (*node.as_ptr())[Direction::Left];
[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] 440 |                 replacement = (&(*node.as_ptr()))[Direction::Left];
[INFO] [stdout]     |                               ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:448:41
[INFO] [stdout]     |
[INFO] [stdout] 448 |                 let min = self.min_node((*node.as_ptr())[Direction::Right]);
[INFO] [stdout]     |                                         ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:448:41
[INFO] [stdout]     |
[INFO] [stdout] 448 |                 let min = self.min_node((*node.as_ptr())[Direction::Right]);
[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] 448 |                 let min = self.min_node((&(*node.as_ptr()))[Direction::Right]);
[INFO] [stdout]     |                                         ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:453:31
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 replacement = (*min.as_ptr())[Direction::Right];
[INFO] [stdout]     |                               ^^------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:453:31
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 replacement = (*min.as_ptr())[Direction::Right];
[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] 453 |                 replacement = (&(*min.as_ptr()))[Direction::Right];
[INFO] [stdout]     |                               ++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:456:42
[INFO] [stdout]     |
[INFO] [stdout] 456 |                     self.transplant(min, (*min.as_ptr())[Direction::Right]);
[INFO] [stdout]     |                                          ^^------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:456:42
[INFO] [stdout]     |
[INFO] [stdout] 456 |                     self.transplant(min, (*min.as_ptr())[Direction::Right]);
[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] 456 |                     self.transplant(min, (&(*min.as_ptr()))[Direction::Right]);
[INFO] [stdout]     |                                          ++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:457:57
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     (*min.as_ptr())[Direction::Right] = (*node.as_ptr())[Direction::Right];
[INFO] [stdout]     |                                                         ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:457:57
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     (*min.as_ptr())[Direction::Right] = (*node.as_ptr())[Direction::Right];
[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] 457 |                     (*min.as_ptr())[Direction::Right] = (&(*node.as_ptr()))[Direction::Right];
[INFO] [stdout]     |                                                         ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:457:21
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     (*min.as_ptr())[Direction::Right] = (*node.as_ptr())[Direction::Right];
[INFO] [stdout]     |                     ^^------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:457:21
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     (*min.as_ptr())[Direction::Right] = (*node.as_ptr())[Direction::Right];
[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] 457 |                     (&mut (*min.as_ptr()))[Direction::Right] = (*node.as_ptr())[Direction::Right];
[INFO] [stdout]     |                     +++++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:458:23
[INFO] [stdout]     |
[INFO] [stdout] 458 |                     (*(*min.as_ptr())[Direction::Right]
[INFO] [stdout]     |                       ^^------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:458:23
[INFO] [stdout]     |
[INFO] [stdout] 458 |                     (*(*min.as_ptr())[Direction::Right]
[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] 458 |                     (*(&(*min.as_ptr()))[Direction::Right]
[INFO] [stdout]     |                       ++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:464:52
[INFO] [stdout]     |
[INFO] [stdout] 464 |                 (*min.as_ptr())[Direction::Left] = (*node.as_ptr())[Direction::Left];
[INFO] [stdout]     |                                                    ^^-------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:464:52
[INFO] [stdout]     |
[INFO] [stdout] 464 |                 (*min.as_ptr())[Direction::Left] = (*node.as_ptr())[Direction::Left];
[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] 464 |                 (*min.as_ptr())[Direction::Left] = (&(*node.as_ptr()))[Direction::Left];
[INFO] [stdout]     |                                                    ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:464:17
[INFO] [stdout]     |
[INFO] [stdout] 464 |                 (*min.as_ptr())[Direction::Left] = (*node.as_ptr())[Direction::Left];
[INFO] [stdout]     |                 ^^------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:464:17
[INFO] [stdout]     |
[INFO] [stdout] 464 |                 (*min.as_ptr())[Direction::Left] = (*node.as_ptr())[Direction::Left];
[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] 464 |                 (&mut (*min.as_ptr()))[Direction::Left] = (*node.as_ptr())[Direction::Left];
[INFO] [stdout]     |                 +++++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:465:19
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 (*(*min.as_ptr())[Direction::Left].unwrap_unchecked().as_ptr()).parent = Some(min);
[INFO] [stdout]     |                   ^^------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:465:19
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 (*(*min.as_ptr())[Direction::Left].unwrap_unchecked().as_ptr()).parent = Some(min);
[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] 465 |                 (*(&(*min.as_ptr()))[Direction::Left].unwrap_unchecked().as_ptr()).parent = Some(min);
[INFO] [stdout]     |                   ++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:479:66
[INFO] [stdout]     |
[INFO] [stdout] 479 |                     let sibling_direction = match replacement == (*parent.as_ptr())[Direction::Left]
[INFO] [stdout]     |                                                                  ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:479:66
[INFO] [stdout]     |
[INFO] [stdout] 479 |                     let sibling_direction = match replacement == (*parent.as_ptr())[Direction::Left]
[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] 479 |                     let sibling_direction = match replacement == (&(*parent.as_ptr()))[Direction::Left]
[INFO] [stdout]     |                                                                  ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:484:35
[INFO] [stdout]     |
[INFO] [stdout] 484 |                     let sibling = (*parent.as_ptr())[sibling_direction];
[INFO] [stdout]     |                                   ^^---------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:484:35
[INFO] [stdout]     |
[INFO] [stdout] 484 |                     let sibling = (*parent.as_ptr())[sibling_direction];
[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] 484 |                     let sibling = (&(*parent.as_ptr()))[sibling_direction];
[INFO] [stdout]     |                                   ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:498:35
[INFO] [stdout]     |
[INFO] [stdout] 498 |                         sibling = (*parent.as_ptr())[sibling_direction].unwrap_unchecked();
[INFO] [stdout]     |                                   ^^---------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:498:35
[INFO] [stdout]     |
[INFO] [stdout] 498 |                         sibling = (*parent.as_ptr())[sibling_direction].unwrap_unchecked();
[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] 498 |                         sibling = (&(*parent.as_ptr()))[sibling_direction].unwrap_unchecked();
[INFO] [stdout]     |                                   ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:512:28
[INFO] [stdout]     |
[INFO] [stdout] 512 |                         if (*sibling.as_ptr())[sibling_direction.opposite()]
[INFO] [stdout]     |                            ^^----------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:512:28
[INFO] [stdout]     |
[INFO] [stdout] 512 |                         if (*sibling.as_ptr())[sibling_direction.opposite()]
[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] 512 |                         if (&(*sibling.as_ptr()))[sibling_direction.opposite()]
[INFO] [stdout]     |                            ++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:516:41
[INFO] [stdout]     |
[INFO] [stdout] 516 | ...                   let child = (*sibling.as_ptr())[sibling_direction.opposite()]
[INFO] [stdout]     |                                   ^^----------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:516:41
[INFO] [stdout]     |
[INFO] [stdout] 516 | ...                   let child = (*sibling.as_ptr())[sibling_direction.opposite()]
[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] 516 |                             let child = (&(*sibling.as_ptr()))[sibling_direction.opposite()]
[INFO] [stdout]     |                                         ++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:532:46
[INFO] [stdout]     |
[INFO] [stdout] 532 |                         if let Some(child) = (*sibling.as_ptr())[sibling_direction] {
[INFO] [stdout]     |                                              ^^----------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:532:46
[INFO] [stdout]     |
[INFO] [stdout] 532 |                         if let Some(child) = (*sibling.as_ptr())[sibling_direction] {
[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] 532 |                         if let Some(child) = (&(*sibling.as_ptr()))[sibling_direction] {
[INFO] [stdout]     |                                              ++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:596:17
[INFO] [stdout]     |
[INFO] [stdout] 596 |     pub fn iter(&self) -> Iter<K, V> {
[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] 596 |     pub fn iter(&self) -> Iter<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:606:21
[INFO] [stdout]     |
[INFO] [stdout] 606 |     pub fn iter_mut(&self) -> IterMut<K, V> {
[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] 606 |     pub fn iter_mut(&self) -> IterMut<'_, K, V> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:616:24
[INFO] [stdout]     |
[INFO] [stdout] 616 |     pub fn sorted_iter(&self) -> SortedIter<K, V> {
[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] 616 |     pub fn sorted_iter(&self) -> SortedIter<'_, K, V> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:625:28
[INFO] [stdout]     |
[INFO] [stdout] 625 |     pub fn sorted_iter_mut(&mut self) -> SortedIterMut<K, V> {
[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] 625 |     pub fn sorted_iter_mut(&mut self) -> SortedIterMut<'_, K, V> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:888:45
[INFO] [stdout]     |
[INFO] [stdout] 888 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Right] } {
[INFO] [stdout]     |                                             ^^---------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:888:45
[INFO] [stdout]     |
[INFO] [stdout] 888 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Right] } {
[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] 888 |                 while Some(cur) == unsafe { (&(*parent.as_ptr()))[Direction::Right] } {
[INFO] [stdout]     |                                             ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:923:45
[INFO] [stdout]     |
[INFO] [stdout] 923 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Left] } {
[INFO] [stdout]     |                                             ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:923:45
[INFO] [stdout]     |
[INFO] [stdout] 923 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Left] } {
[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] 923 |                 while Some(cur) == unsafe { (&(*parent.as_ptr()))[Direction::Left] } {
[INFO] [stdout]     |                                             ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:968:45
[INFO] [stdout]     |
[INFO] [stdout] 968 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Right] } {
[INFO] [stdout]     |                                             ^^---------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:968:45
[INFO] [stdout]     |
[INFO] [stdout] 968 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Right] } {
[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] 968 |                 while Some(cur) == unsafe { (&(*parent.as_ptr()))[Direction::Right] } {
[INFO] [stdout]     |                                             ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:1003:45
[INFO] [stdout]      |
[INFO] [stdout] 1003 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Left] } {
[INFO] [stdout]      |                                             ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                               |
[INFO] [stdout]      |                                               this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]     --> src/lib.rs:1003:45
[INFO] [stdout]      |
[INFO] [stdout] 1003 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Left] } {
[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] 1003 |                 while Some(cur) == unsafe { (&(*parent.as_ptr()))[Direction::Left] } {
[INFO] [stdout]      |                                             ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rbtree` (lib) due to 38 previous errors; 4 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/lib.rs:97:24
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let opposite = (*root.as_ptr())[dir.opposite()];
[INFO] [stdout]    |                        ^^-------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]   --> src/lib.rs:97:24
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let opposite = (*root.as_ptr())[dir.opposite()];
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[deny(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] 97 |         let opposite = (&(*root.as_ptr()))[dir.opposite()];
[INFO] [stdout]    |                        ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:100:22
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let middle = (*opposite.as_ptr())[dir];
[INFO] [stdout]     |                      ^^-----------------^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:100:22
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let middle = (*opposite.as_ptr())[dir];
[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] 100 |         let middle = (&(*opposite.as_ptr()))[dir];
[INFO] [stdout]     |                      ++                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         (*root.as_ptr())[dir.opposite()] = middle;
[INFO] [stdout]     |         ^^-------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         (*root.as_ptr())[dir.opposite()] = middle;
[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] 102 |         (&mut (*root.as_ptr()))[dir.opposite()] = middle;
[INFO] [stdout]     |         +++++                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         (*opposite.as_ptr())[dir] = Some(root);
[INFO] [stdout]     |         ^^-----------------^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         (*opposite.as_ptr())[dir] = Some(root);
[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] 106 |         (&mut (*opposite.as_ptr()))[dir] = Some(root);
[INFO] [stdout]     |         +++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:111:40
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 let parent_dir = match (*parent.as_ptr())[Direction::Left] == Some(root) {
[INFO] [stdout]     |                                        ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:111:40
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 let parent_dir = match (*parent.as_ptr())[Direction::Left] == Some(root) {
[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] 111 |                 let parent_dir = match (&(*parent.as_ptr()))[Direction::Left] == Some(root) {
[INFO] [stdout]     |                                        ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 (*parent.as_ptr())[parent_dir] = Some(opposite);
[INFO] [stdout]     |                 ^^---------------^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 (*parent.as_ptr())[parent_dir] = Some(opposite);
[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] 115 |                 (&mut (*parent.as_ptr()))[parent_dir] = Some(opposite);
[INFO] [stdout]     |                 +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:138:35
[INFO] [stdout]     |
[INFO] [stdout] 138 |                 if Some(point) == (*parent.as_ptr())[Direction::Left] {
[INFO] [stdout]     |                                   ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:138:35
[INFO] [stdout]     |
[INFO] [stdout] 138 |                 if Some(point) == (*parent.as_ptr())[Direction::Left] {
[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] 138 |                 if Some(point) == (&(*parent.as_ptr()))[Direction::Left] {
[INFO] [stdout]     |                                   ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     (*parent.as_ptr())[Direction::Left] = new;
[INFO] [stdout]     |                     ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     (*parent.as_ptr())[Direction::Left] = new;
[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] 139 |                     (&mut (*parent.as_ptr()))[Direction::Left] = new;
[INFO] [stdout]     |                     +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:141:21
[INFO] [stdout]     |
[INFO] [stdout] 141 |                     (*parent.as_ptr())[Direction::Right] = new;
[INFO] [stdout]     |                     ^^---------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:141:21
[INFO] [stdout]     |
[INFO] [stdout] 141 |                     (*parent.as_ptr())[Direction::Right] = new;
[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] 141 |                     (&mut (*parent.as_ptr()))[Direction::Right] = new;
[INFO] [stdout]     |                     +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:152:41
[INFO] [stdout]     |
[INFO] [stdout] 152 |         while let Some(node) = unsafe { (*root.as_ptr())[Direction::Left] } {
[INFO] [stdout]     |                                         ^^-------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:152:41
[INFO] [stdout]     |
[INFO] [stdout] 152 |         while let Some(node) = unsafe { (*root.as_ptr())[Direction::Left] } {
[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] 152 |         while let Some(node) = unsafe { (&(*root.as_ptr()))[Direction::Left] } {
[INFO] [stdout]     |                                         ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:160:41
[INFO] [stdout]     |
[INFO] [stdout] 160 |         while let Some(node) = unsafe { (*root.as_ptr())[Direction::Right] } {
[INFO] [stdout]     |                                         ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:160:41
[INFO] [stdout]     |
[INFO] [stdout] 160 |         while let Some(node) = unsafe { (*root.as_ptr())[Direction::Right] } {
[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] 160 |         while let Some(node) = unsafe { (&(*root.as_ptr()))[Direction::Right] } {
[INFO] [stdout]     |                                         ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:354:26
[INFO] [stdout]     |
[INFO] [stdout] 354 |                 unsafe { (*parent.as_ptr())[dir] = cur };
[INFO] [stdout]     |                          ^^---------------^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:354:26
[INFO] [stdout]     |
[INFO] [stdout] 354 |                 unsafe { (*parent.as_ptr())[dir] = cur };
[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] 354 |                 unsafe { (&mut (*parent.as_ptr()))[dir] = cur };
[INFO] [stdout]     |                          +++++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:378:56
[INFO] [stdout]     |
[INFO] [stdout] 378 |                         match Some(parent) == unsafe { (*grandparent.as_ptr())[Direction::Left] } {
[INFO] [stdout]     |                                                        ^^--------------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:378:56
[INFO] [stdout]     |
[INFO] [stdout] 378 |                         match Some(parent) == unsafe { (*grandparent.as_ptr())[Direction::Left] } {
[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] 378 |                         match Some(parent) == unsafe { (&(*grandparent.as_ptr()))[Direction::Left] } {
[INFO] [stdout]     |                                                        ++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:382:42
[INFO] [stdout]     |
[INFO] [stdout] 382 |                     let uncle = unsafe { (*grandparent.as_ptr())[grandparent_dir.opposite()] };
[INFO] [stdout]     |                                          ^^--------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:382:42
[INFO] [stdout]     |
[INFO] [stdout] 382 |                     let uncle = unsafe { (*grandparent.as_ptr())[grandparent_dir.opposite()] };
[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] 382 |                     let uncle = unsafe { (&(*grandparent.as_ptr()))[grandparent_dir.opposite()] };
[INFO] [stdout]     |                                          ++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:397:51
[INFO] [stdout]     |
[INFO] [stdout] 397 |                         if Some(node) == unsafe { (*parent.as_ptr())[grandparent_dir.opposite()] } {
[INFO] [stdout]     |                                                   ^^---------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:397:51
[INFO] [stdout]     |
[INFO] [stdout] 397 |                         if Some(node) == unsafe { (*parent.as_ptr())[grandparent_dir.opposite()] } {
[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] 397 |                         if Some(node) == unsafe { (&(*parent.as_ptr()))[grandparent_dir.opposite()] } {
[INFO] [stdout]     |                                                   ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:432:21
[INFO] [stdout]     |
[INFO] [stdout] 432 |         if unsafe { (*node.as_ptr())[Direction::Left].is_none() } {
[INFO] [stdout]     |                     ^^-------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:432:21
[INFO] [stdout]     |
[INFO] [stdout] 432 |         if unsafe { (*node.as_ptr())[Direction::Left].is_none() } {
[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] 432 |         if unsafe { (&(*node.as_ptr()))[Direction::Left].is_none() } {
[INFO] [stdout]     |                     ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:434:31
[INFO] [stdout]     |
[INFO] [stdout] 434 |                 replacement = (*node.as_ptr())[Direction::Right];
[INFO] [stdout]     |                               ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:434:31
[INFO] [stdout]     |
[INFO] [stdout] 434 |                 replacement = (*node.as_ptr())[Direction::Right];
[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] 434 |                 replacement = (&(*node.as_ptr()))[Direction::Right];
[INFO] [stdout]     |                               ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:438:28
[INFO] [stdout]     |
[INFO] [stdout] 438 |         } else if unsafe { (*node.as_ptr())[Direction::Right].is_none() } {
[INFO] [stdout]     |                            ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:438:28
[INFO] [stdout]     |
[INFO] [stdout] 438 |         } else if unsafe { (*node.as_ptr())[Direction::Right].is_none() } {
[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] 438 |         } else if unsafe { (&(*node.as_ptr()))[Direction::Right].is_none() } {
[INFO] [stdout]     |                            ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:440:31
[INFO] [stdout]     |
[INFO] [stdout] 440 |                 replacement = (*node.as_ptr())[Direction::Left];
[INFO] [stdout]     |                               ^^-------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:440:31
[INFO] [stdout]     |
[INFO] [stdout] 440 |                 replacement = (*node.as_ptr())[Direction::Left];
[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] 440 |                 replacement = (&(*node.as_ptr()))[Direction::Left];
[INFO] [stdout]     |                               ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:448:41
[INFO] [stdout]     |
[INFO] [stdout] 448 |                 let min = self.min_node((*node.as_ptr())[Direction::Right]);
[INFO] [stdout]     |                                         ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:448:41
[INFO] [stdout]     |
[INFO] [stdout] 448 |                 let min = self.min_node((*node.as_ptr())[Direction::Right]);
[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] 448 |                 let min = self.min_node((&(*node.as_ptr()))[Direction::Right]);
[INFO] [stdout]     |                                         ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:453:31
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 replacement = (*min.as_ptr())[Direction::Right];
[INFO] [stdout]     |                               ^^------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:453:31
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 replacement = (*min.as_ptr())[Direction::Right];
[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] 453 |                 replacement = (&(*min.as_ptr()))[Direction::Right];
[INFO] [stdout]     |                               ++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:456:42
[INFO] [stdout]     |
[INFO] [stdout] 456 |                     self.transplant(min, (*min.as_ptr())[Direction::Right]);
[INFO] [stdout]     |                                          ^^------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:456:42
[INFO] [stdout]     |
[INFO] [stdout] 456 |                     self.transplant(min, (*min.as_ptr())[Direction::Right]);
[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] 456 |                     self.transplant(min, (&(*min.as_ptr()))[Direction::Right]);
[INFO] [stdout]     |                                          ++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:457:57
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     (*min.as_ptr())[Direction::Right] = (*node.as_ptr())[Direction::Right];
[INFO] [stdout]     |                                                         ^^-------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:457:57
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     (*min.as_ptr())[Direction::Right] = (*node.as_ptr())[Direction::Right];
[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] 457 |                     (*min.as_ptr())[Direction::Right] = (&(*node.as_ptr()))[Direction::Right];
[INFO] [stdout]     |                                                         ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:457:21
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     (*min.as_ptr())[Direction::Right] = (*node.as_ptr())[Direction::Right];
[INFO] [stdout]     |                     ^^------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:457:21
[INFO] [stdout]     |
[INFO] [stdout] 457 |                     (*min.as_ptr())[Direction::Right] = (*node.as_ptr())[Direction::Right];
[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] 457 |                     (&mut (*min.as_ptr()))[Direction::Right] = (*node.as_ptr())[Direction::Right];
[INFO] [stdout]     |                     +++++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:458:23
[INFO] [stdout]     |
[INFO] [stdout] 458 |                     (*(*min.as_ptr())[Direction::Right]
[INFO] [stdout]     |                       ^^------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:458:23
[INFO] [stdout]     |
[INFO] [stdout] 458 |                     (*(*min.as_ptr())[Direction::Right]
[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] 458 |                     (*(&(*min.as_ptr()))[Direction::Right]
[INFO] [stdout]     |                       ++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:464:52
[INFO] [stdout]     |
[INFO] [stdout] 464 |                 (*min.as_ptr())[Direction::Left] = (*node.as_ptr())[Direction::Left];
[INFO] [stdout]     |                                                    ^^-------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:464:52
[INFO] [stdout]     |
[INFO] [stdout] 464 |                 (*min.as_ptr())[Direction::Left] = (*node.as_ptr())[Direction::Left];
[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] 464 |                 (*min.as_ptr())[Direction::Left] = (&(*node.as_ptr()))[Direction::Left];
[INFO] [stdout]     |                                                    ++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:464:17
[INFO] [stdout]     |
[INFO] [stdout] 464 |                 (*min.as_ptr())[Direction::Left] = (*node.as_ptr())[Direction::Left];
[INFO] [stdout]     |                 ^^------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this raw pointer has type `*mut RbNode<K, V>`
[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: `&mut RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:464:17
[INFO] [stdout]     |
[INFO] [stdout] 464 |                 (*min.as_ptr())[Direction::Left] = (*node.as_ptr())[Direction::Left];
[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] 464 |                 (&mut (*min.as_ptr()))[Direction::Left] = (*node.as_ptr())[Direction::Left];
[INFO] [stdout]     |                 +++++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:465:19
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 (*(*min.as_ptr())[Direction::Left].unwrap_unchecked().as_ptr()).parent = Some(min);
[INFO] [stdout]     |                   ^^------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:465:19
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 (*(*min.as_ptr())[Direction::Left].unwrap_unchecked().as_ptr()).parent = Some(min);
[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] 465 |                 (*(&(*min.as_ptr()))[Direction::Left].unwrap_unchecked().as_ptr()).parent = Some(min);
[INFO] [stdout]     |                   ++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:479:66
[INFO] [stdout]     |
[INFO] [stdout] 479 |                     let sibling_direction = match replacement == (*parent.as_ptr())[Direction::Left]
[INFO] [stdout]     |                                                                  ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:479:66
[INFO] [stdout]     |
[INFO] [stdout] 479 |                     let sibling_direction = match replacement == (*parent.as_ptr())[Direction::Left]
[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] 479 |                     let sibling_direction = match replacement == (&(*parent.as_ptr()))[Direction::Left]
[INFO] [stdout]     |                                                                  ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:484:35
[INFO] [stdout]     |
[INFO] [stdout] 484 |                     let sibling = (*parent.as_ptr())[sibling_direction];
[INFO] [stdout]     |                                   ^^---------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:484:35
[INFO] [stdout]     |
[INFO] [stdout] 484 |                     let sibling = (*parent.as_ptr())[sibling_direction];
[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] 484 |                     let sibling = (&(*parent.as_ptr()))[sibling_direction];
[INFO] [stdout]     |                                   ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:498:35
[INFO] [stdout]     |
[INFO] [stdout] 498 |                         sibling = (*parent.as_ptr())[sibling_direction].unwrap_unchecked();
[INFO] [stdout]     |                                   ^^---------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:498:35
[INFO] [stdout]     |
[INFO] [stdout] 498 |                         sibling = (*parent.as_ptr())[sibling_direction].unwrap_unchecked();
[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] 498 |                         sibling = (&(*parent.as_ptr()))[sibling_direction].unwrap_unchecked();
[INFO] [stdout]     |                                   ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:512:28
[INFO] [stdout]     |
[INFO] [stdout] 512 |                         if (*sibling.as_ptr())[sibling_direction.opposite()]
[INFO] [stdout]     |                            ^^----------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:512:28
[INFO] [stdout]     |
[INFO] [stdout] 512 |                         if (*sibling.as_ptr())[sibling_direction.opposite()]
[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] 512 |                         if (&(*sibling.as_ptr()))[sibling_direction.opposite()]
[INFO] [stdout]     |                            ++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:516:41
[INFO] [stdout]     |
[INFO] [stdout] 516 | ...                   let child = (*sibling.as_ptr())[sibling_direction.opposite()]
[INFO] [stdout]     |                                   ^^----------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:516:41
[INFO] [stdout]     |
[INFO] [stdout] 516 | ...                   let child = (*sibling.as_ptr())[sibling_direction.opposite()]
[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] 516 |                             let child = (&(*sibling.as_ptr()))[sibling_direction.opposite()]
[INFO] [stdout]     |                                         ++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:532:46
[INFO] [stdout]     |
[INFO] [stdout] 532 |                         if let Some(child) = (*sibling.as_ptr())[sibling_direction] {
[INFO] [stdout]     |                                              ^^----------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:532:46
[INFO] [stdout]     |
[INFO] [stdout] 532 |                         if let Some(child) = (*sibling.as_ptr())[sibling_direction] {
[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] 532 |                         if let Some(child) = (&(*sibling.as_ptr()))[sibling_direction] {
[INFO] [stdout]     |                                              ++                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:596:17
[INFO] [stdout]     |
[INFO] [stdout] 596 |     pub fn iter(&self) -> Iter<K, V> {
[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] 596 |     pub fn iter(&self) -> Iter<'_, K, V> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:606:21
[INFO] [stdout]     |
[INFO] [stdout] 606 |     pub fn iter_mut(&self) -> IterMut<K, V> {
[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] 606 |     pub fn iter_mut(&self) -> IterMut<'_, K, V> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:616:24
[INFO] [stdout]     |
[INFO] [stdout] 616 |     pub fn sorted_iter(&self) -> SortedIter<K, V> {
[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] 616 |     pub fn sorted_iter(&self) -> SortedIter<'_, K, V> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:625:28
[INFO] [stdout]     |
[INFO] [stdout] 625 |     pub fn sorted_iter_mut(&mut self) -> SortedIterMut<K, V> {
[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] 625 |     pub fn sorted_iter_mut(&mut self) -> SortedIterMut<'_, K, V> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:888:45
[INFO] [stdout]     |
[INFO] [stdout] 888 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Right] } {
[INFO] [stdout]     |                                             ^^---------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:888:45
[INFO] [stdout]     |
[INFO] [stdout] 888 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Right] } {
[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] 888 |                 while Some(cur) == unsafe { (&(*parent.as_ptr()))[Direction::Right] } {
[INFO] [stdout]     |                                             ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:923:45
[INFO] [stdout]     |
[INFO] [stdout] 923 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Left] } {
[INFO] [stdout]     |                                             ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:923:45
[INFO] [stdout]     |
[INFO] [stdout] 923 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Left] } {
[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] 923 |                 while Some(cur) == unsafe { (&(*parent.as_ptr()))[Direction::Left] } {
[INFO] [stdout]     |                                             ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/lib.rs:968:45
[INFO] [stdout]     |
[INFO] [stdout] 968 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Right] } {
[INFO] [stdout]     |                                             ^^---------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]    --> src/lib.rs:968:45
[INFO] [stdout]     |
[INFO] [stdout] 968 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Right] } {
[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] 968 |                 while Some(cur) == unsafe { (&(*parent.as_ptr()))[Direction::Right] } {
[INFO] [stdout]     |                                             ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:1003:45
[INFO] [stdout]      |
[INFO] [stdout] 1003 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Left] } {
[INFO] [stdout]      |                                             ^^---------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                               |
[INFO] [stdout]      |                                               this raw pointer has type `*mut RbNode<K, V>`
[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: `&RbNode<K, V>`
[INFO] [stdout]     --> src/lib.rs:1003:45
[INFO] [stdout]      |
[INFO] [stdout] 1003 |                 while Some(cur) == unsafe { (*parent.as_ptr())[Direction::Left] } {
[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] 1003 |                 while Some(cur) == unsafe { (&(*parent.as_ptr()))[Direction::Left] } {
[INFO] [stdout]      |                                             ++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rbtree` (lib test) due to 38 previous errors; 4 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "eed8397a19c0be70f20dca5703fdd7c72af9d0a19ba309c86be75d48d18ccc5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eed8397a19c0be70f20dca5703fdd7c72af9d0a19ba309c86be75d48d18ccc5e", kill_on_drop: false }`
[INFO] [stdout] eed8397a19c0be70f20dca5703fdd7c72af9d0a19ba309c86be75d48d18ccc5e
