[INFO] cloning repository https://github.com/Crumbed/tui-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Crumbed/tui-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCrumbed%2Ftui-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCrumbed%2Ftui-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7062f5f887a8b45115d38ef7d9b9e6bc2510dc19
[INFO] checking Crumbed/tui-rs against try#f77b5bc6c7c84df104f86b0dd01d9490e3923fa8 for pr-147834
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCrumbed%2Ftui-rs" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Crumbed/tui-rs
[INFO] finished tweaking git repo https://github.com/Crumbed/tui-rs
[INFO] tweaked toml for git repo https://github.com/Crumbed/tui-rs written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Crumbed/tui-rs on toolchain f77b5bc6c7c84df104f86b0dd01d9490e3923fa8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Crumbed/tui-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" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e56a82b892706ebaba2c4a820817cf0a7e3036b64808a2a7595ae0afabdc161e
[INFO] running `Command { std: "docker" "start" "-a" "e56a82b892706ebaba2c4a820817cf0a7e3036b64808a2a7595ae0afabdc161e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e56a82b892706ebaba2c4a820817cf0a7e3036b64808a2a7595ae0afabdc161e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e56a82b892706ebaba2c4a820817cf0a7e3036b64808a2a7595ae0afabdc161e", kill_on_drop: false }`
[INFO] [stdout] e56a82b892706ebaba2c4a820817cf0a7e3036b64808a2a7595ae0afabdc161e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9a039aec464ccec902ae890e5c8d4fd9c1263fea78e3161f027a49a4e93a2b0b
[INFO] running `Command { std: "docker" "start" "-a" "9a039aec464ccec902ae890e5c8d4fd9c1263fea78e3161f027a49a4e93a2b0b", kill_on_drop: false }`
[INFO] [stderr]     Checking numtoa v0.1.0
[INFO] [stderr]     Checking termion v3.0.0
[INFO] [stderr]     Checking tui_lib v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cmp::max`
[INFO] [stdout]  --> src/shapes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::max;
[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 import: `std::cmp::min`
[INFO] [stdout]  --> src/shapes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io`
[INFO] [stdout]  --> src/widget.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fmt::Display, io, rc::Rc};
[INFO] [stdout]   |                         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shapes::DrawStyle`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use shapes::DrawStyle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shapes::ShapeDrawer`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use shapes::ShapeDrawer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::raw::IntoRawMode`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use termion::raw::IntoRawMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::stdout`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::io::stdout;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::max`
[INFO] [stdout]  --> src/shapes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::max;
[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 import: `std::cmp::min`
[INFO] [stdout]  --> src/shapes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io`
[INFO] [stdout]  --> src/widget.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fmt::Display, io, rc::Rc};
[INFO] [stdout]   |                         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shapes::DrawStyle`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use shapes::DrawStyle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shapes::ShapeDrawer`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use shapes::ShapeDrawer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::raw::IntoRawMode`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use termion::raw::IntoRawMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::stdout`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::io::stdout;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/widget.rs:51:23
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub body: Vec<Box<dyn TWidget>>,
[INFO] [stdout]    |                       ^^^^^^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/widget.rs:85:29
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn widget(body: Vec<Box<dyn TWidget>>) -> Box<Widget> {
[INFO] [stdout]    |                             ^^^^^^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/widget.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         body,
[INFO] [stdout]    |         ^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 |       let main = widget(vec![
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 26 | |         widget(vec![]),
[INFO] [stdout] 27 | |         widget(vec![]),
[INFO] [stdout] 28 | |         widget(vec![])
[INFO] [stdout] 29 | |     ]).pos(Vec2(0, 0))
[INFO] [stdout]    | |_____^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |         widget(vec![]),
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |         widget(vec![]),
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |         widget(vec![]),
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |         widget(vec![]),
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 28 |         widget(vec![])
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 28 |         widget(vec![])
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 |       let main = widget(vec![
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 26 | |         widget(vec![]),
[INFO] [stdout] 27 | |         widget(vec![]),
[INFO] [stdout] 28 | |         widget(vec![])
[INFO] [stdout] 29 | |     ]).pos(Vec2(0, 0))
[INFO] [stdout]    | |_____^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 |       let main = widget(vec![
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 26 | |         widget(vec![]),
[INFO] [stdout] 27 | |         widget(vec![]),
[INFO] [stdout] 28 | |         widget(vec![])
[INFO] [stdout] 29 | |     ]).pos(Vec2(0, 0))
[INFO] [stdout]    | |_____^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/widget.rs:51:23
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub body: Vec<Box<dyn TWidget>>,
[INFO] [stdout]    |                       ^^^^^^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/widget.rs:85:29
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn widget(body: Vec<Box<dyn TWidget>>) -> Box<Widget> {
[INFO] [stdout]    |                             ^^^^^^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0038`.
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/widget.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         body,
[INFO] [stdout]    |         ^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tui_lib` (bin "tui_lib" test) due to 12 previous errors; 9 warnings emitted
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 |       let main = widget(vec![
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 26 | |         widget(vec![]),
[INFO] [stdout] 27 | |         widget(vec![]),
[INFO] [stdout] 28 | |         widget(vec![])
[INFO] [stdout] 29 | |     ]).pos(Vec2(0, 0))
[INFO] [stdout]    | |_____^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |         widget(vec![]),
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |         widget(vec![]),
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |         widget(vec![]),
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |         widget(vec![]),
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 28 |         widget(vec![])
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 28 |         widget(vec![])
[INFO] [stdout]    |                ^^^^^^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 |       let main = widget(vec![
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 26 | |         widget(vec![]),
[INFO] [stdout] 27 | |         widget(vec![]),
[INFO] [stdout] 28 | |         widget(vec![])
[INFO] [stdout] 29 | |     ]).pos(Vec2(0, 0))
[INFO] [stdout]    | |_____^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `TWidget` is not dyn compatible
[INFO] [stdout]   --> src/main.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 |       let main = widget(vec![
[INFO] [stdout]    |  _______________________^
[INFO] [stdout] 26 | |         widget(vec![]),
[INFO] [stdout] 27 | |         widget(vec![]),
[INFO] [stdout] 28 | |         widget(vec![])
[INFO] [stdout] 29 | |     ]).pos(Vec2(0, 0))
[INFO] [stdout]    | |_____^ `TWidget` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/widget.rs:5:37
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait TWidget {
[INFO] [stdout]    |           ------- this trait is not dyn compatible...
[INFO] [stdout]  5 |     fn style(self, style: Style) -> Self;
[INFO] [stdout]    |                                     ^^^^ ...because method `style` references the `Self` type in its return type
[INFO] [stdout]  6 |     fn pos(self, pos: Vec2) -> Self;
[INFO] [stdout]    |                                ^^^^ ...because method `pos` references the `Self` type in its return type
[INFO] [stdout]  7 |     fn size(self, size: Vec2) -> Self;
[INFO] [stdout]    |                                  ^^^^ ...because method `size` references the `Self` type in its return type
[INFO] [stdout]    = help: consider moving `size` to another trait
[INFO] [stdout]    = help: consider moving `style` to another trait
[INFO] [stdout]    = help: consider moving `pos` to another trait
[INFO] [stdout]    = help: only type `widget::Widget` implements `TWidget`; consider using it directly instead.
[INFO] [stdout]    = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0038`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tui_lib` (bin "tui_lib") due to 12 previous errors; 9 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9a039aec464ccec902ae890e5c8d4fd9c1263fea78e3161f027a49a4e93a2b0b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9a039aec464ccec902ae890e5c8d4fd9c1263fea78e3161f027a49a4e93a2b0b", kill_on_drop: false }`
[INFO] [stdout] 9a039aec464ccec902ae890e5c8d4fd9c1263fea78e3161f027a49a4e93a2b0b
