[INFO] cloning repository https://github.com/Bright-Nabarro/game_of_life
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Bright-Nabarro/game_of_life" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBright-Nabarro%2Fgame_of_life", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBright-Nabarro%2Fgame_of_life'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8b6ff03dfe000bb0c232238058e9db4b2a959b02
[INFO] testing Bright-Nabarro/game_of_life against try#9f93af291970322f4f1c6315ccde4d7078201159 for pr-146098-6
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBright-Nabarro%2Fgame_of_life" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Bright-Nabarro/game_of_life
[INFO] finished tweaking git repo https://github.com/Bright-Nabarro/game_of_life
[INFO] tweaked toml for git repo https://github.com/Bright-Nabarro/game_of_life written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Bright-Nabarro/game_of_life on toolchain 9f93af291970322f4f1c6315ccde4d7078201159
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Bright-Nabarro/game_of_life 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" "+9f93af291970322f4f1c6315ccde4d7078201159" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] df6835ccbed94826e31819b724ed9faab9b0d9debb440622b8f01abedc713a6b
[INFO] running `Command { std: "docker" "start" "-a" "df6835ccbed94826e31819b724ed9faab9b0d9debb440622b8f01abedc713a6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "df6835ccbed94826e31819b724ed9faab9b0d9debb440622b8f01abedc713a6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df6835ccbed94826e31819b724ed9faab9b0d9debb440622b8f01abedc713a6b", kill_on_drop: false }`
[INFO] [stdout] df6835ccbed94826e31819b724ed9faab9b0d9debb440622b8f01abedc713a6b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 53f036ee4ee37b5e0553aa914a979d758c166d151174805d4c8a6efcdb31c059
[INFO] running `Command { std: "docker" "start" "-a" "53f036ee4ee37b5e0553aa914a979d758c166d151174805d4c8a6efcdb31c059", kill_on_drop: false }`
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling libc v0.2.173
[INFO] [stderr]    Compiling sdl2 v0.37.0
[INFO] [stderr]    Compiling sdl2-sys v0.37.0
[INFO] [stderr]    Compiling game_of_life v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Event`, `TextureCreator`, and `self`
[INFO] [stdout]   --> src/view/renderer.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  6 |         self,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]  7 |         TextureCreator,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |         Event,
[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: `camera`
[INFO] [stdout]   --> src/view/renderer.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         camera,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Canvas`, `Point`, `TextureCreator`, `pixels::PixelFormatEnum`, and `video`
[INFO] [stdout]   --> src/view/widget/camera.rs:5:9
[INFO] [stdout]    |
[INFO] [stdout]  5 |         TextureCreator,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]  6 |         Canvas,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |         Point
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 12 |     },
[INFO] [stdout] 13 |     video,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 14 |     pixels::PixelFormatEnum,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `camera` and `widget_base`
[INFO] [stdout]   --> src/controller/game_controller.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |         camera,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 13 |         widget_base,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `controller::game_controller`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use controller::game_controller;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/view/widget/camera.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let mut canvas = canvas.borrow_mut();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_color`
[INFO] [stdout]   --> src/view/widget/camera.rs:70:36
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn paint_grid_lines(&self, line_color: Color,
[INFO] [stdout]    |                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_color`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/view/widget/camera.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let height = query.height;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `canvas`
[INFO] [stdout]   --> src/view/widget/camera.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let mut canvas = canvas.borrow_mut();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_canvas`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/view/widget/camera.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         for i in 0..width {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Dead` is never constructed
[INFO] [stdout]  --> src/model/cell.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum CellState {
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] 3 |     Alive,
[INFO] [stdout] 4 |     Dead,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_dead` is never used
[INFO] [stdout]   --> src/model/cell.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Cell {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `alive_cells` and `upper_scale` are never read
[INFO] [stdout]  --> src/model/grid.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CellGrid {
[INFO] [stdout]   |            -------- fields in this struct
[INFO] [stdout] 5 |     alive_cells: HashSet<(i32, i32)>,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 6 |     upper_scale: i32,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `upper_scale`, `is_valid`, `is_alive`, `alive_cells`, and `from_alive_cells` are never used
[INFO] [stdout]   --> src/model/grid.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl CellGrid {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn upper_scale(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn is_valid(&self, (x, y): &(i32, i32)) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn is_alive(&self, addr: &(i32, i32)) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn alive_cells(&self) -> &HashSet<(i32, i32)> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn from_alive_cells(alive_cells: HashSet<(i32, i32)>, upper_scale: i32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RulesInterface` is never used
[INFO] [stdout]  --> src/model/rules.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait RulesInterface {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimpleRules` is never constructed
[INFO] [stdout]  --> src/model/rules.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct SimpleRules;
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cell_grid` is never read
[INFO] [stdout]   --> src/view/widget/camera.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ViewGrid {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 29 |     scale: usize,   // 一个cell对应几个像素
[INFO] [stdout] 30 |     cell_grid: Rc<RefCell<grid::CellGrid>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `paint_grid_lines` and `get_rect` are never used
[INFO] [stdout]   --> src/view/widget/camera.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl ViewGrid {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn paint_grid_lines(&self, line_color: Color,
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     fn get_rect(&self, x: i32, y: i32) -> Rect {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pos` is never read
[INFO] [stdout]   --> src/view/widget/camera.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 88 |     widget_base: widget_base::WidgetBase,
[INFO] [stdout] 89 |     pos: (i32, i32),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RcTexture` is never used
[INFO] [stdout]   --> src/view/widget/widget_base.rs:50:10
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub type RcTexture = Rc<RefCell<render::Texture>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlankWidgetBuilder` is never constructed
[INFO] [stdout]    --> src/view/widget/widget_base.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub struct BlankWidgetBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Vertical` is never constructed
[INFO] [stdout]   --> src/view/widget/layout.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum Direction {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] 28 |     Horizontal,
[INFO] [stdout] 29 |     Vertical,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `theme_manager` is never read
[INFO] [stdout]   --> src/controller/game_controller.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct GameContext {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 30 |     sdl_context: sdl2::Sdl,
[INFO] [stdout] 31 |     theme_manager: theme::RcThemeManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/view/widget/camera.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if scale < 0 || scale > CELL_PIXEL_UPPER {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note:  "cc" "-m64" "/tmp/rustc85BLq4/symbols.o" "<3 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/opt/rustwide/target/debug/deps/{libsdl2-c0180f8528a3539f,libsdl2_sys-abd693ae81cd1698,libbitflags-e2b4db6c651223da,liblazy_static-b3603208c0de2608,liblibc-2cce6b2c617967e5}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lSDL2" "-lSDL2_ttf" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustc85BLq4/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/game_of_life-bca836f762885706" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
[INFO] [stdout]   = note: some arguments are omitted. use `--verbose` to show all linker arguments
[INFO] [stdout]   = note: rust-lld: error: unable to find library -lSDL2_ttf
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `game_of_life` (bin "game_of_life") due to 1 previous error; 24 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "53f036ee4ee37b5e0553aa914a979d758c166d151174805d4c8a6efcdb31c059", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53f036ee4ee37b5e0553aa914a979d758c166d151174805d4c8a6efcdb31c059", kill_on_drop: false }`
[INFO] [stdout] 53f036ee4ee37b5e0553aa914a979d758c166d151174805d4c8a6efcdb31c059
