[INFO] cloning repository https://github.com/Melesar/ghterm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Melesar/ghterm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMelesar%2Fghterm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMelesar%2Fghterm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 60cc4f5c5885c54623b2d0e6334e3c4ffe63ff3b
[INFO] testing Melesar/ghterm against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMelesar%2Fghterm" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Melesar/ghterm
[INFO] finished tweaking git repo https://github.com/Melesar/ghterm
[INFO] tweaked toml for git repo https://github.com/Melesar/ghterm written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Melesar/ghterm on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Melesar/ghterm 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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded signal-hook v0.3.10
[INFO] [stderr]   Downloaded args v2.2.0
[INFO] [stderr]   Downloaded json v0.12.4
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.1
[INFO] [stderr]   Downloaded tui v0.16.0
[INFO] [stderr]   Downloaded crossterm v0.20.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cc84b967e6f515d48cec1d41a7785d01ab49722c4ff9dcd88a67ed54f3c9e1ad
[INFO] running `Command { std: "docker" "start" "-a" "cc84b967e6f515d48cec1d41a7785d01ab49722c4ff9dcd88a67ed54f3c9e1ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cc84b967e6f515d48cec1d41a7785d01ab49722c4ff9dcd88a67ed54f3c9e1ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cc84b967e6f515d48cec1d41a7785d01ab49722c4ff9dcd88a67ed54f3c9e1ad", kill_on_drop: false }`
[INFO] [stdout] cc84b967e6f515d48cec1d41a7785d01ab49722c4ff9dcd88a67ed54f3c9e1ad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8040348b72131a92872105378749b7ce606914d713b013bb1c492fae4511f422
[INFO] running `Command { std: "docker" "start" "-a" "8040348b72131a92872105378749b7ce606914d713b013bb1c492fae4511f422", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.106
[INFO] [stderr]    Compiling signal-hook v0.3.10
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]    Compiling instant v0.1.12
[INFO] [stderr]    Compiling smallvec v1.7.0
[INFO] [stderr]    Compiling numtoa v0.1.0
[INFO] [stderr]    Compiling unicode-segmentation v1.8.0
[INFO] [stderr]    Compiling json v0.12.4
[INFO] [stderr]    Compiling lock_api v0.4.5
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling getopts v0.2.21
[INFO] [stderr]    Compiling if_chain v1.0.2
[INFO] [stderr]    Compiling xdg v2.2.0
[INFO] [stderr]    Compiling args v2.2.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling mio v0.7.14
[INFO] [stderr]    Compiling time v0.1.44
[INFO] [stderr]    Compiling termion v1.5.6
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling signal-hook-mio v0.2.1
[INFO] [stderr]    Compiling crossterm v0.20.0
[INFO] [stderr]    Compiling tui v0.16.0
[INFO] [stderr]    Compiling ghterm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `PrHeader`
[INFO] [stdout]  --> src/frontend/repo_selection_handler.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::backend::pr::{self, PrHeader};
[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: `Block`, `Borders`, `Color`, `Modifier`, `Span`, and `Style`
[INFO] [stdout]   --> src/frontend/main_screen.rs:8:15
[INFO] [stdout]    |
[INFO] [stdout]  8 |     widgets::{Block, Borders, Tabs},
[INFO] [stdout]    |               ^^^^^  ^^^^^^^
[INFO] [stdout]  9 |     style::{Style, Modifier, Color},
[INFO] [stdout]    |             ^^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 10 |     text::{Spans, Span},
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rect`
[INFO] [stdout]   --> src/frontend/main_screen_handler.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::screen::{Rect, ApplicationScreen, DrawableScreen, InteractableScreen, ScreenHandler};
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borders`
[INFO] [stdout]  --> src/frontend/conversation_tab/conversation_tree.rs:2:46
[INFO] [stdout]   |
[INFO] [stdout] 2 |     widgets::{Widget, StatefulWidget, Block, Borders},
[INFO] [stdout]   |                                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/frontend/conversation_tab/conversation_tree_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ScreenWriter` and `Screen`
[INFO] [stdout]  --> src/frontend/conversation_tab/conversation_tree_state.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::frontend::screen::{ScreenWriter, Screen};
[INFO] [stdout]   |                               ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Alignment` and `BorderType`
[INFO] [stdout]   --> src/frontend/conversation_tab.rs:25:28
[INFO] [stdout]    |
[INFO] [stdout] 25 |     layout::{Rect, Layout, Alignment, Direction, Constraint},
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 26 |     widgets::{Block, Borders, BorderType},
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Backend`
[INFO] [stdout]   --> src/main.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tui::backend::{Backend, CrosstermBackend};
[INFO] [stdout]    |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |             MainScreenTab::Conversation(_) => "Conversation",
[INFO] [stdout]    |             ------------------------------ matches all the relevant values
[INFO] [stdout] 29 |             _ => "",
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |             MainScreenTab::Conversation(ct) => ct.validate_input(input),
[INFO] [stdout]    |             ------------------------------- matches all the relevant values
[INFO] [stdout] 39 |             _ => false,
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |             MainScreenTab::Conversation(ct) => ct.process_input(input),
[INFO] [stdout]    |             ------------------------------- matches all the relevant values
[INFO] [stdout] 46 |             _ => (),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:67:16
[INFO] [stdout]    |
[INFO] [stdout] 67 |             if let MainScreenTab::Conversation(ct) = tab {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:78:16
[INFO] [stdout]    |
[INFO] [stdout] 78 |             if let MainScreenTab::Conversation(ct) = tab {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evt`
[INFO] [stdout]   --> src/frontend/main_screen_handler.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 |         if let Some(evt) = self.screen_events_receiver.try_recv().ok() {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_evt`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style`
[INFO] [stdout]   --> src/frontend/conversation_tab/conversation_draw.rs:70:53
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn draw(&self, area: Rect, buffer: &mut Buffer, style: Style, changelist: &Option<Rc<ChangeList>>) {
[INFO] [stdout]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `horizontal_offset`
[INFO] [stdout]   --> src/frontend/conversation_tab.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let horizontal_offset = match input {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_horizontal_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrInfo` is never constructed
[INFO] [stdout]   --> src/backend/pr.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct PrInfo {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `timestamp` are never read
[INFO] [stdout]   --> src/backend/pr.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct PrComment {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 24 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub timestamp: DateTime<Local>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PrComment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_string_param` is never used
[INFO] [stdout]    --> src/backend/gh.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | impl GqlQueryBuilder {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn add_string_param(&mut self, param_name: &str, param_value: &str) -> &mut Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `line_index` is never read
[INFO] [stdout]   --> src/backend/diff.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct DiffReadingState {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] 43 |     pub line_index: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rect` is never constructed
[INFO] [stdout]  --> src/frontend/screen.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Rect {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `screen` is never used
[INFO] [stdout]   --> src/frontend/screen.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Rect {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 17 |     pub fn screen(&self) -> Screen {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]   --> src/frontend/screen.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Screen {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/frontend/screen.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Screen {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  43 |     pub fn new(rect: Rect) -> Screen {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn draw_border(&self, buffer: &mut dyn Write) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn merge_vertically(top: Screen, bottom: Screen) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn merge_horizontally(left: Screen, right: Screen) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn split_vertically(&mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn split_horizontally(&mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn get_writer(&self) -> ScreenWriter {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn get_full_rect(&self) -> Rect {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_content_rect(&self) -> Rect {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScreenWriter` is never constructed
[INFO] [stdout]    --> src/frontend/screen.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct ScreenWriter {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/screen.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl ScreenWriter {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 121 |     fn available_width(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn left_padding(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn draw_selection(&self, buffer: &mut dyn Write, y_pos: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn write_line(&mut self, buffer: &mut dyn Write, message: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn write_line_truncated(&mut self, buffer: &mut dyn Write, message: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn set_selection(&mut self, is_selected: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn set_indent(&mut self, indent: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn separator(&mut self, buffer: &mut dyn Write) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `task_manager` and `client` are never read
[INFO] [stdout]   --> src/frontend/main_screen_handler.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct MainScreenHandler<'a> {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     task_manager: TaskManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 26 |     client: &'a GhClient,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `screen_event_sender` is never read
[INFO] [stdout]   --> src/frontend/conversation_tab.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ConversationTab {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 32 |     screen_event_sender: mpsc::Sender<MainScreenEvent>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `style` is never used
[INFO] [stdout]   --> src/frontend/conversation_tab/conversation_tree.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl<'a> ConversationTree<'a> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn style(mut self, style: Style) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `style` is never used
[INFO] [stdout]   --> src/frontend/conversation_tab/conversation_tree_content.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<'a> ConversationTreeContent<'a> {
[INFO] [stdout]    | ------------------------------------ method in this implementation
[INFO] [stdout] 31 |     pub fn style(mut self, style: Style) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabsState` is never constructed
[INFO] [stdout]  --> src/frontend/util.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TabsState<'a> {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next`, and `previous` are never used
[INFO] [stdout]   --> src/frontend/util.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<'a> TabsState<'a> {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(titles: Vec<&'a str>) -> TabsState {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn next(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn previous(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_items` and `unselect` are never used
[INFO] [stdout]   --> src/frontend/util.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<T> StatefulList<T> {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn with_items(items: Vec<T>) -> StatefulList<T> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn unselect(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/frontend/util.rs:10:41
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn new(titles: Vec<&'a str>) -> TabsState {
[INFO] [stdout]    |                             --          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn new(titles: Vec<&'a str>) -> TabsState<'a> {
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.52s
[INFO] running `Command { std: "docker" "inspect" "8040348b72131a92872105378749b7ce606914d713b013bb1c492fae4511f422", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8040348b72131a92872105378749b7ce606914d713b013bb1c492fae4511f422", kill_on_drop: false }`
[INFO] [stdout] 8040348b72131a92872105378749b7ce606914d713b013bb1c492fae4511f422
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ecb61e7163876f42fc97b05b2dac119efdf343af1c5baa64d2c9042ccbf1b2fd
[INFO] running `Command { std: "docker" "start" "-a" "ecb61e7163876f42fc97b05b2dac119efdf343af1c5baa64d2c9042ccbf1b2fd", kill_on_drop: false }`
[INFO] [stderr]    Compiling ghterm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `PrHeader`
[INFO] [stdout]  --> src/frontend/repo_selection_handler.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::backend::pr::{self, PrHeader};
[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: `Block`, `Borders`, `Color`, `Modifier`, `Span`, and `Style`
[INFO] [stdout]   --> src/frontend/main_screen.rs:8:15
[INFO] [stdout]    |
[INFO] [stdout]  8 |     widgets::{Block, Borders, Tabs},
[INFO] [stdout]    |               ^^^^^  ^^^^^^^
[INFO] [stdout]  9 |     style::{Style, Modifier, Color},
[INFO] [stdout]    |             ^^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 10 |     text::{Spans, Span},
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rect`
[INFO] [stdout]   --> src/frontend/main_screen_handler.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::screen::{Rect, ApplicationScreen, DrawableScreen, InteractableScreen, ScreenHandler};
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borders`
[INFO] [stdout]  --> src/frontend/conversation_tab/conversation_tree.rs:2:46
[INFO] [stdout]   |
[INFO] [stdout] 2 |     widgets::{Widget, StatefulWidget, Block, Borders},
[INFO] [stdout]   |                                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/frontend/conversation_tab/conversation_tree_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ScreenWriter` and `Screen`
[INFO] [stdout]  --> src/frontend/conversation_tab/conversation_tree_state.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::frontend::screen::{ScreenWriter, Screen};
[INFO] [stdout]   |                               ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Alignment` and `BorderType`
[INFO] [stdout]   --> src/frontend/conversation_tab.rs:25:28
[INFO] [stdout]    |
[INFO] [stdout] 25 |     layout::{Rect, Layout, Alignment, Direction, Constraint},
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 26 |     widgets::{Block, Borders, BorderType},
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Backend`
[INFO] [stdout]   --> src/main.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tui::backend::{Backend, CrosstermBackend};
[INFO] [stdout]    |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |             MainScreenTab::Conversation(_) => "Conversation",
[INFO] [stdout]    |             ------------------------------ matches all the relevant values
[INFO] [stdout] 29 |             _ => "",
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |             MainScreenTab::Conversation(ct) => ct.validate_input(input),
[INFO] [stdout]    |             ------------------------------- matches all the relevant values
[INFO] [stdout] 39 |             _ => false,
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |             MainScreenTab::Conversation(ct) => ct.process_input(input),
[INFO] [stdout]    |             ------------------------------- matches all the relevant values
[INFO] [stdout] 46 |             _ => (),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:67:16
[INFO] [stdout]    |
[INFO] [stdout] 67 |             if let MainScreenTab::Conversation(ct) = tab {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/frontend/main_screen.rs:78:16
[INFO] [stdout]    |
[INFO] [stdout] 78 |             if let MainScreenTab::Conversation(ct) = tab {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evt`
[INFO] [stdout]   --> src/frontend/main_screen_handler.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 |         if let Some(evt) = self.screen_events_receiver.try_recv().ok() {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_evt`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style`
[INFO] [stdout]   --> src/frontend/conversation_tab/conversation_draw.rs:70:53
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn draw(&self, area: Rect, buffer: &mut Buffer, style: Style, changelist: &Option<Rc<ChangeList>>) {
[INFO] [stdout]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `horizontal_offset`
[INFO] [stdout]   --> src/frontend/conversation_tab.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let horizontal_offset = match input {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_horizontal_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrInfo` is never constructed
[INFO] [stdout]   --> src/backend/pr.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct PrInfo {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `timestamp` are never read
[INFO] [stdout]   --> src/backend/pr.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct PrComment {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 24 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub timestamp: DateTime<Local>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PrComment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_string_param` is never used
[INFO] [stdout]    --> src/backend/gh.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | impl GqlQueryBuilder {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn add_string_param(&mut self, param_name: &str, param_value: &str) -> &mut Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `line_index` is never read
[INFO] [stdout]   --> src/backend/diff.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct DiffReadingState {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] 43 |     pub line_index: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rect` is never constructed
[INFO] [stdout]  --> src/frontend/screen.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Rect {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `screen` is never used
[INFO] [stdout]   --> src/frontend/screen.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Rect {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 17 |     pub fn screen(&self) -> Screen {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]   --> src/frontend/screen.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Screen {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/frontend/screen.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Screen {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  43 |     pub fn new(rect: Rect) -> Screen {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn draw_border(&self, buffer: &mut dyn Write) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn merge_vertically(top: Screen, bottom: Screen) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn merge_horizontally(left: Screen, right: Screen) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn split_vertically(&mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn split_horizontally(&mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn get_writer(&self) -> ScreenWriter {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn get_full_rect(&self) -> Rect {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_content_rect(&self) -> Rect {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScreenWriter` is never constructed
[INFO] [stdout]    --> src/frontend/screen.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct ScreenWriter {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frontend/screen.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl ScreenWriter {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 121 |     fn available_width(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn left_padding(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn draw_selection(&self, buffer: &mut dyn Write, y_pos: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn write_line(&mut self, buffer: &mut dyn Write, message: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn write_line_truncated(&mut self, buffer: &mut dyn Write, message: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn set_selection(&mut self, is_selected: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn set_indent(&mut self, indent: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn separator(&mut self, buffer: &mut dyn Write) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `task_manager` and `client` are never read
[INFO] [stdout]   --> src/frontend/main_screen_handler.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct MainScreenHandler<'a> {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     task_manager: TaskManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 26 |     client: &'a GhClient,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `screen_event_sender` is never read
[INFO] [stdout]   --> src/frontend/conversation_tab.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ConversationTab {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 32 |     screen_event_sender: mpsc::Sender<MainScreenEvent>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `style` is never used
[INFO] [stdout]   --> src/frontend/conversation_tab/conversation_tree.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl<'a> ConversationTree<'a> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn style(mut self, style: Style) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `style` is never used
[INFO] [stdout]   --> src/frontend/conversation_tab/conversation_tree_content.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<'a> ConversationTreeContent<'a> {
[INFO] [stdout]    | ------------------------------------ method in this implementation
[INFO] [stdout] 31 |     pub fn style(mut self, style: Style) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabsState` is never constructed
[INFO] [stdout]  --> src/frontend/util.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TabsState<'a> {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next`, and `previous` are never used
[INFO] [stdout]   --> src/frontend/util.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<'a> TabsState<'a> {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(titles: Vec<&'a str>) -> TabsState {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn next(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn previous(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_items` and `unselect` are never used
[INFO] [stdout]   --> src/frontend/util.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<T> StatefulList<T> {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn with_items(items: Vec<T>) -> StatefulList<T> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn unselect(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/frontend/util.rs:10:41
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn new(titles: Vec<&'a str>) -> TabsState {
[INFO] [stdout]    |                             --          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn new(titles: Vec<&'a str>) -> TabsState<'a> {
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.33s
[INFO] running `Command { std: "docker" "inspect" "ecb61e7163876f42fc97b05b2dac119efdf343af1c5baa64d2c9042ccbf1b2fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ecb61e7163876f42fc97b05b2dac119efdf343af1c5baa64d2c9042ccbf1b2fd", kill_on_drop: false }`
[INFO] [stdout] ecb61e7163876f42fc97b05b2dac119efdf343af1c5baa64d2c9042ccbf1b2fd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f63736d2acb62a61c7174fb4beeca8a1a2867e15b0047d2168d2aece246a0177
[INFO] running `Command { std: "docker" "start" "-a" "f63736d2acb62a61c7174fb4beeca8a1a2867e15b0047d2168d2aece246a0177", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `PrHeader`
[INFO] [stderr]  --> src/frontend/repo_selection_handler.rs:3:32
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::backend::pr::{self, PrHeader};
[INFO] [stderr]   |                                ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Block`, `Borders`, `Color`, `Modifier`, `Span`, and `Style`
[INFO] [stderr]   --> src/frontend/main_screen.rs:8:15
[INFO] [stderr]    |
[INFO] [stderr]  8 |     widgets::{Block, Borders, Tabs},
[INFO] [stderr]    |               ^^^^^  ^^^^^^^
[INFO] [stderr]  9 |     style::{Style, Modifier, Color},
[INFO] [stderr]    |             ^^^^^  ^^^^^^^^  ^^^^^
[INFO] [stderr] 10 |     text::{Spans, Span},
[INFO] [stderr]    |                   ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Rect`
[INFO] [stderr]   --> src/frontend/main_screen_handler.rs:11:21
[INFO] [stderr]    |
[INFO] [stderr] 11 | use super::screen::{Rect, ApplicationScreen, DrawableScreen, InteractableScreen, ScreenHandler};
[INFO] [stderr]    |                     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Borders`
[INFO] [stderr]  --> src/frontend/conversation_tab/conversation_tree.rs:2:46
[INFO] [stderr]   |
[INFO] [stderr] 2 |     widgets::{Widget, StatefulWidget, Block, Borders},
[INFO] [stderr]   |                                              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]  --> src/frontend/conversation_tab/conversation_tree_state.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::io::Write;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ScreenWriter` and `Screen`
[INFO] [stderr]  --> src/frontend/conversation_tab/conversation_tree_state.rs:5:31
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::frontend::screen::{ScreenWriter, Screen};
[INFO] [stderr]   |                               ^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Alignment` and `BorderType`
[INFO] [stderr]   --> src/frontend/conversation_tab.rs:25:28
[INFO] [stderr]    |
[INFO] [stderr] 25 |     layout::{Rect, Layout, Alignment, Direction, Constraint},
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr] 26 |     widgets::{Block, Borders, BorderType},
[INFO] [stderr]    |                               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Backend`
[INFO] [stderr]   --> src/main.rs:18:20
[INFO] [stderr]    |
[INFO] [stderr] 18 | use tui::backend::{Backend, CrosstermBackend};
[INFO] [stderr]    |                    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/frontend/main_screen.rs:29:13
[INFO] [stderr]    |
[INFO] [stderr] 28 |             MainScreenTab::Conversation(_) => "Conversation",
[INFO] [stderr]    |             ------------------------------ matches all the relevant values
[INFO] [stderr] 29 |             _ => "",
[INFO] [stderr]    |             ^ no value can reach this
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/frontend/main_screen.rs:39:13
[INFO] [stderr]    |
[INFO] [stderr] 38 |             MainScreenTab::Conversation(ct) => ct.validate_input(input),
[INFO] [stderr]    |             ------------------------------- matches all the relevant values
[INFO] [stderr] 39 |             _ => false,
[INFO] [stderr]    |             ^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/frontend/main_screen.rs:46:13
[INFO] [stderr]    |
[INFO] [stderr] 45 |             MainScreenTab::Conversation(ct) => ct.process_input(input),
[INFO] [stderr]    |             ------------------------------- matches all the relevant values
[INFO] [stderr] 46 |             _ => (),
[INFO] [stderr]    |             ^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]   --> src/frontend/main_screen.rs:67:16
[INFO] [stderr]    |
[INFO] [stderr] 67 |             if let MainScreenTab::Conversation(ct) = tab {
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]    = help: consider replacing the `if let` with a `let`
[INFO] [stderr]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]   --> src/frontend/main_screen.rs:78:16
[INFO] [stderr]    |
[INFO] [stderr] 78 |             if let MainScreenTab::Conversation(ct) = tab {
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]    = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `evt`
[INFO] [stderr]   --> src/frontend/main_screen_handler.rs:55:21
[INFO] [stderr]    |
[INFO] [stderr] 55 |         if let Some(evt) = self.screen_events_receiver.try_recv().ok() {
[INFO] [stderr]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_evt`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `style`
[INFO] [stderr]   --> src/frontend/conversation_tab/conversation_draw.rs:70:53
[INFO] [stderr]    |
[INFO] [stderr] 70 |     fn draw(&self, area: Rect, buffer: &mut Buffer, style: Style, changelist: &Option<Rc<ChangeList>>) {
[INFO] [stderr]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_style`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `horizontal_offset`
[INFO] [stderr]   --> src/frontend/conversation_tab.rs:87:13
[INFO] [stderr]    |
[INFO] [stderr] 87 |         let horizontal_offset = match input {
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_horizontal_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PrInfo` is never constructed
[INFO] [stderr]   --> src/backend/pr.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct PrInfo {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id` and `timestamp` are never read
[INFO] [stderr]   --> src/backend/pr.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct PrComment {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] 24 |     pub id: String,
[INFO] [stderr]    |         ^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub timestamp: DateTime<Local>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PrComment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `add_string_param` is never used
[INFO] [stderr]    --> src/backend/gh.rs:158:8
[INFO] [stderr]     |
[INFO] [stderr] 141 | impl GqlQueryBuilder {
[INFO] [stderr]     | -------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 158 |     fn add_string_param(&mut self, param_name: &str, param_value: &str) -> &mut Self {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `line_index` is never read
[INFO] [stderr]   --> src/backend/diff.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 42 | struct DiffReadingState {
[INFO] [stderr]    |        ---------------- field in this struct
[INFO] [stderr] 43 |     pub line_index: usize,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Rect` is never constructed
[INFO] [stderr]  --> src/frontend/screen.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub struct Rect {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `screen` is never used
[INFO] [stderr]   --> src/frontend/screen.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl Rect {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 17 |     pub fn screen(&self) -> Screen {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Screen` is never constructed
[INFO] [stderr]   --> src/frontend/screen.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub struct Screen {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/frontend/screen.rs:43:12
[INFO] [stderr]     |
[INFO] [stderr]  42 | impl Screen {
[INFO] [stderr]     | ----------- associated items in this implementation
[INFO] [stderr]  43 |     pub fn new(rect: Rect) -> Screen {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  47 |     pub fn draw_border(&self, buffer: &mut dyn Write) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  71 |     pub fn merge_vertically(top: Screen, bottom: Screen) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  76 |     pub fn merge_horizontally(left: Screen, right: Screen) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  81 |     pub fn split_vertically(&mut self) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  88 |     pub fn split_horizontally(&mut self) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  95 |     pub fn get_writer(&self) -> ScreenWriter {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  99 |     pub fn get_full_rect(&self) -> Rect {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub fn get_content_rect(&self) -> Rect {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ScreenWriter` is never constructed
[INFO] [stderr]    --> src/frontend/screen.rs:113:12
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub struct ScreenWriter {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/frontend/screen.rs:121:8
[INFO] [stderr]     |
[INFO] [stderr] 120 | impl ScreenWriter {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] 121 |     fn available_width(&self) -> u16 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     fn left_padding(&self) -> u16 {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 129 |     fn draw_selection(&self, buffer: &mut dyn Write, y_pos: u16) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 137 |     pub fn write_line(&mut self, buffer: &mut dyn Write, message: &str) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn write_line_truncated(&mut self, buffer: &mut dyn Write, message: &str) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 198 |     pub fn set_selection(&mut self, is_selected: bool) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 202 |     pub fn set_indent(&mut self, indent: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     pub fn separator(&mut self, buffer: &mut dyn Write) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `task_manager` and `client` are never read
[INFO] [stderr]   --> src/frontend/main_screen_handler.rs:25:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub struct MainScreenHandler<'a> {
[INFO] [stderr]    |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 25 |     task_manager: TaskManager,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 26 |     client: &'a GhClient,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `screen_event_sender` is never read
[INFO] [stderr]   --> src/frontend/conversation_tab.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub struct ConversationTab {
[INFO] [stderr]    |            --------------- field in this struct
[INFO] [stderr] 32 |     screen_event_sender: mpsc::Sender<MainScreenEvent>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `style` is never used
[INFO] [stderr]   --> src/frontend/conversation_tab/conversation_tree.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 39 | impl<'a> ConversationTree<'a> {
[INFO] [stderr]    | ----------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 45 |     pub fn style(mut self, style: Style) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `style` is never used
[INFO] [stderr]   --> src/frontend/conversation_tab/conversation_tree_content.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | impl<'a> ConversationTreeContent<'a> {
[INFO] [stderr]    | ------------------------------------ method in this implementation
[INFO] [stderr] 31 |     pub fn style(mut self, style: Style) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TabsState` is never constructed
[INFO] [stderr]  --> src/frontend/util.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct TabsState<'a> {
[INFO] [stderr]   |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `next`, and `previous` are never used
[INFO] [stderr]   --> src/frontend/util.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl<'a> TabsState<'a> {
[INFO] [stderr]    | ---------------------- associated items in this implementation
[INFO] [stderr] 10 |     pub fn new(titles: Vec<&'a str>) -> TabsState {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 13 |     pub fn next(&mut self) {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 |     pub fn previous(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `with_items` and `unselect` are never used
[INFO] [stderr]   --> src/frontend/util.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl<T> StatefulList<T> {
[INFO] [stderr]    | ----------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn with_items(items: Vec<T>) -> StatefulList<T> {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 82 |     pub fn unselect(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]   --> src/frontend/util.rs:10:41
[INFO] [stderr]    |
[INFO] [stderr] 10 |     pub fn new(titles: Vec<&'a str>) -> TabsState {
[INFO] [stderr]    |                             --          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             the lifetime is named here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 10 |     pub fn new(titles: Vec<&'a str>) -> TabsState<'a> {
[INFO] [stderr]    |                                                  ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `ghterm` (bin "ghterm" test) generated 34 warnings (run `cargo fix --bin "ghterm" -p ghterm --tests` to apply 12 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ghterm-6fab8791c9f6b23b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test backend::diff::tests::test ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- backend::diff::tests::test stdout ----
[INFO] [stdout] Error: "No such file or directory (os error 2)"
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     backend::diff::tests::test
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin ghterm`
[INFO] running `Command { std: "docker" "inspect" "f63736d2acb62a61c7174fb4beeca8a1a2867e15b0047d2168d2aece246a0177", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f63736d2acb62a61c7174fb4beeca8a1a2867e15b0047d2168d2aece246a0177", kill_on_drop: false }`
[INFO] [stdout] f63736d2acb62a61c7174fb4beeca8a1a2867e15b0047d2168d2aece246a0177
