[INFO] cloning repository https://github.com/jiwonac/union-maxmin
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jiwonac/union-maxmin" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjiwonac%2Funion-maxmin", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjiwonac%2Funion-maxmin'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 381d8285d995b78c401e7f5d3b2682addb21794b
[INFO] testing jiwonac/union-maxmin against beta-2026-04-21 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjiwonac%2Funion-maxmin" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jiwonac/union-maxmin
[INFO] finished tweaking git repo https://github.com/jiwonac/union-maxmin
[INFO] tweaked toml for git repo https://github.com/jiwonac/union-maxmin written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jiwonac/union-maxmin on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jiwonac/union-maxmin 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-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5e885f2e3b519d426e65a709f788c7d1adc85a92021d856bf2dcc203f0479086
[INFO] running `Command { std: "docker" "start" "-a" "5e885f2e3b519d426e65a709f788c7d1adc85a92021d856bf2dcc203f0479086", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5e885f2e3b519d426e65a709f788c7d1adc85a92021d856bf2dcc203f0479086", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5e885f2e3b519d426e65a709f788c7d1adc85a92021d856bf2dcc203f0479086", kill_on_drop: false }`
[INFO] [stdout] 5e885f2e3b519d426e65a709f788c7d1adc85a92021d856bf2dcc203f0479086
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ad328556df95add102874d6f7b16502f4b40135520623507cb6815b0e7932184
[INFO] running `Command { std: "docker" "start" "-a" "ad328556df95add102874d6f7b16502f4b40135520623507cb6815b0e7932184", kill_on_drop: false }`
[INFO] [stderr]    Compiling union-maxmin v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected one of `!`, `,`, `.`, `::`, `?`, `{`, `}`, or an operator, found `=>`
[INFO] [stdout]    --> src/lib.rs:139:14
[INFO] [stdout]     |
[INFO] [stdout] 139 |         None => 
[INFO] [stdout]     |              ^^ expected one of 8 possible tokens
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/lib.rs:42:15
[INFO] [stdout]    |
[INFO] [stdout] 42 |         name: &str,
[INFO] [stdout]    |               ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 39 ~ enum MathError<'a> {
[INFO] [stdout] 40 |     VectorDimensionMisMatch(usize, usize),
[INFO] [stdout] 41 |     OutsideOfDomain {
[INFO] [stdout] 42 ~         name: &'a str,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `len` in this scope
[INFO] [stdout]   --> src/lib.rs:59:28
[INFO] [stdout]    |
[INFO] [stdout] 59 |         if len(foo) != bar(len) {
[INFO] [stdout]    |                            ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `(dyn DistanceFn<Vec<f64>> + 'static)` cannot be known at compilation time
[INFO] [stdout]   --> src/lib.rs:49:34
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn get_lp_norm_fn(p: f64) -> Result<dyn DistanceFn<Vec<f64>>, MathError> {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `(dyn DistanceFn<Vec<f64>> + 'static)`
[INFO] [stdout] note: required by an implicit `Sized` bound in `Result`
[INFO] [stdout]   --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/result.rs:557:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[T]` cannot be known at compilation time
[INFO] [stdout]    --> src/lib.rs:109:50
[INFO] [stdout]     |
[INFO] [stdout] 109 |     k: i32, closest_in_solution: PrevClosest) -> [T] {
[INFO] [stdout]     |                                                  ^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `[T]`
[INFO] [stdout]     = note: the return type of a function must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/lib.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | /      if p < 1.0 {
[INFO] [stdout] 51 | |/         Err(MathError::OutsideOfDomain {
[INFO] [stdout] 52 | ||             name: "p",
[INFO] [stdout] 53 | ||             value: p,
[INFO] [stdout] 54 | ||             expected: (1.0, f64::INFINITY),
[INFO] [stdout] 55 | ||         })
[INFO] [stdout]    | ||__________^ expected `()`, found `Result<_, MathError>`
[INFO] [stdout] 56 | |      }
[INFO] [stdout]    | |______- `if` expressions without `else` arms expect their inner expression to be `()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<_, MathError>`
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]    |
[INFO] [stdout] 51 ~         return Err(MathError::OutsideOfDomain {
[INFO] [stdout] 52 |             name: "p",
[INFO] [stdout] 53 |             value: p,
[INFO] [stdout] 54 |             expected: (1.0, f64::INFINITY),
[INFO] [stdout] 55 ~         });
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `len` in this scope
[INFO] [stdout]   --> src/lib.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 |         if len(foo) != bar(len) {
[INFO] [stdout]    |            ^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: use the `.` operator to call the method `len` on `&Vec<f64>`
[INFO] [stdout]    |
[INFO] [stdout] 59 -         if len(foo) != bar(len) {
[INFO] [stdout] 59 +         if foo.len() != bar(len) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0618]: expected function, found `&Vec<f64>`
[INFO] [stdout]   --> src/lib.rs:59:24
[INFO] [stdout]    |
[INFO] [stdout] 58 |     |foo: &Vec<f64>, bar: &Vec<f64>| -> Result<f64, MathError> {
[INFO] [stdout]    |                      --- `bar` has type `&Vec<f64>`
[INFO] [stdout] 59 |         if len(foo) != bar(len) {
[INFO] [stdout]    |                        ^^^-----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        call expression requires function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `len` in this scope
[INFO] [stdout]   --> src/lib.rs:60:52
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(MathError::VectorDimensionMisMatch(len(foo), len(bar)))
[INFO] [stdout]    |                                                    ^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: use the `.` operator to call the method `len` on `&Vec<f64>`
[INFO] [stdout]    |
[INFO] [stdout] 60 -             Err(MathError::VectorDimensionMisMatch(len(foo), len(bar)))
[INFO] [stdout] 60 +             Err(MathError::VectorDimensionMisMatch(foo.len(), len(bar)))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `len` in this scope
[INFO] [stdout]   --> src/lib.rs:60:62
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(MathError::VectorDimensionMisMatch(len(foo), len(bar)))
[INFO] [stdout]    |                                                              ^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: use the `.` operator to call the method `len` on `&Vec<f64>`
[INFO] [stdout]    |
[INFO] [stdout] 60 -             Err(MathError::VectorDimensionMisMatch(len(foo), len(bar)))
[INFO] [stdout] 60 +             Err(MathError::VectorDimensionMisMatch(len(foo), bar.len()))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/lib.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 59 | /         if len(foo) != bar(len) {
[INFO] [stdout] 60 | |             Err(MathError::VectorDimensionMisMatch(len(foo), len(bar)))
[INFO] [stdout]    | |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<_, MathError>`
[INFO] [stdout] 61 | |         }
[INFO] [stdout]    | |_________- `if` expressions without `else` arms expect their inner expression to be `()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<_, MathError>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 60 |             Err(MathError::VectorDimensionMisMatch(len(foo), len(bar)));
[INFO] [stdout]    |                                                                        +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 61 |         };
[INFO] [stdout]    |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]    |
[INFO] [stdout] 60 |             return Err(MathError::VectorDimensionMisMatch(len(foo), len(bar)));
[INFO] [stdout]    |             ++++++                                                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `sum` found for struct `Vec<f64>` in the current scope
[INFO] [stdout]   --> src/lib.rs:66:29
[INFO] [stdout]    |
[INFO] [stdout] 66 |             1.0 => diff_vec.sum(),
[INFO] [stdout]    |                             ^^^ `Vec<f64>` is not an iterator
[INFO] [stdout]    |
[INFO] [stdout] help: call `.into_iter()` first
[INFO] [stdout]    |
[INFO] [stdout] 66 |             1.0 => diff_vec.into_iter().sum(),
[INFO] [stdout]    |                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `max` found for struct `Vec<f64>` in the current scope
[INFO] [stdout]   --> src/lib.rs:67:39
[INFO] [stdout]    |
[INFO] [stdout] 67 |             f64::INFINITY => diff_vec.max(),
[INFO] [stdout]    |                                       ^^^ `Vec<f64>` is not an iterator
[INFO] [stdout]    |
[INFO] [stdout] help: call `.into_iter()` first
[INFO] [stdout]    |
[INFO] [stdout] 67 |             f64::INFINITY => diff_vec.into_iter().max(),
[INFO] [stdout]    |                                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pow` found for type `f64` in the current scope
[INFO] [stdout]   --> src/lib.rs:69:53
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 diff_vec.into_iter().map(|x: f64| x.pow(p)).collect().sum()
[INFO] [stdout]    |                                                     ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `powf` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 diff_vec.into_iter().map(|x: f64| x.powf(p)).collect().sum()
[INFO] [stdout]    |                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/lib.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |   pub fn get_lp_norm_fn(p: f64) -> Result<dyn DistanceFn<Vec<f64>>, MathError> {
[INFO] [stdout]    |                                    ------------------------------------------- expected `Result<(dyn DistanceFn<Vec<f64>> + 'static), MathError>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 58 | /     |foo: &Vec<f64>, bar: &Vec<f64>| -> Result<f64, MathError> {
[INFO] [stdout] 59 | |         if len(foo) != bar(len) {
[INFO] [stdout] 60 | |             Err(MathError::VectorDimensionMisMatch(len(foo), len(bar)))
[INFO] [stdout] ...  |
[INFO] [stdout] 73 | |     }
[INFO] [stdout]    | |_____^ expected `Result<dyn DistanceFn<Vec<f64>>, ...>`, found closure
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Result<(dyn DistanceFn<Vec<f64>> + 'static), MathError>`
[INFO] [stdout]            found closure `{closure@src/lib.rs:58:5: 58:63}`
[INFO] [stdout] help: parentheses are required to parse this as an expression
[INFO] [stdout]    |
[INFO] [stdout] 50 ~     (if p < 1.0 {
[INFO] [stdout] 51 |         Err(MathError::OutsideOfDomain {
[INFO] [stdout] ...
[INFO] [stdout] 55 |         })
[INFO] [stdout] 56 ~     })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0615]: attempted to take value of method `abs` on type `f64`
[INFO] [stdout]   --> src/lib.rs:77:51
[INFO] [stdout]    |
[INFO] [stdout] 77 |     foo.into_iter().zip(bar).map(|(a, b)| (a - b).abs).collect()
[INFO] [stdout]    |                                                   ^^^ method, not a field
[INFO] [stdout]    |
[INFO] [stdout] help: use parentheses to call the method
[INFO] [stdout]    |
[INFO] [stdout] 77 |     foo.into_iter().zip(bar).map(|(a, b)| (a - b).abs()).collect()
[INFO] [stdout]    |                                                      ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[T]` cannot be known at compilation time
[INFO] [stdout]   --> src/lib.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |     points: [T], 
[INFO] [stdout]    |             ^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `[T]`
[INFO] [stdout] help: function arguments must have a statically known size, borrowed slices always have a known size
[INFO] [stdout]    |
[INFO] [stdout] 98 |     points: &[T], 
[INFO] [stdout]    |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `(dyn DistanceFn<T> + 'static)` cannot be known at compilation time
[INFO] [stdout]   --> src/lib.rs:99:14
[INFO] [stdout]    |
[INFO] [stdout] 99 |     dist_fn: dyn crate::DistanceFn<T>, 
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `(dyn DistanceFn<T> + 'static)`
[INFO] [stdout] help: you can use `impl Trait` as the argument type
[INFO] [stdout]    |
[INFO] [stdout] 99 -     dist_fn: dyn crate::DistanceFn<T>, 
[INFO] [stdout] 99 +     dist_fn: impl crate::DistanceFn<T>, 
[INFO] [stdout]    |
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]    |
[INFO] [stdout] 99 |     dist_fn: &dyn crate::DistanceFn<T>, 
[INFO] [stdout]    |              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/lib.rs:102:35
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub fn maxmin_solve<T>(
[INFO] [stdout]     |                     - found this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 102 |     let initial_solution: [i32] = greedy_initialization(&points, dist_fn, k, 
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: expected `&[i32]`, found `&[T]`
[INFO] [stdout]    --> src/lib.rs:102:57
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let initial_solution: [i32] = greedy_initialization(&points, dist_fn, k, 
[INFO] [stdout]     |                                                         ^^^^^^^
[INFO] [stdout]     = note: expected reference `&[i32]`
[INFO] [stdout]                found reference `&[T]`
[INFO] [stdout] note: expected `Vec<(Option<i32>, Option<f64>)>`, found `&mut Vec<(Option<i32>, Option<f64>)>`
[INFO] [stdout]    --> src/lib.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |         &mut closest_in_solution);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note:         expected struct `Vec<_>`
[INFO] [stdout]             found mutable reference `&mut Vec<_>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/lib.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn greedy_initialization<T>(points: &[T], dist_fn: dyn crate::DistanceFn<T>, 
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^    ------------
[INFO] [stdout] 109 |     k: i32, closest_in_solution: PrevClosest) -> [T] {
[INFO] [stdout]     |             --------------------------------
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 103 -         &mut closest_in_solution);
[INFO] [stdout] 103 +         closest_in_solution);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/lib.rs:102:35
[INFO] [stdout]     |
[INFO] [stdout]  96 |   pub fn maxmin_solve<T>(
[INFO] [stdout]     |                       - found this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 102 |       let initial_solution: [i32] = greedy_initialization(&points, dist_fn, k, 
[INFO] [stdout]     |  ___________________________-----___^
[INFO] [stdout]     | |                           |
[INFO] [stdout]     | |                           expected due to this
[INFO] [stdout] 103 | |         &mut closest_in_solution);
[INFO] [stdout]     | |_________________________________^ expected `[i32]`, found `[T]`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected slice `[i32]`
[INFO] [stdout]                found slice `[T]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
[INFO] [stdout]    --> src/lib.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let initial_solution: [i32] = greedy_initialization(&points, dist_fn, k, 
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `[i32]`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let initial_solution: &[i32] = greedy_initialization(&points, dist_fn, k, 
[INFO] [stdout]     |                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `(dyn DistanceFn<T> + 'static)` cannot be known at compilation time
[INFO] [stdout]    --> src/lib.rs:102:66
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let initial_solution: [i32] = greedy_initialization(&points, dist_fn, k, 
[INFO] [stdout]     |                                                                  ^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `(dyn DistanceFn<T> + 'static)`
[INFO] [stdout]     = note: all function arguments must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[T]` cannot be known at compilation time
[INFO] [stdout]    --> src/lib.rs:102:35
[INFO] [stdout]     |
[INFO] [stdout] 102 |       let initial_solution: [i32] = greedy_initialization(&points, dist_fn, k, 
[INFO] [stdout]     |  ___________________________________^
[INFO] [stdout] 103 | |         &mut closest_in_solution);
[INFO] [stdout]     | |_________________________________^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `[T]`
[INFO] [stdout]     = note: the return type of a function must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `(dyn DistanceFn<T> + 'static)` cannot be known at compilation time
[INFO] [stdout]    --> src/lib.rs:108:52
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn greedy_initialization<T>(points: &[T], dist_fn: dyn crate::DistanceFn<T>, 
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `(dyn DistanceFn<T> + 'static)`
[INFO] [stdout] help: you can use `impl Trait` as the argument type
[INFO] [stdout]     |
[INFO] [stdout] 108 - fn greedy_initialization<T>(points: &[T], dist_fn: dyn crate::DistanceFn<T>, 
[INFO] [stdout] 108 + fn greedy_initialization<T>(points: &[T], dist_fn: impl crate::DistanceFn<T>, 
[INFO] [stdout]     |
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn greedy_initialization<T>(points: &[T], dist_fn: &dyn crate::DistanceFn<T>, 
[INFO] [stdout]     |                                                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/lib.rs:111:53
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let mut solution: Vec<i32> = Vec::with_capacity(k);
[INFO] [stdout]     |                                  ------------------ ^ expected `usize`, found `i32`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/vec/mod.rs:523:17
[INFO] [stdout] help: you can convert an `i32` to a `usize` and panic if the converted value doesn't fit
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let mut solution: Vec<i32> = Vec::with_capacity(k.try_into().unwrap());
[INFO] [stdout]     |                                                      ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<i32>` cannot be built from an iterator over elements of type `usize`
[INFO] [stdout]    --> src/lib.rs:112:37
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut candidates: Vec<i32> = (0..points.len()).collect();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^  ------- required by a bound introduced by this call
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     value of type `Vec<i32>` cannot be built from `std::iter::Iterator<Item=usize>`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `FromIterator<usize>` is not implemented for `Vec<i32>`
[INFO] [stdout]       but trait `FromIterator<i32>` is implemented for it
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/vec/mod.rs:3888:0
[INFO] [stdout]     = help: for that trait implementation, expected `i32`, found `usize`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:2079:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/lib.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         if let Some(greedy_add_index) = greedy_add_choice(&candidates, 
[INFO] [stdout]     |                                         ----------------- arguments to this function are incorrect
[INFO] [stdout] 116 |             &closest_in_solution, points, dist_fn) {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ expected `Vec<(Option<i32>, Option<f64>)>`, found `&Vec<(Option<i32>, Option<f64>)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<_>`
[INFO] [stdout]             found reference `&Vec<_>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/lib.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn greedy_add_choice<T>(candidates: &Vec<i32>, closest_in_solution: PrevClosest,
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^                           --------------------------------
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 116 -             &closest_in_solution, points, dist_fn) {
[INFO] [stdout] 116 +             closest_in_solution, points, dist_fn) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `(dyn DistanceFn<T> + 'static)` cannot be known at compilation time
[INFO] [stdout]    --> src/lib.rs:116:43
[INFO] [stdout]     |
[INFO] [stdout] 116 |             &closest_in_solution, points, dist_fn) {
[INFO] [stdout]     |                                           ^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `(dyn DistanceFn<T> + 'static)`
[INFO] [stdout]     = note: all function arguments must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `(dyn DistanceFn<T> + 'static)` cannot be known at compilation time
[INFO] [stdout]    --> src/lib.rs:126:28
[INFO] [stdout]     |
[INFO] [stdout] 126 |     points: &[T], dist_fn: dyn crate::DistanceFn<T>) 
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `(dyn DistanceFn<T> + 'static)`
[INFO] [stdout] help: you can use `impl Trait` as the argument type
[INFO] [stdout]     |
[INFO] [stdout] 126 -     points: &[T], dist_fn: dyn crate::DistanceFn<T>) 
[INFO] [stdout] 126 +     points: &[T], dist_fn: impl crate::DistanceFn<T>) 
[INFO] [stdout]     |
[INFO] [stdout] help: function arguments must have a statically known size, borrowed types always have a known size
[INFO] [stdout]     |
[INFO] [stdout] 126 |     points: &[T], dist_fn: &dyn crate::DistanceFn<T>) 
[INFO] [stdout]     |                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/lib.rs:129:23
[INFO] [stdout]     |
[INFO] [stdout] 129 |         marginal_gain(x, points, closest_in_solution)) {
[INFO] [stdout]     |         ------------- ^ expected `i32`, found `&i32`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/lib.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn marginal_gain<T>(x: i32, points: &[T], closest_in_solution: PrevClosest) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^    ------
[INFO] [stdout] help: consider dereferencing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 129 |         marginal_gain(*x, points, closest_in_solution)) {
[INFO] [stdout]     |                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[(Option<i32>, Option<f64>)]` cannot be indexed by `i32`
[INFO] [stdout]    --> src/lib.rs:137:31
[INFO] [stdout]     |
[INFO] [stdout] 137 |     match closest_in_solution[x][0] {
[INFO] [stdout]     |                               ^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SliceIndex<[(Option<i32>, Option<f64>)]>` is not implemented for `i32`
[INFO] [stdout] help: `usize` implements trait `SliceIndex<T>`
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/bstr/traits.rs:197:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SliceIndex<ByteStr>`
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/slice/index.rs:214:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SliceIndex<[T]>`
[INFO] [stdout]     = note: required for `Vec<(Option<i32>, Option<f64>)>` to implement `Index<i32>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0106, E0277, E0308, E0425, E0599, E0615, E0618.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0106`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `union-maxmin` (lib) due to 31 previous errors
[INFO] running `Command { std: "docker" "inspect" "ad328556df95add102874d6f7b16502f4b40135520623507cb6815b0e7932184", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ad328556df95add102874d6f7b16502f4b40135520623507cb6815b0e7932184", kill_on_drop: false }`
[INFO] [stdout] ad328556df95add102874d6f7b16502f4b40135520623507cb6815b0e7932184
