[INFO] cloning repository https://github.com/bakerj76/rust-tetris
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bakerj76/rust-tetris" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbakerj76%2Frust-tetris", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbakerj76%2Frust-tetris'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8d335a3534657596a02d4b46307cc06b8b760993
[INFO] testing bakerj76/rust-tetris against 1.47.0 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbakerj76%2Frust-tetris" "/workspace/builds/worker-1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/bakerj76/rust-tetris on toolchain 1.47.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/bakerj76/rust-tetris
[INFO] finished tweaking git repo https://github.com/bakerj76/rust-tetris
[INFO] tweaked toml for git repo https://github.com/bakerj76/rust-tetris written to /workspace/builds/worker-1/source/Cargo.toml
[INFO] crate git repo https://github.com/bakerj76/rust-tetris already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] error: the lock file /workspace/builds/worker-1/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a16f91b404e88c1e593ba9d54d4a859b698198d8719a98add5d7914312f2caad
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "a16f91b404e88c1e593ba9d54d4a859b698198d8719a98add5d7914312f2caad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a16f91b404e88c1e593ba9d54d4a859b698198d8719a98add5d7914312f2caad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a16f91b404e88c1e593ba9d54d4a859b698198d8719a98add5d7914312f2caad", kill_on_drop: false }`
[INFO] [stdout] a16f91b404e88c1e593ba9d54d4a859b698198d8719a98add5d7914312f2caad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a65a0c10a908dcccf341d663712b707c95c30380ee4b70180a94e85ff22c214d
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "a65a0c10a908dcccf341d663712b707c95c30380ee4b70180a94e85ff22c214d", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.79
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling ttf-parser v0.6.2
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.4
[INFO] [stderr]    Compiling winit v0.23.0
[INFO] [stderr]    Compiling clock_ticks v0.1.1
[INFO] [stderr]    Compiling wayland-sys v0.28.1
[INFO] [stderr]    Compiling cgmath v0.17.0
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling wayland-scanner v0.28.1
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling line_drawing v0.8.0
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling glium v0.28.0
[INFO] [stderr]    Compiling wayland-client v0.28.1
[INFO] [stderr]    Compiling wayland-protocols v0.28.1
[INFO] [stderr]    Compiling owned_ttf_parser v0.6.0
[INFO] [stderr]    Compiling rusttype v0.9.2
[INFO] [stderr]    Compiling andrew v0.3.0
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling net2 v0.2.35
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling x11-dl v2.18.5
[INFO] [stderr]    Compiling parking_lot_core v0.8.0
[INFO] [stderr]    Compiling memmap v0.7.0
[INFO] [stderr]    Compiling raw-window-handle v0.3.3
[INFO] [stderr]    Compiling shared_library v0.1.9
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling backtrace v0.3.53
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling rayon-core v1.8.1
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling parking_lot v0.11.0
[INFO] [stderr]    Compiling mio v0.6.22
[INFO] [stderr]    Compiling rayon v1.4.1
[INFO] [stderr]    Compiling mio-extras v2.0.6
[INFO] [stderr]    Compiling jpeg-decoder v0.1.20
[INFO] [stderr]    Compiling wayland-commons v0.28.1
[INFO] [stderr]    Compiling calloop v0.6.5
[INFO] [stderr]    Compiling image v0.23.10
[INFO] [stderr]    Compiling wayland-cursor v0.28.1
[INFO] [stderr]    Compiling wayland-egl v0.28.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.12.0
[INFO] [stderr]    Compiling glutin v0.25.1
[INFO] [stderr]    Compiling tetris v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `glium::DisplayBuild`
[INFO] [stdout]  --> src/rootwindow.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glium::{DisplayBuild, Surface};
[INFO] [stdout]   |             ^^^^^^^^^^^^ no `DisplayBuild` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `glium::glutin::Event`, `glium::glutin::ElementState`, `glium::glutin::VirtualKeyCode`
[INFO] [stdout]  --> src/tetris.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use glium::glutin::{Event, ElementState, VirtualKeyCode};
[INFO] [stdout]   |                     ^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^ no `VirtualKeyCode` in `glutin`
[INFO] [stdout]   |                     |      |
[INFO] [stdout]   |                     |      no `ElementState` in `glutin`
[INFO] [stdout]   |                     no `Event` in `glutin`
[INFO] [stdout]   |                     help: a similar name exists in the module: `event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `glutin_backend` in `backend`
[INFO] [stdout]   --> src/rootwindow.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub display: glium::backend::glutin_backend::GlutinFacade,
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^ could not find `glutin_backend` in `backend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/rootwindow.rs:158:25
[INFO] [stdout]     |
[INFO] [stdout] 158 |                 glutin::Event::Closed => GameState::Exit,
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `glutin_backend` in `backend`
[INFO] [stdout]   --> src/sprite.rs:28:42
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(display: &glium::backend::glutin_backend::GlutinFacade,
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^ could not find `glutin_backend` in `backend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `glutin_backend` in `backend`
[INFO] [stdout]   --> src/sprite.rs:35:49
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new_tinted(display: &glium::backend::glutin_backend::GlutinFacade,
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^ could not find `glutin_backend` in `backend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `glutin_backend` in `backend`
[INFO] [stdout]   --> src/tetris.rs:57:55
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn start(&mut self, display: &glium::backend::glutin_backend::GlutinFacade)
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^ could not find `glutin_backend` in `backend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `glutin_backend` in `backend`
[INFO] [stdout]    --> src/tetris.rs:242:55
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn new_piece(&mut self, display: &glium::backend::glutin_backend::GlutinFacade)
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^ could not find `glutin_backend` in `backend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `glutin_backend` in `backend`
[INFO] [stdout]    --> src/tetris.rs:255:62
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn setup_background(&mut self, display: &glium::backend::glutin_backend::GlutinFacade)
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^ could not find `glutin_backend` in `backend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `glutin_backend` in `backend`
[INFO] [stdout]   --> src/tetromino.rs:35:42
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new(display: &glium::backend::glutin_backend::GlutinFacade, shape: Shape,
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^ could not find `glutin_backend` in `backend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `glutin_backend` in `backend`
[INFO] [stdout]    --> src/tetromino.rs:122:48
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn build_sprites(display: &glium::backend::glutin_backend::GlutinFacade, matrix: &CellMatrix)
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^ could not find `glutin_backend` in `backend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowBuilder` in `glutin`
[INFO] [stdout]   --> src/rootwindow.rs:49:38
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let display = glium::glutin::WindowBuilder::new()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^ not found in `glium::glutin`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 1  | use rootwindow::glutin::window::WindowBuilder;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `zero` in crate `cgmath`
[INFO] [stdout]   --> src/sprite.rs:79:31
[INFO] [stdout]    |
[INFO] [stdout] 79 |             position: cgmath::zero(),
[INFO] [stdout]    |                               ^^^^ not found in `cgmath`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use cgmath::num_traits::zero;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PNG` in crate `image`
[INFO] [stdout]   --> src/spritemanager.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |             image::PNG
[INFO] [stdout]    |                    ^^^ not found in `image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PNG` in crate `image`
[INFO] [stdout]   --> src/spritemanager.rs:34:20
[INFO] [stdout]    |
[INFO] [stdout] 34 |             image::PNG
[INFO] [stdout]    |                    ^^^ not found in `image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]    --> src/rootwindow.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |             thread::sleep_ms(((fixed_time_stamp - accumulator) as f64 / 1E+6) as u32);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/sprite.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 | /             vec![
[INFO] [stdout] 41 | |                 Vertex
[INFO] [stdout] 42 | |                 {
[INFO] [stdout] 43 | |                     position: [rect.left(), rect.top()],
[INFO] [stdout] ...  |
[INFO] [stdout] 66 | |                 },
[INFO] [stdout] 67 | |             ]
[INFO] [stdout]    | |_____________^ expected `&[_]`, found struct `std::vec::Vec`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&[_]`
[INFO] [stdout]                  found struct `std::vec::Vec<rootwindow::Vertex>`
[INFO] [stdout]    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/sprite.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |             vec![0, 2, 1, 0, 3, 2]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ expected `&[_]`, found struct `std::vec::Vec`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&[_]`
[INFO] [stdout]                  found struct `std::vec::Vec<{integer}>`
[INFO] [stdout]    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/sprite.rs:83:28
[INFO] [stdout]    |
[INFO] [stdout] 83 |             vertex_buffer: vertex_buffer,
[INFO] [stdout]    |                            ^^^^^^^^^^^^^ expected struct `glium::VertexBuffer`, found enum `std::result::Result`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `glium::VertexBuffer<rootwindow::Vertex>`
[INFO] [stdout]                 found enum `std::result::Result<glium::VertexBuffer<_>, glium::vertex::BufferCreationError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/sprite.rs:84:27
[INFO] [stdout]    |
[INFO] [stdout] 84 |             index_buffer: index_buffer,
[INFO] [stdout]    |                           ^^^^^^^^^^^^ expected struct `glium::IndexBuffer`, found enum `std::result::Result`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `glium::IndexBuffer<u16>`
[INFO] [stdout]                 found enum `std::result::Result<glium::IndexBuffer<_>, glium::index::BufferCreationError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `identity` found for struct `cgmath::Matrix4<f32>` in the current scope
[INFO] [stdout]   --> src/sprite.rs:96:41
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let rotmatrix = Matrix4::<f32>::identity();
[INFO] [stdout]    |                                         ^^^^^^^^ function or associated item not found in `cgmath::Matrix4<f32>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]            `use cgmath::SquareMatrix;`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/sprite.rs:98:53
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let translation = Matrix4::from_translation(&self.position);
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     expected struct `cgmath::Vector3`, found reference
[INFO] [stdout]    |                                                     help: consider removing the borrow: `self.position`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `cgmath::Vector3<_>`
[INFO] [stdout]            found reference `&cgmath::Vector3<f32>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `glium::DrawParameters<'_>` has no field named `blending_function`
[INFO] [stdout]    --> src/sprite.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |             blending_function:
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ `glium::DrawParameters<'_>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `depth`, `stencil`, `blend`, `color_mask`, `line_width` ... and 19 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `image::DynamicImage: glium::texture::Texture2dDataSource<'_>` is not satisfied
[INFO] [stdout]     --> src/spritemanager.rs:40:63
[INFO] [stdout]      |
[INFO] [stdout] 40   |                 texture::Texture2d::new(&root_window.display, sprite_sheet),
[INFO] [stdout]      |                                                               ^^^^^^^^^^^^ the trait `glium::texture::Texture2dDataSource<'_>` is not implemented for `image::DynamicImage`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: /opt/rustwide/target/debug/build/glium-408016289c01283e/out/textures.rs:2860:40
[INFO] [stdout]      |
[INFO] [stdout] 2860 | ...                   where T: Texture2dDataSource<'a>, F: Facade
[INFO] [stdout]      |                                ----------------------- required by this bound in `glium::Texture2d::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/spritemanager.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 texture::Texture2d::new(&root_window.display, sprite_sheet),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `glium::Texture2d`, found enum `std::result::Result`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `glium::Texture2d`
[INFO] [stdout]                 found enum `std::result::Result<glium::Texture2d, glium::texture::TextureCreationError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `image::DynamicImage: glium::texture::Texture2dDataSource<'_>` is not satisfied
[INFO] [stdout]     --> src/spritemanager.rs:41:63
[INFO] [stdout]      |
[INFO] [stdout] 41   |                 texture::Texture2d::new(&root_window.display, background),
[INFO] [stdout]      |                                                               ^^^^^^^^^^ the trait `glium::texture::Texture2dDataSource<'_>` is not implemented for `image::DynamicImage`
[INFO] [stdout]      | 
[INFO] [stdout]     ::: /opt/rustwide/target/debug/build/glium-408016289c01283e/out/textures.rs:2860:40
[INFO] [stdout]      |
[INFO] [stdout] 2860 | ...                   where T: Texture2dDataSource<'a>, F: Facade
[INFO] [stdout]      |                                ----------------------- required by this bound in `glium::Texture2d::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/tetris.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |             key_held: None,
[INFO] [stdout]    |                       ^^^^ cannot infer type for type parameter `T` declared on the enum `Option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Surface`
[INFO] [stdout]  --> src/rootwindow.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use glium::{DisplayBuild, Surface};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 26 previous errors; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0308, E0425, E0432, E0433, E0560, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tetris`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "a65a0c10a908dcccf341d663712b707c95c30380ee4b70180a94e85ff22c214d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a65a0c10a908dcccf341d663712b707c95c30380ee4b70180a94e85ff22c214d", kill_on_drop: false }`
[INFO] [stdout] a65a0c10a908dcccf341d663712b707c95c30380ee4b70180a94e85ff22c214d
