[INFO] cloning repository https://github.com/SystematicLoop/cherry
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SystematicLoop/cherry" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSystematicLoop%2Fcherry", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSystematicLoop%2Fcherry'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6afc7f93bd3c5c45191c1d68d2206a83a83dd8fc
[INFO] testing SystematicLoop/cherry against 1.47.0 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSystematicLoop%2Fcherry" "/workspace/builds/worker-5/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/SystematicLoop/cherry 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/SystematicLoop/cherry
[INFO] finished tweaking git repo https://github.com/SystematicLoop/cherry
[INFO] tweaked toml for git repo https://github.com/SystematicLoop/cherry written to /workspace/builds/worker-5/source/Cargo.toml
[INFO] crate git repo https://github.com/SystematicLoop/cherry 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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] 1aeb1a10ba25f26fd348c9d6a0330d16282027f059aeb3de0ee5bdcdd0a4e99f
[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" "1aeb1a10ba25f26fd348c9d6a0330d16282027f059aeb3de0ee5bdcdd0a4e99f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1aeb1a10ba25f26fd348c9d6a0330d16282027f059aeb3de0ee5bdcdd0a4e99f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1aeb1a10ba25f26fd348c9d6a0330d16282027f059aeb3de0ee5bdcdd0a4e99f", kill_on_drop: false }`
[INFO] [stdout] 1aeb1a10ba25f26fd348c9d6a0330d16282027f059aeb3de0ee5bdcdd0a4e99f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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] 3f611e9f4123f3fe54df3ada0ec7645a0af5fcba1206ec2d8b259dac242550f4
[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" "3f611e9f4123f3fe54df3ada0ec7645a0af5fcba1206ec2d8b259dac242550f4", kill_on_drop: false }`
[INFO] [stderr]    Compiling cherry v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type `SDL_Button` should have an upper camel case name
[INFO] [stdout]  --> src/sdl/mouse.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type SDL_Button = u8;
[INFO] [stdout]   |          ^^^^^^^^^^ help: convert the identifier to upper camel case: `SdlButton`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SDL_Scancode` should have an upper camel case name
[INFO] [stdout]  --> src/sdl/scancode.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type SDL_Scancode = u32;
[INFO] [stdout]   |          ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SdlScancode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initialiser`
[INFO] [stdout]  --> src/main.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let initialiser = Initialiser::init()
[INFO] [stdout]   |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initialiser`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/main.rs:30:38
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 Event::MouseButtonUp(event) => {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/main.rs:34:40
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 Event::MouseButtonDown(event) => {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/main.rs:38:30
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 Event::KeyUp(event) => {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/cherry/colour.rs:38:40
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn from_hsv(h: Degree, s: f32, v: f32) -> Self {
[INFO] [stdout]    |                                        ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reader`
[INFO] [stdout]   --> src/cherry/sprite.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let reader = BufReader::new(file);
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_MOUSEWHEEL`
[INFO] [stdout]  --> src/sdl/events.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const SDL_MOUSEWHEEL:      u32 = 0x403;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_NO_FLAGS`
[INFO] [stdout]  --> src/sdl/renderer.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const SDL_RENDERER_NO_FLAGS:      u32 = 0x00000000;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_SOFTWARE`
[INFO] [stdout]  --> src/sdl/renderer.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const SDL_RENDERER_SOFTWARE:      u32 = 0x00000001;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_ACCELERATED`
[INFO] [stdout]  --> src/sdl/renderer.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const SDL_RENDERER_ACCELERATED:   u32 = 0x00000002;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_PRESENTVSYNC`
[INFO] [stdout]  --> src/sdl/renderer.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const SDL_RENDERER_PRESENTVSYNC:  u32 = 0x00000004;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_TARGETTEXTURE`
[INFO] [stdout]  --> src/sdl/renderer.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const SDL_RENDERER_TARGETTEXTURE: u32 = 0x00000008;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_RenderClear`
[INFO] [stdout]   --> src/sdl/renderer.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn SDL_RenderClear(renderer: *mut SDL_Renderer) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_SetRenderDrawColor`
[INFO] [stdout]   --> src/sdl/renderer.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn SDL_SetRenderDrawColor(renderer: *mut SDL_Renderer, r: u8, g: u8, b: u8, a: u8) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_RenderDrawPoint`
[INFO] [stdout]   --> src/sdl/renderer.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn SDL_RenderDrawPoint(renderer: *mut SDL_Renderer, x: i32, y: i32) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_RenderDrawLine`
[INFO] [stdout]   --> src/sdl/renderer.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn SDL_RenderDrawLine(renderer: *mut SDL_Renderer, x1: i32, y1: i32, x2: i32, y2: i32) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_RenderDrawRect`
[INFO] [stdout]   --> src/sdl/renderer.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn SDL_RenderDrawRect(renderer: *mut SDL_Renderer, rect: SDL_Rect) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_TEXTUREACCESS_STATIC`
[INFO] [stdout]  --> src/sdl/texture.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const SDL_TEXTUREACCESS_STATIC:    i32 = 0;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_TEXTUREACCESS_TARGET`
[INFO] [stdout]  --> src/sdl/texture.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const SDL_TEXTUREACCESS_TARGET:    i32 = 2;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_PIXELFORMAT_RGB888`
[INFO] [stdout]   --> src/sdl/texture.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const SDL_PIXELFORMAT_RGB888: u32 = 370546692;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_WasInit`
[INFO] [stdout]  --> src/sdl/system.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub fn SDL_WasInit(flags: u32) -> u32;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]  --> src/cherry/colour.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub fn new(value: f32) -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `value`
[INFO] [stdout]   --> src/cherry/colour.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn value(self) -> f32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `between`
[INFO] [stdout]   --> src/cherry/colour.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn between(self, min: f32, max: f32) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `from_hsv`
[INFO] [stdout]   --> src/cherry/colour.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn from_hsv(h: Degree, s: f32, v: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `count`
[INFO] [stdout]   --> src/cherry/keycode.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 |     const fn count() -> usize {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `area`
[INFO] [stdout]   --> src/cherry/math/rect.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn area(self) -> i32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `intersect`
[INFO] [stdout]   --> src/cherry/math/rect.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn intersect(self, other: Self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `magnitude`
[INFO] [stdout]   --> src/cherry/math/vector.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn magnitude(self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `normalise`
[INFO] [stdout]   --> src/cherry/math/vector.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn normalise(self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `direction_to`
[INFO] [stdout]   --> src/cherry/math/vector.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn direction_to(self, other: Self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `distance_to`
[INFO] [stdout]   --> src/cherry/math/vector.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn distance_to(self, other: Self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `angle_rad`
[INFO] [stdout]   --> src/cherry/math/vector.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn angle_rad(self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `angle_deg`
[INFO] [stdout]   --> src/cherry/math/vector.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn angle_deg(self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `count`
[INFO] [stdout]   --> src/cherry/mouse.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn count() -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `virtual_size`
[INFO] [stdout]   --> src/cherry/renderer.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn virtual_size(&self) -> Dimension {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `virtual_width`
[INFO] [stdout]   --> src/cherry/renderer.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn virtual_width(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `virtual_height`
[INFO] [stdout]   --> src/cherry/renderer.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn virtual_height(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `draw_rect`
[INFO] [stdout]    --> src/cherry/renderer.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn draw_rect(&mut self, mut rect: Rect, colour: Colour) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `Sprite`
[INFO] [stdout]  --> src/cherry/sprite.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Sprite {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `load`
[INFO] [stdout]   --> src/cherry/sprite.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn load<P: AsRef<Path>>(path: P) -> Result<Self, ()> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `height`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn height(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `size`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn size(&self) -> Dimension {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `resize`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn resize(&mut self, size: Dimension) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `to_index_unchecked`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub unsafe fn to_index_unchecked(&self, x: i32, y: i32) -> usize {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `set_unchecked`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:65:19
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub unsafe fn set_unchecked(&mut self, x: i32, y: i32, colour: Colour) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `title`
[INFO] [stdout]  --> src/cherry/window.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     title:  String,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `size`
[INFO] [stdout]  --> src/cherry/window.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     size:   Dimension,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `title`
[INFO] [stdout]   --> src/cherry/window.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn title(&self) -> &String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `size`
[INFO] [stdout]   --> src/cherry/window.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn size(&self) -> Dimension {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::window::SDL_Window`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn SDL_CreateRenderer(window: *mut SDL_Window, index: i32, flags: u32) -> *mut SDL_Renderer;
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/window.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub struct SDL_Window;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:16:83
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn SDL_CreateRenderer(window: *mut SDL_Window, index: i32, flags: u32) -> *mut SDL_Renderer;
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:17:42
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn SDL_DestroyRenderer(renderer: *mut SDL_Renderer);
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:18:38
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn SDL_RenderClear(renderer: *mut SDL_Renderer) -> i32;
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn SDL_RenderCopy(renderer: *mut SDL_Renderer, texture: *mut SDL_Texture, src_rect: *const SDL_Rect, dst_rect: *const SDL_Rect) -...
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:19:65
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn SDL_RenderCopy(renderer: *mut SDL_Renderer, texture: *mut SDL_Texture, src_rect: *const SDL_Rect, dst_rect: *const SDL_Rect) -...
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/texture.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SDL_Texture;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn SDL_RenderPresent(renderer: *mut SDL_Renderer);
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:21:45
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn SDL_SetRenderDrawColor(renderer: *mut SDL_Renderer, r: u8, g: u8, b: u8, a: u8) -> i32;
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:22:42
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn SDL_RenderDrawPoint(renderer: *mut SDL_Renderer, x: i32, y: i32) -> i32;
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:23:41
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn SDL_RenderDrawLine(renderer: *mut SDL_Renderer, x1: i32, y1: i32, x2: i32, y2: i32) -> i32;
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:24:41
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn SDL_RenderDrawRect(renderer: *mut SDL_Renderer, rect: SDL_Rect) -> i32;
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:25:47
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn SDL_RenderSetLogicalSize(renderer: *mut SDL_Renderer, w: i32, h: i32) -> i32;
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/texture.rs:18:40
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn SDL_CreateTexture(renderer: *mut SDL_Renderer, format: u32, access: i32, w: i32, h: i32) -> *mut SDL_Texture;
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/texture.rs:18:104
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn SDL_CreateTexture(renderer: *mut SDL_Renderer, format: u32, access: i32, w: i32, h: i32) -> *mut SDL_Texture;
[INFO] [stdout]    |                                                                                                        ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/texture.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SDL_Texture;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/texture.rs:19:40
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn SDL_DestroyTexture(texture: *mut SDL_Texture);
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/texture.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SDL_Texture;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/texture.rs:20:39
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn SDL_UpdateTexture(texture: *mut SDL_Texture, rect: *const SDL_Rect, pixels: *const c_void, pitch: i32);
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/texture.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SDL_Texture;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::window::SDL_Window`, which is not FFI-safe
[INFO] [stdout]  --> src/sdl/window.rs:8:94
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn SDL_CreateWindow(title: *const u8, x: i32, y: i32, w: i32, h: i32, flags: u32) -> *mut SDL_Window;
[INFO] [stdout]   |                                                                                              ^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider adding a member to this struct
[INFO] [stdout]   = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]  --> src/sdl/window.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SDL_Window;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::window::SDL_Window`, which is not FFI-safe
[INFO] [stdout]  --> src/sdl/window.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub fn SDL_DestroyWindow(window: *mut SDL_Window);
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider adding a member to this struct
[INFO] [stdout]   = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]  --> src/sdl/window.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SDL_Window;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 70 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.46s
[INFO] running `Command { std: "docker" "inspect" "3f611e9f4123f3fe54df3ada0ec7645a0af5fcba1206ec2d8b259dac242550f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f611e9f4123f3fe54df3ada0ec7645a0af5fcba1206ec2d8b259dac242550f4", kill_on_drop: false }`
[INFO] [stdout] 3f611e9f4123f3fe54df3ada0ec7645a0af5fcba1206ec2d8b259dac242550f4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 03fc306ade34476f5b2508efa4d5f70fe5fd168d0b13a4c7c5c99348caf6feed
[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" "03fc306ade34476f5b2508efa4d5f70fe5fd168d0b13a4c7c5c99348caf6feed", kill_on_drop: false }`
[INFO] [stderr]    Compiling cherry v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type `SDL_Button` should have an upper camel case name
[INFO] [stdout]  --> src/sdl/mouse.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type SDL_Button = u8;
[INFO] [stdout]   |          ^^^^^^^^^^ help: convert the identifier to upper camel case: `SdlButton`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SDL_Scancode` should have an upper camel case name
[INFO] [stdout]  --> src/sdl/scancode.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type SDL_Scancode = u32;
[INFO] [stdout]   |          ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SdlScancode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initialiser`
[INFO] [stdout]  --> src/main.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let initialiser = Initialiser::init()
[INFO] [stdout]   |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initialiser`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/main.rs:30:38
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 Event::MouseButtonUp(event) => {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/main.rs:34:40
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 Event::MouseButtonDown(event) => {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/main.rs:38:30
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 Event::KeyUp(event) => {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/cherry/colour.rs:38:40
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn from_hsv(h: Degree, s: f32, v: f32) -> Self {
[INFO] [stdout]    |                                        ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reader`
[INFO] [stdout]   --> src/cherry/sprite.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let reader = BufReader::new(file);
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_MOUSEWHEEL`
[INFO] [stdout]  --> src/sdl/events.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const SDL_MOUSEWHEEL:      u32 = 0x403;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_NO_FLAGS`
[INFO] [stdout]  --> src/sdl/renderer.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const SDL_RENDERER_NO_FLAGS:      u32 = 0x00000000;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_SOFTWARE`
[INFO] [stdout]  --> src/sdl/renderer.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const SDL_RENDERER_SOFTWARE:      u32 = 0x00000001;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_ACCELERATED`
[INFO] [stdout]  --> src/sdl/renderer.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const SDL_RENDERER_ACCELERATED:   u32 = 0x00000002;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_PRESENTVSYNC`
[INFO] [stdout]  --> src/sdl/renderer.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const SDL_RENDERER_PRESENTVSYNC:  u32 = 0x00000004;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_RENDERER_TARGETTEXTURE`
[INFO] [stdout]  --> src/sdl/renderer.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const SDL_RENDERER_TARGETTEXTURE: u32 = 0x00000008;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_RenderClear`
[INFO] [stdout]   --> src/sdl/renderer.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn SDL_RenderClear(renderer: *mut SDL_Renderer) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_SetRenderDrawColor`
[INFO] [stdout]   --> src/sdl/renderer.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn SDL_SetRenderDrawColor(renderer: *mut SDL_Renderer, r: u8, g: u8, b: u8, a: u8) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_RenderDrawPoint`
[INFO] [stdout]   --> src/sdl/renderer.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn SDL_RenderDrawPoint(renderer: *mut SDL_Renderer, x: i32, y: i32) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_RenderDrawLine`
[INFO] [stdout]   --> src/sdl/renderer.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn SDL_RenderDrawLine(renderer: *mut SDL_Renderer, x1: i32, y1: i32, x2: i32, y2: i32) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_RenderDrawRect`
[INFO] [stdout]   --> src/sdl/renderer.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn SDL_RenderDrawRect(renderer: *mut SDL_Renderer, rect: SDL_Rect) -> i32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_TEXTUREACCESS_STATIC`
[INFO] [stdout]  --> src/sdl/texture.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const SDL_TEXTUREACCESS_STATIC:    i32 = 0;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_TEXTUREACCESS_TARGET`
[INFO] [stdout]  --> src/sdl/texture.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const SDL_TEXTUREACCESS_TARGET:    i32 = 2;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `SDL_PIXELFORMAT_RGB888`
[INFO] [stdout]   --> src/sdl/texture.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const SDL_PIXELFORMAT_RGB888: u32 = 370546692;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `SDL_WasInit`
[INFO] [stdout]  --> src/sdl/system.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub fn SDL_WasInit(flags: u32) -> u32;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]  --> src/cherry/colour.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub fn new(value: f32) -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `value`
[INFO] [stdout]   --> src/cherry/colour.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn value(self) -> f32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `between`
[INFO] [stdout]   --> src/cherry/colour.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn between(self, min: f32, max: f32) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `from_hsv`
[INFO] [stdout]   --> src/cherry/colour.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn from_hsv(h: Degree, s: f32, v: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `count`
[INFO] [stdout]   --> src/cherry/keycode.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 |     const fn count() -> usize {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `area`
[INFO] [stdout]   --> src/cherry/math/rect.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn area(self) -> i32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `intersect`
[INFO] [stdout]   --> src/cherry/math/rect.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn intersect(self, other: Self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `magnitude`
[INFO] [stdout]   --> src/cherry/math/vector.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn magnitude(self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `normalise`
[INFO] [stdout]   --> src/cherry/math/vector.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn normalise(self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `direction_to`
[INFO] [stdout]   --> src/cherry/math/vector.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn direction_to(self, other: Self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `distance_to`
[INFO] [stdout]   --> src/cherry/math/vector.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn distance_to(self, other: Self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `angle_rad`
[INFO] [stdout]   --> src/cherry/math/vector.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn angle_rad(self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `angle_deg`
[INFO] [stdout]   --> src/cherry/math/vector.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn angle_deg(self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `count`
[INFO] [stdout]   --> src/cherry/mouse.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn count() -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `virtual_size`
[INFO] [stdout]   --> src/cherry/renderer.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn virtual_size(&self) -> Dimension {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `virtual_width`
[INFO] [stdout]   --> src/cherry/renderer.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn virtual_width(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `virtual_height`
[INFO] [stdout]   --> src/cherry/renderer.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn virtual_height(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `draw_rect`
[INFO] [stdout]    --> src/cherry/renderer.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn draw_rect(&mut self, mut rect: Rect, colour: Colour) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `Sprite`
[INFO] [stdout]  --> src/cherry/sprite.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Sprite {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `load`
[INFO] [stdout]   --> src/cherry/sprite.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn load<P: AsRef<Path>>(path: P) -> Result<Self, ()> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `height`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn height(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `size`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn size(&self) -> Dimension {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `resize`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn resize(&mut self, size: Dimension) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `to_index_unchecked`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub unsafe fn to_index_unchecked(&self, x: i32, y: i32) -> usize {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `set_unchecked`
[INFO] [stdout]   --> src/cherry/window_buffer.rs:65:19
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub unsafe fn set_unchecked(&mut self, x: i32, y: i32, colour: Colour) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `title`
[INFO] [stdout]  --> src/cherry/window.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     title:  String,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `size`
[INFO] [stdout]  --> src/cherry/window.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     size:   Dimension,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `title`
[INFO] [stdout]   --> src/cherry/window.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn title(&self) -> &String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `size`
[INFO] [stdout]   --> src/cherry/window.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn size(&self) -> Dimension {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::window::SDL_Window`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn SDL_CreateRenderer(window: *mut SDL_Window, index: i32, flags: u32) -> *mut SDL_Renderer;
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/window.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub struct SDL_Window;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:16:83
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn SDL_CreateRenderer(window: *mut SDL_Window, index: i32, flags: u32) -> *mut SDL_Renderer;
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:17:42
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn SDL_DestroyRenderer(renderer: *mut SDL_Renderer);
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:18:38
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn SDL_RenderClear(renderer: *mut SDL_Renderer) -> i32;
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn SDL_RenderCopy(renderer: *mut SDL_Renderer, texture: *mut SDL_Texture, src_rect: *const SDL_Rect, dst_rect: *const SDL_Rect) -...
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:19:65
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn SDL_RenderCopy(renderer: *mut SDL_Renderer, texture: *mut SDL_Texture, src_rect: *const SDL_Rect, dst_rect: *const SDL_Rect) -...
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/texture.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SDL_Texture;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn SDL_RenderPresent(renderer: *mut SDL_Renderer);
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:21:45
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn SDL_SetRenderDrawColor(renderer: *mut SDL_Renderer, r: u8, g: u8, b: u8, a: u8) -> i32;
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:22:42
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn SDL_RenderDrawPoint(renderer: *mut SDL_Renderer, x: i32, y: i32) -> i32;
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:23:41
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn SDL_RenderDrawLine(renderer: *mut SDL_Renderer, x1: i32, y1: i32, x2: i32, y2: i32) -> i32;
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:24:41
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn SDL_RenderDrawRect(renderer: *mut SDL_Renderer, rect: SDL_Rect) -> i32;
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/renderer.rs:25:47
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn SDL_RenderSetLogicalSize(renderer: *mut SDL_Renderer, w: i32, h: i32) -> i32;
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/texture.rs:18:40
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn SDL_CreateTexture(renderer: *mut SDL_Renderer, format: u32, access: i32, w: i32, h: i32) -> *mut SDL_Texture;
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/renderer.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SDL_Renderer;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/texture.rs:18:104
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn SDL_CreateTexture(renderer: *mut SDL_Renderer, format: u32, access: i32, w: i32, h: i32) -> *mut SDL_Texture;
[INFO] [stdout]    |                                                                                                        ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/texture.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SDL_Texture;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/texture.rs:19:40
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn SDL_DestroyTexture(texture: *mut SDL_Texture);
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/texture.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SDL_Texture;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stdout]   --> src/sdl/texture.rs:20:39
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn SDL_UpdateTexture(texture: *mut SDL_Texture, rect: *const SDL_Rect, pixels: *const c_void, pitch: i32);
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a member to this struct
[INFO] [stdout]    = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/sdl/texture.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SDL_Texture;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::window::SDL_Window`, which is not FFI-safe
[INFO] [stdout]  --> src/sdl/window.rs:8:94
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub fn SDL_CreateWindow(title: *const u8, x: i32, y: i32, w: i32, h: i32, flags: u32) -> *mut SDL_Window;
[INFO] [stdout]   |                                                                                              ^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider adding a member to this struct
[INFO] [stdout]   = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]  --> src/sdl/window.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SDL_Window;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `sdl::window::SDL_Window`, which is not FFI-safe
[INFO] [stdout]  --> src/sdl/window.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub fn SDL_DestroyWindow(window: *mut SDL_Window);
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider adding a member to this struct
[INFO] [stdout]   = note: this struct has no fields
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]  --> src/sdl/window.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SDL_Window;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 70 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.98s
[INFO] running `Command { std: "docker" "inspect" "03fc306ade34476f5b2508efa4d5f70fe5fd168d0b13a4c7c5c99348caf6feed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "03fc306ade34476f5b2508efa4d5f70fe5fd168d0b13a4c7c5c99348caf6feed", kill_on_drop: false }`
[INFO] [stdout] 03fc306ade34476f5b2508efa4d5f70fe5fd168d0b13a4c7c5c99348caf6feed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 42a63ab51daf05df4aeb9fb985b3bcd81235c356d64ca851dee07b2b1ef5564b
[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" "42a63ab51daf05df4aeb9fb985b3bcd81235c356d64ca851dee07b2b1ef5564b", kill_on_drop: false }`
[INFO] [stdout] 
[INFO] [stderr] warning: type `SDL_Button` should have an upper camel case name
[INFO] [stdout] running 2 tests
[INFO] [stderr]  --> src/sdl/mouse.rs:1:10
[INFO] [stdout] test cherry::math::position::sub_position ... ok
[INFO] [stderr]   |
[INFO] [stdout] test cherry::math::position::add_position ... ok
[INFO] [stderr] 1 | pub type SDL_Button = u8;
[INFO] [stdout] 
[INFO] [stderr]   |          ^^^^^^^^^^ help: convert the identifier to upper camel case: `SdlButton`
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stderr]   |
[INFO] [stdout] 
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `SDL_Scancode` should have an upper camel case name
[INFO] [stderr]  --> src/sdl/scancode.rs:1:10
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub type SDL_Scancode = u32;
[INFO] [stderr]   |          ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SdlScancode`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `initialiser`
[INFO] [stderr]  --> src/main.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let initialiser = Initialiser::init()
[INFO] [stderr]   |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initialiser`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `event`
[INFO] [stderr]   --> src/main.rs:30:38
[INFO] [stderr]    |
[INFO] [stderr] 30 |                 Event::MouseButtonUp(event) => {
[INFO] [stderr]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `event`
[INFO] [stderr]   --> src/main.rs:34:40
[INFO] [stderr]    |
[INFO] [stderr] 34 |                 Event::MouseButtonDown(event) => {
[INFO] [stderr]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `event`
[INFO] [stderr]   --> src/main.rs:38:30
[INFO] [stderr]    |
[INFO] [stderr] 38 |                 Event::KeyUp(event) => {
[INFO] [stderr]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]   --> src/cherry/colour.rs:38:40
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn from_hsv(h: Degree, s: f32, v: f32) -> Self {
[INFO] [stderr]    |                                        ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `reader`
[INFO] [stderr]   --> src/cherry/sprite.rs:12:13
[INFO] [stderr]    |
[INFO] [stderr] 12 |         let reader = BufReader::new(file);
[INFO] [stderr]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `SDL_MOUSEWHEEL`
[INFO] [stderr]  --> src/sdl/events.rs:9:1
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const SDL_MOUSEWHEEL:      u32 = 0x403;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `SDL_RENDERER_NO_FLAGS`
[INFO] [stderr]  --> src/sdl/renderer.rs:5:1
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub const SDL_RENDERER_NO_FLAGS:      u32 = 0x00000000;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `SDL_RENDERER_SOFTWARE`
[INFO] [stderr]  --> src/sdl/renderer.rs:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const SDL_RENDERER_SOFTWARE:      u32 = 0x00000001;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `SDL_RENDERER_ACCELERATED`
[INFO] [stderr]  --> src/sdl/renderer.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const SDL_RENDERER_ACCELERATED:   u32 = 0x00000002;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `SDL_RENDERER_PRESENTVSYNC`
[INFO] [stderr]  --> src/sdl/renderer.rs:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const SDL_RENDERER_PRESENTVSYNC:  u32 = 0x00000004;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `SDL_RENDERER_TARGETTEXTURE`
[INFO] [stderr]  --> src/sdl/renderer.rs:9:1
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const SDL_RENDERER_TARGETTEXTURE: u32 = 0x00000008;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `SDL_RenderClear`
[INFO] [stderr]   --> src/sdl/renderer.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub fn SDL_RenderClear(renderer: *mut SDL_Renderer) -> i32;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `SDL_SetRenderDrawColor`
[INFO] [stderr]   --> src/sdl/renderer.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn SDL_SetRenderDrawColor(renderer: *mut SDL_Renderer, r: u8, g: u8, b: u8, a: u8) -> i32;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `SDL_RenderDrawPoint`
[INFO] [stderr]   --> src/sdl/renderer.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn SDL_RenderDrawPoint(renderer: *mut SDL_Renderer, x: i32, y: i32) -> i32;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `SDL_RenderDrawLine`
[INFO] [stderr]   --> src/sdl/renderer.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn SDL_RenderDrawLine(renderer: *mut SDL_Renderer, x1: i32, y1: i32, x2: i32, y2: i32) -> i32;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `SDL_RenderDrawRect`
[INFO] [stderr]   --> src/sdl/renderer.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub fn SDL_RenderDrawRect(renderer: *mut SDL_Renderer, rect: SDL_Rect) -> i32;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `SDL_TEXTUREACCESS_STATIC`
[INFO] [stderr]  --> src/sdl/texture.rs:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const SDL_TEXTUREACCESS_STATIC:    i32 = 0;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `SDL_TEXTUREACCESS_TARGET`
[INFO] [stderr]  --> src/sdl/texture.rs:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const SDL_TEXTUREACCESS_TARGET:    i32 = 2;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `SDL_PIXELFORMAT_RGB888`
[INFO] [stderr]   --> src/sdl/texture.rs:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const SDL_PIXELFORMAT_RGB888: u32 = 370546692;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `SDL_WasInit`
[INFO] [stderr]  --> src/sdl/system.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     pub fn SDL_WasInit(flags: u32) -> u32;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `new`
[INFO] [stderr]  --> src/cherry/colour.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 |     pub fn new(value: f32) -> Self {
[INFO] [stderr]   |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `value`
[INFO] [stderr]   --> src/cherry/colour.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 |     pub fn value(self) -> f32 {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `between`
[INFO] [stderr]   --> src/cherry/colour.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub fn between(self, min: f32, max: f32) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `from_hsv`
[INFO] [stderr]   --> src/cherry/colour.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn from_hsv(h: Degree, s: f32, v: f32) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `count`
[INFO] [stderr]   --> src/cherry/keycode.rs:19:14
[INFO] [stderr]    |
[INFO] [stderr] 19 |     const fn count() -> usize {
[INFO] [stderr]    |              ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `area`
[INFO] [stderr]   --> src/cherry/math/rect.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub fn area(self) -> i32 {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `intersect`
[INFO] [stderr]   --> src/cherry/math/rect.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn intersect(self, other: Self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `magnitude`
[INFO] [stderr]   --> src/cherry/math/vector.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub fn magnitude(self) -> f32 {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `normalise`
[INFO] [stderr]   --> src/cherry/math/vector.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn normalise(self) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `direction_to`
[INFO] [stderr]   --> src/cherry/math/vector.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 27 |     pub fn direction_to(self, other: Self) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `distance_to`
[INFO] [stderr]   --> src/cherry/math/vector.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 |     pub fn distance_to(self, other: Self) -> f32 {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `angle_rad`
[INFO] [stderr]   --> src/cherry/math/vector.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn angle_rad(self) -> f32 {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `angle_deg`
[INFO] [stderr]   --> src/cherry/math/vector.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub fn angle_deg(self) -> f32 {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `count`
[INFO] [stderr]   --> src/cherry/mouse.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 16 |     fn count() -> usize {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `virtual_size`
[INFO] [stderr]   --> src/cherry/renderer.rs:58:12
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub fn virtual_size(&self) -> Dimension {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `virtual_width`
[INFO] [stderr]   --> src/cherry/renderer.rs:62:12
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn virtual_width(&self) -> u32 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `virtual_height`
[INFO] [stderr]   --> src/cherry/renderer.rs:66:12
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub fn virtual_height(&self) -> u32 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `draw_rect`
[INFO] [stderr]    --> src/cherry/renderer.rs:151:12
[INFO] [stderr]     |
[INFO] [stderr] 151 |     pub fn draw_rect(&mut self, mut rect: Rect, colour: Colour) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `Sprite`
[INFO] [stderr]  --> src/cherry/sprite.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | struct Sprite {
[INFO] [stderr]   |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `load`
[INFO] [stderr]   --> src/cherry/sprite.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr] 10 |     fn load<P: AsRef<Path>>(path: P) -> Result<Self, ()> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `height`
[INFO] [stderr]   --> src/cherry/window_buffer.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn height(&self) -> u32 {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `size`
[INFO] [stderr]   --> src/cherry/window_buffer.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 27 |     pub fn size(&self) -> Dimension {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `resize`
[INFO] [stderr]   --> src/cherry/window_buffer.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 |     pub fn resize(&mut self, size: Dimension) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `to_index_unchecked`
[INFO] [stderr]   --> src/cherry/window_buffer.rs:50:19
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub unsafe fn to_index_unchecked(&self, x: i32, y: i32) -> usize {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `set_unchecked`
[INFO] [stderr]   --> src/cherry/window_buffer.rs:65:19
[INFO] [stderr]    |
[INFO] [stderr] 65 |     pub unsafe fn set_unchecked(&mut self, x: i32, y: i32, colour: Colour) {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `title`
[INFO] [stderr]  --> src/cherry/window.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     title:  String,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `size`
[INFO] [stderr]  --> src/cherry/window.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     size:   Dimension,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `title`
[INFO] [stderr]   --> src/cherry/window.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn title(&self) -> &String {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `size`
[INFO] [stderr]   --> src/cherry/window.rs:42:12
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub fn size(&self) -> Dimension {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::window::SDL_Window`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:16:39
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub fn SDL_CreateRenderer(window: *mut SDL_Window, index: i32, flags: u32) -> *mut SDL_Renderer;
[INFO] [stderr]    |                                       ^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/window.rs:4:1
[INFO] [stderr]    |
[INFO] [stderr] 4  | pub struct SDL_Window;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:16:83
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub fn SDL_CreateRenderer(window: *mut SDL_Window, index: i32, flags: u32) -> *mut SDL_Renderer;
[INFO] [stderr]    |                                                                                   ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:17:42
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub fn SDL_DestroyRenderer(renderer: *mut SDL_Renderer);
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:18:38
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub fn SDL_RenderClear(renderer: *mut SDL_Renderer) -> i32;
[INFO] [stderr]    |                                      ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:19:37
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub fn SDL_RenderCopy(renderer: *mut SDL_Renderer, texture: *mut SDL_Texture, src_rect: *const SDL_Rect, dst_rect: *const SDL_Rect) -...
[INFO] [stderr]    |                                     ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:19:65
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub fn SDL_RenderCopy(renderer: *mut SDL_Renderer, texture: *mut SDL_Texture, src_rect: *const SDL_Rect, dst_rect: *const SDL_Rect) -...
[INFO] [stderr]    |                                                                 ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/texture.rs:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct SDL_Texture;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:20:40
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn SDL_RenderPresent(renderer: *mut SDL_Renderer);
[INFO] [stderr]    |                                        ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:21:45
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn SDL_SetRenderDrawColor(renderer: *mut SDL_Renderer, r: u8, g: u8, b: u8, a: u8) -> i32;
[INFO] [stderr]    |                                             ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:22:42
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn SDL_RenderDrawPoint(renderer: *mut SDL_Renderer, x: i32, y: i32) -> i32;
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:23:41
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn SDL_RenderDrawLine(renderer: *mut SDL_Renderer, x1: i32, y1: i32, x2: i32, y2: i32) -> i32;
[INFO] [stderr]    |                                         ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:24:41
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub fn SDL_RenderDrawRect(renderer: *mut SDL_Renderer, rect: SDL_Rect) -> i32;
[INFO] [stderr]    |                                         ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/renderer.rs:25:47
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub fn SDL_RenderSetLogicalSize(renderer: *mut SDL_Renderer, w: i32, h: i32) -> i32;
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::renderer::SDL_Renderer`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/texture.rs:18:40
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub fn SDL_CreateTexture(renderer: *mut SDL_Renderer, format: u32, access: i32, w: i32, h: i32) -> *mut SDL_Texture;
[INFO] [stderr]    |                                        ^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/renderer.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct SDL_Renderer;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/texture.rs:18:104
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub fn SDL_CreateTexture(renderer: *mut SDL_Renderer, format: u32, access: i32, w: i32, h: i32) -> *mut SDL_Texture;
[INFO] [stderr]    |                                                                                                        ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/texture.rs:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct SDL_Texture;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/texture.rs:19:40
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub fn SDL_DestroyTexture(texture: *mut SDL_Texture);
[INFO] [stderr]    |                                        ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/texture.rs:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct SDL_Texture;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::texture::SDL_Texture`, which is not FFI-safe
[INFO] [stderr]   --> src/sdl/texture.rs:20:39
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn SDL_UpdateTexture(texture: *mut SDL_Texture, rect: *const SDL_Rect, pixels: *const c_void, pitch: i32);
[INFO] [stderr]    |                                       ^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider adding a member to this struct
[INFO] [stderr]    = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]   --> src/sdl/texture.rs:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct SDL_Texture;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::window::SDL_Window`, which is not FFI-safe
[INFO] [stderr]  --> src/sdl/window.rs:8:94
[INFO] [stderr]   |
[INFO] [stderr] 8 |     pub fn SDL_CreateWindow(title: *const u8, x: i32, y: i32, w: i32, h: i32, flags: u32) -> *mut SDL_Window;
[INFO] [stderr]   |                                                                                              ^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider adding a member to this struct
[INFO] [stderr]   = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]  --> src/sdl/window.rs:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct SDL_Window;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` block uses type `sdl::window::SDL_Window`, which is not FFI-safe
[INFO] [stderr]  --> src/sdl/window.rs:9:38
[INFO] [stderr]   |
[INFO] [stderr] 9 |     pub fn SDL_DestroyWindow(window: *mut SDL_Window);
[INFO] [stderr]   |                                      ^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider adding a member to this struct
[INFO] [stderr]   = note: this struct has no fields
[INFO] [stderr] note: the type is defined here
[INFO] [stderr]  --> src/sdl/window.rs:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct SDL_Window;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: 70 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/cherry-2064a43c3f03eb04
[INFO] running `Command { std: "docker" "inspect" "42a63ab51daf05df4aeb9fb985b3bcd81235c356d64ca851dee07b2b1ef5564b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "42a63ab51daf05df4aeb9fb985b3bcd81235c356d64ca851dee07b2b1ef5564b", kill_on_drop: false }`
[INFO] [stdout] 42a63ab51daf05df4aeb9fb985b3bcd81235c356d64ca851dee07b2b1ef5564b
