[INFO] cloning repository https://github.com/Some-Asian/maths-game-sdl2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Some-Asian/maths-game-sdl2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSome-Asian%2Fmaths-game-sdl2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSome-Asian%2Fmaths-game-sdl2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e12974f25424c55694c8eff6ff6a5007b9c36927
[INFO] checking Some-Asian/maths-game-sdl2 against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSome-Asian%2Fmaths-game-sdl2" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Some-Asian/maths-game-sdl2
[INFO] finished tweaking git repo https://github.com/Some-Asian/maths-game-sdl2
[INFO] tweaked toml for git repo https://github.com/Some-Asian/maths-game-sdl2 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Some-Asian/maths-game-sdl2 on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Some-Asian/maths-game-sdl2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8b47f069e03ef87e7e1fbd73ca398cb01ff22811f0cd5fb5785de238c4c51560
[INFO] running `Command { std: "docker" "start" "-a" "8b47f069e03ef87e7e1fbd73ca398cb01ff22811f0cd5fb5785de238c4c51560", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8b47f069e03ef87e7e1fbd73ca398cb01ff22811f0cd5fb5785de238c4c51560", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8b47f069e03ef87e7e1fbd73ca398cb01ff22811f0cd5fb5785de238c4c51560", kill_on_drop: false }`
[INFO] [stdout] 8b47f069e03ef87e7e1fbd73ca398cb01ff22811f0cd5fb5785de238c4c51560
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3637ce603bdd1845190a537576fd1f93874a317d17b4abedb63787636f57965b
[INFO] running `Command { std: "docker" "start" "-a" "3637ce603bdd1845190a537576fd1f93874a317d17b4abedb63787636f57965b", kill_on_drop: false }`
[INFO] [stderr]    Compiling sdl2 v0.35.2
[INFO] [stderr]    Compiling sdl2-sys v0.35.2
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking maths-game-sdl2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: this labeled break expression is easy to confuse with an unlabeled break with a labeled value expression
[INFO] [stdout]   --> src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | /         break 'running
[INFO] [stdout] 35 | |         for event in event_pump.poll_iter() {
[INFO] [stdout] 36 | |             match event {
[INFO] [stdout] 37 | |                 Event::Quit {..} |
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |         };
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(break_with_label_and_loop)]` on by default
[INFO] [stdout] help: wrap this expression in parentheses
[INFO] [stdout]    |
[INFO] [stdout] 35 ~         (for event in event_pump.poll_iter() {
[INFO] [stdout] 36 |             match event {
[INFO] [stdout] ...
[INFO] [stdout] 51 |             }
[INFO] [stdout] 52 ~         });
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Num_Type` should have an upper camel case name
[INFO] [stdout]   --> src/q_gen.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Num_Type {
[INFO] [stdout]    |          ^^^^^^^^ help: convert the identifier to upper camel case: `NumType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Ans_Type` should have an upper camel case name
[INFO] [stdout]   --> src/q_gen.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Ans_Type {
[INFO] [stdout]    |          ^^^^^^^^ help: convert the identifier to upper camel case: `AnsType`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/q_gen.rs:70:48
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 Num_Type::Number(rng.gen_range((TEN.pow(target_difficulty - 1)..=(TEN.pow(target_difficulty)))) as isize)
[INFO] [stdout]    |                                                ^                                                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -                 Num_Type::Number(rng.gen_range((TEN.pow(target_difficulty - 1)..=(TEN.pow(target_difficulty)))) as isize)
[INFO] [stdout] 70 +                 Num_Type::Number(rng.gen_range(TEN.pow(target_difficulty - 1)..=(TEN.pow(target_difficulty)) ) as isize)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Num_Type`
[INFO] [stdout]   --> src/main.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::q_gen::{Num_Type, Operations};
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this labeled break expression is easy to confuse with an unlabeled break with a labeled value expression
[INFO] [stdout]   --> src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | /         break 'running
[INFO] [stdout] 35 | |         for event in event_pump.poll_iter() {
[INFO] [stdout] 36 | |             match event {
[INFO] [stdout] 37 | |                 Event::Quit {..} |
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |         };
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(break_with_label_and_loop)]` on by default
[INFO] [stdout] help: wrap this expression in parentheses
[INFO] [stdout]    |
[INFO] [stdout] 35 ~         (for event in event_pump.poll_iter() {
[INFO] [stdout] 36 |             match event {
[INFO] [stdout] ...
[INFO] [stdout] 51 |             }
[INFO] [stdout] 52 ~         });
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Num_Type` should have an upper camel case name
[INFO] [stdout]   --> src/q_gen.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Num_Type {
[INFO] [stdout]    |          ^^^^^^^^ help: convert the identifier to upper camel case: `NumType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Ans_Type` should have an upper camel case name
[INFO] [stdout]   --> src/q_gen.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Ans_Type {
[INFO] [stdout]    |          ^^^^^^^^ help: convert the identifier to upper camel case: `AnsType`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/q_gen.rs:70:48
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 Num_Type::Number(rng.gen_range((TEN.pow(target_difficulty - 1)..=(TEN.pow(target_difficulty)))) as isize)
[INFO] [stdout]    |                                                ^                                                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -                 Num_Type::Number(rng.gen_range((TEN.pow(target_difficulty - 1)..=(TEN.pow(target_difficulty)))) as isize)
[INFO] [stdout] 70 +                 Num_Type::Number(rng.gen_range(TEN.pow(target_difficulty - 1)..=(TEN.pow(target_difficulty)) ) as isize)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Num_Type`
[INFO] [stdout]   --> src/main.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::q_gen::{Num_Type, Operations};
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | /         break 'running
[INFO] [stdout] 35 | |         for event in event_pump.poll_iter() {
[INFO] [stdout] 36 | |             match event {
[INFO] [stdout] 37 | |                 Event::Quit {..} |
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |         };
[INFO] [stdout]    | |_________- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 56 | /         render(&mut canvas, Color {
[INFO] [stdout] 57 | |             r, g, b, a: 255
[INFO] [stdout] 58 | |         });
[INFO] [stdout]    | |___________^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/q_gen.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             _ => todo!()
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/q_gen.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Operations::Add | Operations::Subtract => {
[INFO] [stdout]    |             -------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 72 |             Operations::Multiply | Operations::Square | Operations::Cube => {
[INFO] [stdout]    |             ------------------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 75 |             Operations::Divide | Operations::Simplify => {
[INFO] [stdout]    |             ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 80 |             Operations::Sqrt => {
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 85 |             _ => todo!()
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/q_gen.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |             _ => todo!()
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/q_gen.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |             Operations::Add => match (&self.lhs, &self.rhs) {
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 234 |             Operations::Subtract => match (&self.lhs, &self.rhs) {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 241 |             Operations::Multiply => match (&self.lhs, &self.rhs) {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 248 |             Operations::Divide => match (&self.lhs, &self.rhs) {
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 274 |             _ => todo!()
[INFO] [stdout]     |             ^ ...and 4 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | /         break 'running
[INFO] [stdout] 35 | |         for event in event_pump.poll_iter() {
[INFO] [stdout] 36 | |             match event {
[INFO] [stdout] 37 | |                 Event::Quit {..} |
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |         };
[INFO] [stdout]    | |_________- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 56 | /         render(&mut canvas, Color {
[INFO] [stdout] 57 | |             r, g, b, a: 255
[INFO] [stdout] 58 | |         });
[INFO] [stdout]    | |___________^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut canvas = window.into_canvas().build().unwrap();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `canvas`
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut canvas = window.into_canvas().build().unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_canvas`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     for i in 1..100 {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Equation` is never constructed
[INFO] [stdout]   --> src/q_gen.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Num_Type {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] 19 |     Number(isize),
[INFO] [stdout] 20 |     Equation(Box<Equation>),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Num_Type` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Ans_Type` is never used
[INFO] [stdout]   --> src/q_gen.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Ans_Type {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `pick_equation` is never used
[INFO] [stdout]    --> src/q_gen.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Equation {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn pick_equation(rng: &mut ThreadRng, sample_size: u32, target_difficulty: f64, strict: bool, allowed_ops: Option<Vec<Opera...
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     canvas.draw_rect(Rect::new(10, 10, 50, 90));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let _ = canvas.draw_rect(Rect::new(10, 10, 50, 90));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&Equation` instead of cloning the inner type
[INFO] [stdout]    --> src/q_gen.rs:133:84
[INFO] [stdout]     |
[INFO] [stdout] 133 |             return (sample_weighted.choose_weighted(rng, |item| item.1).unwrap().0).clone().clone()
[INFO] [stdout]     |                                                                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/q_gen.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             _ => todo!()
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/q_gen.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Operations::Add | Operations::Subtract => {
[INFO] [stdout]    |             -------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 72 |             Operations::Multiply | Operations::Square | Operations::Cube => {
[INFO] [stdout]    |             ------------------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 75 |             Operations::Divide | Operations::Simplify => {
[INFO] [stdout]    |             ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 80 |             Operations::Sqrt => {
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 85 |             _ => todo!()
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/q_gen.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |             _ => todo!()
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/q_gen.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |             Operations::Add => match (&self.lhs, &self.rhs) {
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 234 |             Operations::Subtract => match (&self.lhs, &self.rhs) {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 241 |             Operations::Multiply => match (&self.lhs, &self.rhs) {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 248 |             Operations::Divide => match (&self.lhs, &self.rhs) {
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 274 |             _ => todo!()
[INFO] [stdout]     |             ^ ...and 4 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut canvas = window.into_canvas().build().unwrap();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `canvas`
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut canvas = window.into_canvas().build().unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_canvas`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     for i in 1..100 {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Equation` is never constructed
[INFO] [stdout]   --> src/q_gen.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Num_Type {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] 19 |     Number(isize),
[INFO] [stdout] 20 |     Equation(Box<Equation>),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Num_Type` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Ans_Type` is never used
[INFO] [stdout]   --> src/q_gen.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Ans_Type {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `pick_equation` is never used
[INFO] [stdout]    --> src/q_gen.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Equation {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn pick_equation(rng: &mut ThreadRng, sample_size: u32, target_difficulty: f64, strict: bool, allowed_ops: Option<Vec<Opera...
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     canvas.draw_rect(Rect::new(10, 10, 50, 90));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let _ = canvas.draw_rect(Rect::new(10, 10, 50, 90));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&Equation` instead of cloning the inner type
[INFO] [stdout]    --> src/q_gen.rs:133:84
[INFO] [stdout]     |
[INFO] [stdout] 133 |             return (sample_weighted.choose_weighted(rng, |item| item.1).unwrap().0).clone().clone()
[INFO] [stdout]     |                                                                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.74s
[INFO] running `Command { std: "docker" "inspect" "3637ce603bdd1845190a537576fd1f93874a317d17b4abedb63787636f57965b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3637ce603bdd1845190a537576fd1f93874a317d17b4abedb63787636f57965b", kill_on_drop: false }`
[INFO] [stdout] 3637ce603bdd1845190a537576fd1f93874a317d17b4abedb63787636f57965b
