[INFO] cloning repository https://github.com/Alalit1/SkillRoots
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Alalit1/SkillRoots" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlalit1%2FSkillRoots", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlalit1%2FSkillRoots'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dcc034f56135055839915ec0aa2770661115daf0
[INFO] checking Alalit1/SkillRoots against try#66388cc165a6c4ac98c074dc9f0281ff23528c55 for pr-150727
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlalit1%2FSkillRoots" "/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/Alalit1/SkillRoots
[INFO] finished tweaking git repo https://github.com/Alalit1/SkillRoots
[INFO] tweaked toml for git repo https://github.com/Alalit1/SkillRoots written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Alalit1/SkillRoots on toolchain 66388cc165a6c4ac98c074dc9f0281ff23528c55
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Alalit1/SkillRoots 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" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] da7eb7ed898a85b22f99caed4c615fcade22808fd642ef3332f213d8a3b4af32
[INFO] running `Command { std: "docker" "start" "-a" "da7eb7ed898a85b22f99caed4c615fcade22808fd642ef3332f213d8a3b4af32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da7eb7ed898a85b22f99caed4c615fcade22808fd642ef3332f213d8a3b4af32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da7eb7ed898a85b22f99caed4c615fcade22808fd642ef3332f213d8a3b4af32", kill_on_drop: false }`
[INFO] [stdout] da7eb7ed898a85b22f99caed4c615fcade22808fd642ef3332f213d8a3b4af32
[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=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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6eddf5c9d7a4c124685e2592c9fadefdd59f077c89462ab727db0f5c4dd6ca30
[INFO] running `Command { std: "docker" "start" "-a" "6eddf5c9d7a4c124685e2592c9fadefdd59f077c89462ab727db0f5c4dd6ca30", kill_on_drop: false }`
[INFO] [stderr]    Compiling find-msvc-tools v0.1.2
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]     Checking bitflags v2.9.4
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling convert_case v0.7.1
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling cc v1.2.38
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling fltk-sys v1.5.14
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking fltk v1.5.14
[INFO] [stderr]     Checking SkillRoots v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0425]: cannot find function `menu` in module `ui`
[INFO] [stdout]   --> src/screenmanager.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         ui::menu(&mut wind);
[INFO] [stdout]    |             ^^^^ not found in `ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `menu` in module `ui`
[INFO] [stdout]   --> src/screenmanager.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         ui::menu(&mut wind);
[INFO] [stdout]    |             ^^^^ not found in `ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fltk::group::Group`
[INFO] [stdout]  --> src/screenmanager.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use fltk::group::Group;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `button::Button` and `window::Window`
[INFO] [stdout]  --> src/ui.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use fltk::{button::Button, frame::Frame, group::Group, prelude::*, window::Window};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^                                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fltk::enums::Color`
[INFO] [stdout]  --> src/ui.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fltk::enums::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fltk::group::Group`
[INFO] [stdout]  --> src/screenmanager.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use fltk::group::Group;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `button::Button` and `window::Window`
[INFO] [stdout]  --> src/ui.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use fltk::{button::Button, frame::Frame, group::Group, prelude::*, window::Window};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^                                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fltk::enums::Color`
[INFO] [stdout]  --> src/ui.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fltk::enums::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> src/ui.rs:38:41
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let action = b.action;
[INFO] [stdout]    |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 38 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              captured by this `FnMut` closure
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> src/vidgets.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     F: FnMut() + 'static,
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]   --> src/ui.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Action {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 38 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> src/ui.rs:38:41
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let action = b.action;
[INFO] [stdout]    |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 38 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              captured by this `FnMut` closure
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> src/vidgets.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     F: FnMut() + 'static,
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]   --> src/ui.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Action {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 38 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> src/ui.rs:65:41
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let action = b.action;
[INFO] [stdout]    |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 65 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              captured by this `FnMut` closure
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> src/vidgets.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     F: FnMut() + 'static,
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]   --> src/ui.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Action {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 65 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> src/ui.rs:65:41
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let action = b.action;
[INFO] [stdout]    |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 65 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              captured by this `FnMut` closure
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> src/vidgets.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     F: FnMut() + 'static,
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]   --> src/ui.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Action {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 65 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> src/ui.rs:92:41
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let action = b.action;
[INFO] [stdout]    |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 92 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              captured by this `FnMut` closure
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> src/vidgets.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     F: FnMut() + 'static,
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]   --> src/ui.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Action {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 92 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> src/ui.rs:119:41
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let action = b.action;
[INFO] [stdout]     |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 119 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]     |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              captured by this `FnMut` closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> src/vidgets.rs:17:8
[INFO] [stdout]     |
[INFO] [stdout]  17 |     F: FnMut() + 'static,
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/ui.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub enum Action {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 119 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]     |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> src/ui.rs:146:41
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let action = b.action;
[INFO] [stdout]     |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 146 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]     |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              captured by this `FnMut` closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> src/vidgets.rs:17:8
[INFO] [stdout]     |
[INFO] [stdout]  17 |     F: FnMut() + 'static,
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/ui.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub enum Action {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 146 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]     |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> src/ui.rs:92:41
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let action = b.action;
[INFO] [stdout]    |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 92 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              captured by this `FnMut` closure
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> src/vidgets.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     F: FnMut() + 'static,
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]   --> src/ui.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Action {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 92 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]    |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> src/ui.rs:119:41
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let action = b.action;
[INFO] [stdout]     |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 119 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]     |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              captured by this `FnMut` closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> src/vidgets.rs:17:8
[INFO] [stdout]     |
[INFO] [stdout]  17 |     F: FnMut() + 'static,
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/ui.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub enum Action {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 119 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]     |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `action`, a captured variable in an `FnMut` closure
[INFO] [stdout]    --> src/ui.rs:146:41
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let action = b.action;
[INFO] [stdout]     |             ------   -------- move occurs because `action` has type `Action`, which does not implement the `Copy` trait
[INFO] [stdout]     |             |
[INFO] [stdout]     |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 146 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]     |                              -------    ^^^^^^ `action` is moved here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              captured by this `FnMut` closure
[INFO] [stdout]     |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]    --> src/vidgets.rs:17:8
[INFO] [stdout]     |
[INFO] [stdout]  17 |     F: FnMut() + 'static,
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] note: if `Action` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/ui.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub enum Action {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 146 |         create_button(b.cfg, move || cb(action));
[INFO] [stdout]     |                                         ------ you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let mut group = Group::new(0, 0, 400, 300, "");
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `SkillRoots` (bin "SkillRoots" test) due to 6 previous errors; 8 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `SkillRoots` (bin "SkillRoots") due to 6 previous errors; 8 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6eddf5c9d7a4c124685e2592c9fadefdd59f077c89462ab727db0f5c4dd6ca30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6eddf5c9d7a4c124685e2592c9fadefdd59f077c89462ab727db0f5c4dd6ca30", kill_on_drop: false }`
[INFO] [stdout] 6eddf5c9d7a4c124685e2592c9fadefdd59f077c89462ab727db0f5c4dd6ca30
