[INFO] cloning repository https://github.com/bhamrick/rust_splay
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bhamrick/rust_splay" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbhamrick%2Frust_splay", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbhamrick%2Frust_splay'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 90b77d8f7206999f6caedf03ffcc5c5b95bbde9d
[INFO] checking bhamrick/rust_splay against master#4b9792692fbb675174d4d2082e7c37b2bc930e71 for pr-153692-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbhamrick%2Frust_splay" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/bhamrick/rust_splay
[INFO] finished tweaking git repo https://github.com/bhamrick/rust_splay
[INFO] tweaked toml for git repo https://github.com/bhamrick/rust_splay written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bhamrick/rust_splay on toolchain 4b9792692fbb675174d4d2082e7c37b2bc930e71
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bhamrick/rust_splay 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" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8f264f58469c000546d9cab50b08f711cd4f07b161f0f50a1b6be821fcf7b510
[INFO] running `Command { std: "docker" "start" "-a" "8f264f58469c000546d9cab50b08f711cd4f07b161f0f50a1b6be821fcf7b510", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8f264f58469c000546d9cab50b08f711cd4f07b161f0f50a1b6be821fcf7b510", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8f264f58469c000546d9cab50b08f711cd4f07b161f0f50a1b6be821fcf7b510", kill_on_drop: false }`
[INFO] [stdout] 8f264f58469c000546d9cab50b08f711cd4f07b161f0f50a1b6be821fcf7b510
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ec4baea88d105cace31005ec4b6bd0f55468fe86b1ad5f4af35b556736cf2bc0
[INFO] running `Command { std: "docker" "start" "-a" "ec4baea88d105cace31005ec4b6bd0f55468fe86b1ad5f4af35b556736cf2bc0", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]     Checking rust_splay v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/main.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn combine(TreeF<A, Self>) -> Self;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: TreeF<A, Self>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/main.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn separate(Self) -> TreeF<A, Self>;
[INFO] [stdout]    |                 ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/main.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn is_branch(&Self) -> bool;
[INFO] [stdout]    |                  ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Self`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:497:26
[INFO] [stdout]     |
[INFO] [stdout] 497 |     fn insert(&mut self, A);
[INFO] [stdout]     |                          ^ help: try naming the parameter or explicitly ignoring it: `_: A`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:498:28
[INFO] [stdout]     |
[INFO] [stdout] 498 |     fn contains(&mut self, A) -> bool;
[INFO] [stdout]     |                            ^ help: try naming the parameter or explicitly ignoring it: `_: A`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:499:33
[INFO] [stdout]     |
[INFO] [stdout] 499 |     fn splay_to_root(&mut self, A);
[INFO] [stdout]     |                                 ^ help: try naming the parameter or explicitly ignoring it: `_: A`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:552:17
[INFO] [stdout]     |
[INFO] [stdout] 552 |     fn reversed(Self) -> Self;
[INFO] [stdout]     |                 ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/main.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn combine(TreeF<A, Self>) -> Self;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: TreeF<A, Self>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/main.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn separate(Self) -> TreeF<A, Self>;
[INFO] [stdout]    |                 ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/main.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn is_branch(&Self) -> bool;
[INFO] [stdout]    |                  ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Self`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:497:26
[INFO] [stdout]     |
[INFO] [stdout] 497 |     fn insert(&mut self, A);
[INFO] [stdout]     |                          ^ help: try naming the parameter or explicitly ignoring it: `_: A`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:498:28
[INFO] [stdout]     |
[INFO] [stdout] 498 |     fn contains(&mut self, A) -> bool;
[INFO] [stdout]     |                            ^ help: try naming the parameter or explicitly ignoring it: `_: A`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:499:33
[INFO] [stdout]     |
[INFO] [stdout] 499 |     fn splay_to_root(&mut self, A);
[INFO] [stdout]     |                                 ^ help: try naming the parameter or explicitly ignoring it: `_: A`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/main.rs:552:17
[INFO] [stdout]     |
[INFO] [stdout] 552 |     fn reversed(Self) -> Self;
[INFO] [stdout]     |                 ^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:788:65
[INFO] [stdout]     |
[INFO] [stdout] 788 |         Err(why) => panic!("Could not open input file: {}", why.description()),
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:793:66
[INFO] [stdout]     |
[INFO] [stdout] 793 |         Err(why) => panic!("Could not open output file: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:800:58
[INFO] [stdout]     |
[INFO] [stdout] 800 |         Err(why) => panic!("Error reading data: {}", why.description()),
[INFO] [stdout]     |                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/main.rs:803:42
[INFO] [stdout]     |
[INFO] [stdout] 803 |     let line1_tokens : Vec<&str> = line1.trim_right().split(' ').collect();
[INFO] [stdout]     |                                          ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 803 -     let line1_tokens : Vec<&str> = line1.trim_right().split(' ').collect();
[INFO] [stdout] 803 +     let line1_tokens : Vec<&str> = line1.trim_end().split(' ').collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:805:58
[INFO] [stdout]     |
[INFO] [stdout] 805 |         Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:809:58
[INFO] [stdout]     |
[INFO] [stdout] 809 |         Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:816:62
[INFO] [stdout]     |
[INFO] [stdout] 816 |             Err(why) => panic!("Error reading data: {}", why.description()),
[INFO] [stdout]     |                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/main.rs:819:39
[INFO] [stdout]     |
[INFO] [stdout] 819 |         let tokens : Vec<&str> = line.trim_right().split(' ').collect();
[INFO] [stdout]     |                                       ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 819 -         let tokens : Vec<&str> = line.trim_right().split(' ').collect();
[INFO] [stdout] 819 +         let tokens : Vec<&str> = line.trim_end().split(' ').collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:822:66
[INFO] [stdout]     |
[INFO] [stdout] 822 |                 Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:829:66
[INFO] [stdout]     |
[INFO] [stdout] 829 |                 Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:839:66
[INFO] [stdout]     |
[INFO] [stdout] 839 |                 Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:843:66
[INFO] [stdout]     |
[INFO] [stdout] 843 |                 Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeNode` is never constructed
[INFO] [stdout]   --> src/main.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct TreeNode<A>(TreeF<A, Box<TreeNode<A>>>);
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnnotatedTreeNode` is never constructed
[INFO] [stdout]   --> src/main.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct AnnotatedTreeNode<A, B> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find` is never used
[INFO] [stdout]    --> src/main.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn find<A : Ord, B : TreeCoalgebra<A> + TreeAlgebra<A>>(root: B, v: &A) -> TreeZipper<A, B> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SplayTree` is never constructed
[INFO] [stdout]    --> src/main.rs:491:8
[INFO] [stdout]     |
[INFO] [stdout] 491 | struct SplayTree<A> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Splay` is never used
[INFO] [stdout]    --> src/main.rs:495:7
[INFO] [stdout]     |
[INFO] [stdout] 495 | trait Splay<A> {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:788:65
[INFO] [stdout]     |
[INFO] [stdout] 788 |         Err(why) => panic!("Could not open input file: {}", why.description()),
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:793:66
[INFO] [stdout]     |
[INFO] [stdout] 793 |         Err(why) => panic!("Could not open output file: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:800:58
[INFO] [stdout]     |
[INFO] [stdout] 800 |         Err(why) => panic!("Error reading data: {}", why.description()),
[INFO] [stdout]     |                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/main.rs:803:42
[INFO] [stdout]     |
[INFO] [stdout] 803 |     let line1_tokens : Vec<&str> = line1.trim_right().split(' ').collect();
[INFO] [stdout]     |                                          ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 803 -     let line1_tokens : Vec<&str> = line1.trim_right().split(' ').collect();
[INFO] [stdout] 803 +     let line1_tokens : Vec<&str> = line1.trim_end().split(' ').collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:805:58
[INFO] [stdout]     |
[INFO] [stdout] 805 |         Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:809:58
[INFO] [stdout]     |
[INFO] [stdout] 809 |         Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:816:62
[INFO] [stdout]     |
[INFO] [stdout] 816 |             Err(why) => panic!("Error reading data: {}", why.description()),
[INFO] [stdout]     |                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/main.rs:819:39
[INFO] [stdout]     |
[INFO] [stdout] 819 |         let tokens : Vec<&str> = line.trim_right().split(' ').collect();
[INFO] [stdout]     |                                       ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 819 -         let tokens : Vec<&str> = line.trim_right().split(' ').collect();
[INFO] [stdout] 819 +         let tokens : Vec<&str> = line.trim_end().split(' ').collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:822:66
[INFO] [stdout]     |
[INFO] [stdout] 822 |                 Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:829:66
[INFO] [stdout]     |
[INFO] [stdout] 829 |                 Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:839:66
[INFO] [stdout]     |
[INFO] [stdout] 839 |                 Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:843:66
[INFO] [stdout]     |
[INFO] [stdout] 843 |                 Err(why) => panic!("Error parsing data: {}", why.description()),
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeNode` is never constructed
[INFO] [stdout]   --> src/main.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct TreeNode<A>(TreeF<A, Box<TreeNode<A>>>);
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnnotatedTreeNode` is never constructed
[INFO] [stdout]   --> src/main.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct AnnotatedTreeNode<A, B> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find` is never used
[INFO] [stdout]    --> src/main.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn find<A : Ord, B : TreeCoalgebra<A> + TreeAlgebra<A>>(root: B, v: &A) -> TreeZipper<A, B> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SplayTree` is never constructed
[INFO] [stdout]    --> src/main.rs:491:8
[INFO] [stdout]     |
[INFO] [stdout] 491 | struct SplayTree<A> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Splay` is never used
[INFO] [stdout]    --> src/main.rs:495:7
[INFO] [stdout]     |
[INFO] [stdout] 495 | trait Splay<A> {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.30s
[INFO] running `Command { std: "docker" "inspect" "ec4baea88d105cace31005ec4b6bd0f55468fe86b1ad5f4af35b556736cf2bc0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec4baea88d105cace31005ec4b6bd0f55468fe86b1ad5f4af35b556736cf2bc0", kill_on_drop: false }`
[INFO] [stdout] ec4baea88d105cace31005ec4b6bd0f55468fe86b1ad5f4af35b556736cf2bc0
