[INFO] cloning repository https://github.com/thirdworldrecords/GibberishGPT
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thirdworldrecords/GibberishGPT" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthirdworldrecords%2FGibberishGPT", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthirdworldrecords%2FGibberishGPT'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f6fe597cfcc57303b953138814706421571bf279
[INFO] testing thirdworldrecords/GibberishGPT/f6fe597cfcc57303b953138814706421571bf279 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthirdworldrecords%2FGibberishGPT" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/thirdworldrecords/GibberishGPT
[INFO] finished tweaking git repo https://github.com/thirdworldrecords/GibberishGPT
[INFO] tweaked toml for git repo https://github.com/thirdworldrecords/GibberishGPT written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/thirdworldrecords/GibberishGPT on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/thirdworldrecords/GibberishGPT 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v1.0.87
[INFO] [stderr]   Downloaded regex v1.11.0
[INFO] [stderr]   Downloaded regex-automata v0.4.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 51d737bf559c3701d54ce705cbde1717ff2bb701cb42422063a01259d6c74bff
[INFO] running `Command { std: "docker" "start" "-a" "51d737bf559c3701d54ce705cbde1717ff2bb701cb42422063a01259d6c74bff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "51d737bf559c3701d54ce705cbde1717ff2bb701cb42422063a01259d6c74bff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "51d737bf559c3701d54ce705cbde1717ff2bb701cb42422063a01259d6c74bff", kill_on_drop: false }`
[INFO] [stdout] 51d737bf559c3701d54ce705cbde1717ff2bb701cb42422063a01259d6c74bff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5fe3813d14f50660ef866e4d98b4eccdcf204389c1045591cf05c66613b6725f
[INFO] running `Command { std: "docker" "start" "-a" "5fe3813d14f50660ef866e4d98b4eccdcf204389c1045591cf05c66613b6725f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.87
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]    Compiling regex-automata v0.4.8
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling regex v1.11.0
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling chatgpt v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]  --> src/main.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{self, BufRead, BufReader};
[INFO] [stdout]   |                              ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> src/main.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{self, BufRead, BufReader};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut speakers_matrix = train(&tokens);
[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: `num_phrases`
[INFO] [stdout]   --> src/main.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let num_phrases: u64 = num_phrases.parse().unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_phrases`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (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:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let mut end_word = |tokens: &mut Vec<Token>, expr: &mut String| {
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token_length`
[INFO] [stdout]   --> src/main.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let token_length = 1;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_token_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut speaker_data = speakers
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_stop_word`
[INFO] [stdout]    --> src/main.rs:261:17
[INFO] [stdout]     |
[INFO] [stdout] 261 |             let max_stop_word = if let Some(next) = speaker.stop_words.get(prev_word) {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_stop_word`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_punct`
[INFO] [stdout]    --> src/main.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |             let max_punct = if let Some(next) = speaker.punct.get(prev_word) {
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_punct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     io::stdin().read_line(&mut num_phrases);
[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] 32 |     let _ = io::stdin().read_line(&mut num_phrases);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.73s
[INFO] running `Command { std: "docker" "inspect" "5fe3813d14f50660ef866e4d98b4eccdcf204389c1045591cf05c66613b6725f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5fe3813d14f50660ef866e4d98b4eccdcf204389c1045591cf05c66613b6725f", kill_on_drop: false }`
[INFO] [stdout] 5fe3813d14f50660ef866e4d98b4eccdcf204389c1045591cf05c66613b6725f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2f9bdbab424fe88b7116b8a69b4a03a64d71d71f423cb63d3f5c69e21045a7ca
[INFO] running `Command { std: "docker" "start" "-a" "2f9bdbab424fe88b7116b8a69b4a03a64d71d71f423cb63d3f5c69e21045a7ca", kill_on_drop: false }`
[INFO] [stderr]    Compiling chatgpt v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]  --> src/main.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{self, BufRead, BufReader};
[INFO] [stdout]   |                              ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> src/main.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{self, BufRead, BufReader};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut speakers_matrix = train(&tokens);
[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: `num_phrases`
[INFO] [stdout]   --> src/main.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let num_phrases: u64 = num_phrases.parse().unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_phrases`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (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:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let mut end_word = |tokens: &mut Vec<Token>, expr: &mut String| {
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token_length`
[INFO] [stdout]   --> src/main.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let token_length = 1;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_token_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut speaker_data = speakers
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_stop_word`
[INFO] [stdout]    --> src/main.rs:261:17
[INFO] [stdout]     |
[INFO] [stdout] 261 |             let max_stop_word = if let Some(next) = speaker.stop_words.get(prev_word) {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_stop_word`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_punct`
[INFO] [stdout]    --> src/main.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |             let max_punct = if let Some(next) = speaker.punct.get(prev_word) {
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_punct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     io::stdin().read_line(&mut num_phrases);
[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] 32 |     let _ = io::stdin().read_line(&mut num_phrases);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.41s
[INFO] running `Command { std: "docker" "inspect" "2f9bdbab424fe88b7116b8a69b4a03a64d71d71f423cb63d3f5c69e21045a7ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f9bdbab424fe88b7116b8a69b4a03a64d71d71f423cb63d3f5c69e21045a7ca", kill_on_drop: false }`
[INFO] [stdout] 2f9bdbab424fe88b7116b8a69b4a03a64d71d71f423cb63d3f5c69e21045a7ca
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d6431db4857af3187a8df7b0bb81c98c07ba6957b4e49e09242ab10994e25e45
[INFO] running `Command { std: "docker" "start" "-a" "d6431db4857af3187a8df7b0bb81c98c07ba6957b4e49e09242ab10994e25e45", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `BufReader`
[INFO] [stderr]  --> src/main.rs:4:30
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::io::{self, BufRead, BufReader};
[INFO] [stderr]   |                              ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BufRead`
[INFO] [stderr]  --> src/main.rs:4:21
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::io::{self, BufRead, BufReader};
[INFO] [stderr]   |                     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let mut speakers_matrix = train(&tokens);
[INFO] [stderr]    |         ----^^^^^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `num_phrases`
[INFO] [stderr]   --> src/main.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 39 |     let num_phrases: u64 = num_phrases.parse().unwrap();
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_phrases`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:69:9
[INFO] [stderr]    |
[INFO] [stderr] 69 |     let mut end_word = |tokens: &mut Vec<Token>, expr: &mut String| {
[INFO] [stderr]    |         ----^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `token_length`
[INFO] [stderr]   --> src/main.rs:54:9
[INFO] [stderr]    |
[INFO] [stderr] 54 |     let token_length = 1;
[INFO] [stderr]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_token_length`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:167:13
[INFO] [stderr]     |
[INFO] [stderr] 167 |         let mut speaker_data = speakers
[INFO] [stderr]     |             ----^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `max_stop_word`
[INFO] [stderr]    --> src/main.rs:261:17
[INFO] [stderr]     |
[INFO] [stderr] 261 |             let max_stop_word = if let Some(next) = speaker.stop_words.get(prev_word) {
[INFO] [stderr]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_stop_word`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `max_punct`
[INFO] [stderr]    --> src/main.rs:273:17
[INFO] [stderr]     |
[INFO] [stderr] 273 |             let max_punct = if let Some(next) = speaker.punct.get(prev_word) {
[INFO] [stderr]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_punct`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 32 |     io::stdin().read_line(&mut num_phrases);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 32 |     let _ = io::stdin().read_line(&mut num_phrases);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `chatgpt` (bin "chatgpt" test) generated 10 warnings (run `cargo fix --bin "chatgpt" -p chatgpt --tests` to apply 8 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/chatgpt-92a10a3f76413f52)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d6431db4857af3187a8df7b0bb81c98c07ba6957b4e49e09242ab10994e25e45", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d6431db4857af3187a8df7b0bb81c98c07ba6957b4e49e09242ab10994e25e45", kill_on_drop: false }`
[INFO] [stdout] d6431db4857af3187a8df7b0bb81c98c07ba6957b4e49e09242ab10994e25e45
