[INFO] cloning repository https://github.com/alexjperkins/rustgorithms
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alexjperkins/rustgorithms" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexjperkins%2Frustgorithms", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexjperkins%2Frustgorithms'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c4f77f6971074d9d59d1c1fdaa46244ccc1506a0
[INFO] documenting alexjperkins/rustgorithms against 1.75.0 for beta-1.76-rustdoc-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexjperkins%2Frustgorithms" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/alexjperkins/rustgorithms on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/alexjperkins/rustgorithms
[INFO] finished tweaking git repo https://github.com/alexjperkins/rustgorithms
[INFO] tweaked toml for git repo https://github.com/alexjperkins/rustgorithms written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/alexjperkins/rustgorithms already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 89610747d105fbab4c1350213aa42fdb54625cddd5c370013e99aff6a0a135c0
[INFO] running `Command { std: "docker" "start" "-a" "89610747d105fbab4c1350213aa42fdb54625cddd5c370013e99aff6a0a135c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "89610747d105fbab4c1350213aa42fdb54625cddd5c370013e99aff6a0a135c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "89610747d105fbab4c1350213aa42fdb54625cddd5c370013e99aff6a0a135c0", kill_on_drop: false }`
[INFO] [stdout] 89610747d105fbab4c1350213aa42fdb54625cddd5c370013e99aff6a0a135c0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d9e58de05ee892be563bd277d1c3f0f4b95f08157a23167730aad0eab8ff46e
[INFO] running `Command { std: "docker" "start" "-a" "6d9e58de05ee892be563bd277d1c3f0f4b95f08157a23167730aad0eab8ff46e", kill_on_drop: false }`
[INFO] [stderr]  Documenting rustgorithms v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/binary_tree_diameter.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn new<i32>() -> &TreeInfo<i32> {
[INFO] [stdout]    |                      ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
[INFO] [stdout] help: consider using the `'static` lifetime
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn new<i32>() -> &'static TreeInfo<i32> {
[INFO] [stdout]    |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/binary_tree_diameter.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &BinaryTree<> {
[INFO] [stdout]    |                                    ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
[INFO] [stdout] help: consider using the `'static` lifetime
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &'static BinaryTree<> {
[INFO] [stdout]    |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/binary_tree_diameter.rs:28:52
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn get_tree_info(tree: Option<BinaryTree<i32>>) -> &TreeInfo<i32> {
[INFO] [stdout]    |                                                    ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
[INFO] [stdout] help: consider using the `'static` lifetime
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn get_tree_info(tree: Option<BinaryTree<i32>>) -> &'static TreeInfo<i32> {
[INFO] [stdout]    |                                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `i32` should have an upper camel case name
[INFO] [stdout]  --> src/binary_tree_diameter.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct BinaryTree<i32> {
[INFO] [stdout]   |                   ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `i32` should have an upper camel case name
[INFO] [stdout]  --> src/binary_tree_diameter.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct TreeInfo<i32> {
[INFO] [stdout]   |                 ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `i32` should have an upper camel case name
[INFO] [stdout]   --> src/binary_tree_diameter.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn new<i32>() -> &TreeInfo<i32> {
[INFO] [stdout]    |            ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `i32` should have an upper camel case name
[INFO] [stdout]   --> src/binary_tree_diameter.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &BinaryTree<> {
[INFO] [stdout]    |                ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 1 generic argument but 0 generic arguments were supplied
[INFO] [stdout]   --> src/binary_tree_diameter.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &BinaryTree<> {
[INFO] [stdout]    |                                     ^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `i32`
[INFO] [stdout]   --> src/binary_tree_diameter.rs:1:8
[INFO] [stdout]    |
[INFO] [stdout] 1  | struct BinaryTree<i32> {
[INFO] [stdout]    |        ^^^^^^^^^^ ---
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &BinaryTree<i32> {
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0072]: recursive type `binary_tree_diameter::BinaryTree` has infinite size
[INFO] [stdout]  --> src/binary_tree_diameter.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct BinaryTree<i32> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 2 |     value: i32,
[INFO] [stdout] 3 |     left: Option<BinaryTree<i32>>,
[INFO] [stdout]   |                  --------------- recursive without indirection
[INFO] [stdout]   |
[INFO] [stdout] help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to break the cycle
[INFO] [stdout]   |
[INFO] [stdout] 3 |     left: Option<Box<BinaryTree<i32>>>,
[INFO] [stdout]   |                  ++++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0072]: recursive type `next_successor::BinaryTreeParent` has infinite size
[INFO] [stdout]  --> src/next_successor.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct BinaryTreeParent {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 2 |     value: i32,
[INFO] [stdout] 3 |     left: Option<BinaryTreeParent>,
[INFO] [stdout]   |                  ---------------- recursive without indirection
[INFO] [stdout]   |
[INFO] [stdout] help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to break the cycle
[INFO] [stdout]   |
[INFO] [stdout] 3 |     left: Option<Box<BinaryTreeParent>>,
[INFO] [stdout]   |                  ++++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors; 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0072, E0106, E0107.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0072`.
[INFO] [stdout] 
[INFO] [stderr] error: could not document `rustgorithms`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/rustup-home/toolchains/1.75.0-x86_64-unknown-linux-gnu/bin/rustdoc --edition=2018 --crate-type bin --crate-name rustgorithms src/main.rs -o /opt/rustwide/target/doc --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --document-private-items '-Arustdoc::private-intra-doc-links' -C metadata=11d10067b358b293 -L dependency=/opt/rustwide/target/debug/deps --cap-lints=warn --crate-version 0.1.0` (exit status: 1)
[INFO] running `Command { std: "docker" "inspect" "6d9e58de05ee892be563bd277d1c3f0f4b95f08157a23167730aad0eab8ff46e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d9e58de05ee892be563bd277d1c3f0f4b95f08157a23167730aad0eab8ff46e", kill_on_drop: false }`
[INFO] [stdout] 6d9e58de05ee892be563bd277d1c3f0f4b95f08157a23167730aad0eab8ff46e
[INFO] documenting alexjperkins/rustgorithms against beta-2023-12-22 for beta-1.76-rustdoc-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexjperkins%2Frustgorithms" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/alexjperkins/rustgorithms on toolchain beta-2023-12-22
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/alexjperkins/rustgorithms
[INFO] finished tweaking git repo https://github.com/alexjperkins/rustgorithms
[INFO] tweaked toml for git repo https://github.com/alexjperkins/rustgorithms written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/alexjperkins/rustgorithms 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" "+beta-2023-12-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ce54e7384ecdd4e5871ec812b60d65fc9b4a8f5108782b561909805715550e46
[INFO] running `Command { std: "docker" "start" "-a" "ce54e7384ecdd4e5871ec812b60d65fc9b4a8f5108782b561909805715550e46", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ce54e7384ecdd4e5871ec812b60d65fc9b4a8f5108782b561909805715550e46", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ce54e7384ecdd4e5871ec812b60d65fc9b4a8f5108782b561909805715550e46", kill_on_drop: false }`
[INFO] [stdout] ce54e7384ecdd4e5871ec812b60d65fc9b4a8f5108782b561909805715550e46
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 70ab96a191315083ec0e34e4e51506ddb7f7e7d7b4ffbd752ca62801ce9be07a
[INFO] running `Command { std: "docker" "start" "-a" "70ab96a191315083ec0e34e4e51506ddb7f7e7d7b4ffbd752ca62801ce9be07a", kill_on_drop: false }`
[INFO] [stderr]  Documenting rustgorithms v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/binary_tree_diameter.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn new<i32>() -> &TreeInfo<i32> {
[INFO] [stdout]    |                      ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
[INFO] [stdout] help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn new<i32>() -> &'static TreeInfo<i32> {
[INFO] [stdout]    |                       +++++++
[INFO] [stdout] help: instead, you are more likely to want to return an owned value
[INFO] [stdout]    |
[INFO] [stdout] 13 -     fn new<i32>() -> &TreeInfo<i32> {
[INFO] [stdout] 13 +     fn new<i32>() -> TreeInfo<i32> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/binary_tree_diameter.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &BinaryTree<> {
[INFO] [stdout]    |                                    ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
[INFO] [stdout] help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &'static BinaryTree<> {
[INFO] [stdout]    |                                     +++++++
[INFO] [stdout] help: instead, you are more likely to want to change the argument to be borrowed...
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: &i32) -> &BinaryTree<> {
[INFO] [stdout]    |                            +
[INFO] [stdout] help: ...or alternatively, you might want to return an owned value
[INFO] [stdout]    |
[INFO] [stdout] 19 -     pub fn new<i32>(value: i32) -> &BinaryTree<> {
[INFO] [stdout] 19 +     pub fn new<i32>(value: i32) -> BinaryTree<> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/binary_tree_diameter.rs:28:52
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn get_tree_info(tree: Option<BinaryTree<i32>>) -> &TreeInfo<i32> {
[INFO] [stdout]    |                                                    ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
[INFO] [stdout] help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn get_tree_info(tree: Option<BinaryTree<i32>>) -> &'static TreeInfo<i32> {
[INFO] [stdout]    |                                                     +++++++
[INFO] [stdout] help: instead, you are more likely to want to change the argument to be borrowed...
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn get_tree_info(tree: &Option<BinaryTree<i32>>) -> &TreeInfo<i32> {
[INFO] [stdout]    |                        +
[INFO] [stdout] help: ...or alternatively, you might want to return an owned value
[INFO] [stdout]    |
[INFO] [stdout] 28 - fn get_tree_info(tree: Option<BinaryTree<i32>>) -> &TreeInfo<i32> {
[INFO] [stdout] 28 + fn get_tree_info(tree: Option<BinaryTree<i32>>) -> TreeInfo<i32> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `i32` should have an upper camel case name
[INFO] [stdout]  --> src/binary_tree_diameter.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct BinaryTree<i32> {
[INFO] [stdout]   |                   ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `i32` should have an upper camel case name
[INFO] [stdout]  --> src/binary_tree_diameter.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct TreeInfo<i32> {
[INFO] [stdout]   |                 ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `i32` should have an upper camel case name
[INFO] [stdout]   --> src/binary_tree_diameter.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn new<i32>() -> &TreeInfo<i32> {
[INFO] [stdout]    |            ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `i32` should have an upper camel case name
[INFO] [stdout]   --> src/binary_tree_diameter.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &BinaryTree<> {
[INFO] [stdout]    |                ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 1 generic argument but 0 generic arguments were supplied
[INFO] [stdout]   --> src/binary_tree_diameter.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &BinaryTree<> {
[INFO] [stdout]    |                                     ^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `i32`
[INFO] [stdout]   --> src/binary_tree_diameter.rs:1:8
[INFO] [stdout]    |
[INFO] [stdout] 1  | struct BinaryTree<i32> {
[INFO] [stdout]    |        ^^^^^^^^^^ ---
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new<i32>(value: i32) -> &BinaryTree<i32> {
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0072]: recursive type `binary_tree_diameter::BinaryTree` has infinite size
[INFO] [stdout]  --> src/binary_tree_diameter.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct BinaryTree<i32> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 2 |     value: i32,
[INFO] [stdout] 3 |     left: Option<BinaryTree<i32>>,
[INFO] [stdout]   |                  --------------- recursive without indirection
[INFO] [stdout]   |
[INFO] [stdout] help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to break the cycle
[INFO] [stdout]   |
[INFO] [stdout] 3 |     left: Option<Box<BinaryTree<i32>>>,
[INFO] [stdout]   |                  ++++               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0072]: recursive type `next_successor::BinaryTreeParent` has infinite size
[INFO] [stdout]  --> src/next_successor.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct BinaryTreeParent {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 2 |     value: i32,
[INFO] [stdout] 3 |     left: Option<BinaryTreeParent>,
[INFO] [stdout]   |                  ---------------- recursive without indirection
[INFO] [stdout]   |
[INFO] [stdout] help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to break the cycle
[INFO] [stdout]   |
[INFO] [stdout] 3 |     left: Option<Box<BinaryTreeParent>>,
[INFO] [stdout]   |                  ++++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors; 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0072, E0106, E0107.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0072`.
[INFO] [stdout] 
[INFO] [stderr] error: could not document `rustgorithms`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/rustup-home/toolchains/beta-2023-12-22-x86_64-unknown-linux-gnu/bin/rustdoc --edition=2018 --crate-type bin --crate-name rustgorithms src/main.rs -o /opt/rustwide/target/doc --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --document-private-items '-Arustdoc::private-intra-doc-links' -C metadata=f21279febdfe87ce -L dependency=/opt/rustwide/target/debug/deps --cap-lints=warn --crate-version 0.1.0` (exit status: 1)
[INFO] running `Command { std: "docker" "inspect" "70ab96a191315083ec0e34e4e51506ddb7f7e7d7b4ffbd752ca62801ce9be07a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "70ab96a191315083ec0e34e4e51506ddb7f7e7d7b4ffbd752ca62801ce9be07a", kill_on_drop: false }`
[INFO] [stdout] 70ab96a191315083ec0e34e4e51506ddb7f7e7d7b4ffbd752ca62801ce9be07a
