[INFO] cloning repository https://github.com/Live4dreamCH/leetcode_rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Live4dreamCH/leetcode_rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLive4dreamCH%2Fleetcode_rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLive4dreamCH%2Fleetcode_rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e335c1aacb04802b98f68ad2863ddce3ea1c92b3
[INFO] testing Live4dreamCH/leetcode_rs against beta-2023-04-20 for beta-1.70-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLive4dreamCH%2Fleetcode_rs" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Live4dreamCH/leetcode_rs on toolchain beta-2023-04-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Live4dreamCH/leetcode_rs
[INFO] finished tweaking git repo https://github.com/Live4dreamCH/leetcode_rs
[INFO] tweaked toml for git repo https://github.com/Live4dreamCH/leetcode_rs written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/Live4dreamCH/leetcode_rs 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-04-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ee9c2bd1a8cb09952a1bf737465922e1775746ae53a4da95076327a6e219817c
[INFO] running `Command { std: "docker" "start" "-a" "ee9c2bd1a8cb09952a1bf737465922e1775746ae53a4da95076327a6e219817c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ee9c2bd1a8cb09952a1bf737465922e1775746ae53a4da95076327a6e219817c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ee9c2bd1a8cb09952a1bf737465922e1775746ae53a4da95076327a6e219817c", kill_on_drop: false }`
[INFO] [stdout] ee9c2bd1a8cb09952a1bf737465922e1775746ae53a4da95076327a6e219817c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 616c43f549bfbd06d35adeffa7937a1a614d827cbf866fb68e5dd61373fe2bce
[INFO] running `Command { std: "docker" "start" "-a" "616c43f549bfbd06d35adeffa7937a1a614d827cbf866fb68e5dd61373fe2bce", kill_on_drop: false }`
[INFO] [stderr]    Compiling leetcode v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `Solution` is never constructed
[INFO] [stdout]  --> src/bin/lc1817.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Solution;
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `finding_users_active_minutes` is never used
[INFO] [stdout]  --> src/bin/lc1817.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl Solution {
[INFO] [stdout]   | ------------- associated function in this implementation
[INFO] [stdout] 6 |     pub fn finding_users_active_minutes(logs: Vec<Vec<i32>>, k: i32) -> Vec<i32> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `,`
[INFO] [stdout]   --> src/bin/lc1096.rs:96:28
[INFO] [stdout]    |
[INFO] [stdout] 96 |             Ok(subtree) => ,
[INFO] [stdout]    |                         -- ^ expected expression
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         while parsing the `match` arm starting here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `push` is never used
[INFO] [stdout]   --> src/bin/algo/mono_stack.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a, T: Ord> MonoStack<'a, T> {
[INFO] [stdout]    | --------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn push(&mut self, item: usize) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `count_map` and `length` are never read
[INFO] [stdout]  --> src/bin/algo/ordered_multi_set.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct OrderedMutiSet<T: Ord + Copy> {
[INFO] [stdout]   |            -------------- fields in this struct
[INFO] [stdout] 5 |     count_map: BTreeMap<T, u32>,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 6 |     length: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `OrderedMutiSet` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/bin/algo/ordered_multi_set.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl<T: Ord + Copy> OrderedMutiSet<T> {
[INFO] [stdout]    | ------------------------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn push(&mut self, item: T) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn pop_min(&mut self) -> Option<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn pop_max(&mut self) -> Option<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn peek_min(&self) -> Option<&T> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn peek_max(&self) -> Option<&T> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn remove_one(&mut self, item: &T) -> Option<T> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/lc1096.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 95 | /         match self.union() {
[INFO] [stdout] 96 | |             Ok(subtree) => ,
[INFO] [stdout] 97 | |             Err(_) => todo!(),
[INFO] [stdout] 98 | |         }
[INFO] [stdout]    | |_________- any code following this expression is unreachable
[INFO] [stdout] 99 |           node
[INFO] [stdout]    |           ^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/bin/lc1825.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | struct MKAverage {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 7  |     m: i32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 8  |     k: i32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 9  |     queue: VecDeque<i32>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     middle_set: OrderedMutiSet<i32>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 11 |     small_set: OrderedMutiSet<i32>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 12 |     large_set: OrderedMutiSet<i32>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 13 |     sum_middle: i32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MKAverage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `balance_sets`, `add_element`, and `calculate_mk_average` are never used
[INFO] [stdout]    --> src/bin/lc1825.rs:21:8
[INFO] [stdout]     |
[INFO] [stdout] 20  | impl MKAverage {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 21  |     fn new(m: i32, k: i32) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33  |     fn balance_sets(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68  |     fn add_element(&mut self, num: i32) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn calculate_mk_average(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MonoStack` is never constructed
[INFO] [stdout]  --> src/bin/algo/mono_stack.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MonoStack<'a, T: Ord> {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_once`, `push`, `pop`, and `top` are never used
[INFO] [stdout]   --> src/bin/algo/mono_stack.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a, T: Ord> MonoStack<'a, T> {
[INFO] [stdout]    | --------------------------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(array: &Vec<T>, order: Ordering, strict: bool) -> MonoStack<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn push_once(&mut self, item: usize) -> Result<Option<usize>, usize> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn push(&mut self, item: usize) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn pop(&mut self) -> Option<usize> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn top(&self) -> Option<&usize> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `count_map` and `length` are never read
[INFO] [stdout]  --> src/bin/algo/ordered_multi_set.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct OrderedMutiSet<T: Ord + Copy> {
[INFO] [stdout]   |            -------------- fields in this struct
[INFO] [stdout] 5 |     count_map: BTreeMap<T, u32>,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 6 |     length: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `OrderedMutiSet` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/bin/algo/ordered_multi_set.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl<T: Ord + Copy> OrderedMutiSet<T> {
[INFO] [stdout]    | ------------------------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn push(&mut self, item: T) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn pop_min(&mut self) -> Option<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn pop_max(&mut self) -> Option<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn peek_min(&self) -> Option<&T> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn peek_max(&self) -> Option<&T> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn remove_one(&mut self, item: &T) -> Option<T> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/bin/lc1487.rs:40:53
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 name_times_map.insert(name.clone(), 1);
[INFO] [stdout]    |                                ------               ^ expected `(HashSet<usize>, usize)`, found integer
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected tuple `(HashSet<usize>, usize)`
[INFO] [stdout]                found type `{integer}`
[INFO] [stdout] help: the return type of this call is `{integer}` due to the type of the argument passed
[INFO] [stdout]   --> src/bin/lc1487.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 name_times_map.insert(name.clone(), 1);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-^
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     this argument influences the return type of `insert`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/collections/hash/map.rs:1103:12
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `(HashSet<usize>, usize)` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/bin/lc1487.rs:44:74
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let actual_name = name.clone() + "(" + &name_times_map[name].to_string() + ")";
[INFO] [stdout]    |                                                                          ^^^^^^^^^ `(HashSet<usize>, usize)` cannot be formatted with the default formatter
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `(HashSet<usize>, usize): std::fmt::Display`
[INFO] [stdout]            which is required by `(HashSet<usize>, usize): ToString`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `+=` cannot be applied to type `(HashSet<usize>, usize)`
[INFO] [stdout]   --> src/bin/lc1487.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             *name_times_map.get_mut(name).unwrap() += 1;
[INFO] [stdout]    |             --------------------------------------^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `+=` on type `(HashSet<usize>, usize)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/bin/lc1487.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 |             *name_times_map.entry(actual_name).or_insert(0) += 1;
[INFO] [stdout]    |                                                --------- ^ expected `(HashSet<usize>, usize)`, found integer
[INFO] [stdout]    |                                                |
[INFO] [stdout]    |                                                arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected tuple `(HashSet<usize>, usize)`
[INFO] [stdout]                found type `{integer}`
[INFO] [stdout] help: the return type of this call is `{integer}` due to the type of the argument passed
[INFO] [stdout]   --> src/bin/lc1487.rs:47:14
[INFO] [stdout]    |
[INFO] [stdout] 47 |             *name_times_map.entry(actual_name).or_insert(0) += 1;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-^
[INFO] [stdout]    |                                                          |
[INFO] [stdout]    |                                                          this argument influences the return type of `or_insert`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/collections/hash/map.rs:2531:12
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0368]: binary assignment operation `+=` cannot be applied to type `(HashSet<usize>, usize)`
[INFO] [stdout]   --> src/bin/lc1487.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |             *name_times_map.entry(actual_name).or_insert(0) += 1;
[INFO] [stdout]    |             -----------------------------------------------^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             cannot use `+=` on type `(HashSet<usize>, usize)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0368, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `leetcode` (bin "lc1487") due to 6 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/bin/lc1096.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn expr(&self) -> Result<ParseTreeNode, String> {
[INFO] [stdout]    |                       ----------------------------- expected `Result<ParseTreeNode, String>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 99 |         node
[INFO] [stdout]    |         ^^^^ expected `Result<ParseTreeNode, String>`, found `ParseTreeNode`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Result<ParseTreeNode, String>`
[INFO] [stdout]             found struct `ParseTreeNode`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]    |
[INFO] [stdout] 99 |         Ok(node)
[INFO] [stdout]    |         +++    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/bin/lc1096.rs:102:24
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn union(&self) -> Result<ParseTreeNode, String> {}
[INFO] [stdout]     |        -----           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<ParseTreeNode, String>`, found `()`
[INFO] [stdout]     |        |
[INFO] [stdout]     |        implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Result<ParseTreeNode, String>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/bin/lc1096.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn concat(&self) -> Result<ParseTreeNode, String> {}
[INFO] [stdout]     |        ------           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<ParseTreeNode, String>`, found `()`
[INFO] [stdout]     |        |
[INFO] [stdout]     |        implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Result<ParseTreeNode, String>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `leetcode` (bin "lc1096") due to 5 previous errors; 1 warning emitted
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "616c43f549bfbd06d35adeffa7937a1a614d827cbf866fb68e5dd61373fe2bce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "616c43f549bfbd06d35adeffa7937a1a614d827cbf866fb68e5dd61373fe2bce", kill_on_drop: false }`
[INFO] [stdout] 616c43f549bfbd06d35adeffa7937a1a614d827cbf866fb68e5dd61373fe2bce
