[INFO] cloning repository https://github.com/rohitashwin/waygum
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rohitashwin/waygum" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frohitashwin%2Fwaygum", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frohitashwin%2Fwaygum'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 21d88f23d04bf12c673bbba2b01398fbf91cbeb2
[INFO] checking rohitashwin/waygum against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frohitashwin%2Fwaygum" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rohitashwin/waygum
[INFO] finished tweaking git repo https://github.com/rohitashwin/waygum
[INFO] tweaked toml for git repo https://github.com/rohitashwin/waygum written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rohitashwin/waygum on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rohitashwin/waygum 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fancy-regex v0.10.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3f13391eb0f6f1b674b51f3aaacb95b913c7ca1a7502c59e45d406ee91bbbdd7
[INFO] running `Command { std: "docker" "start" "-a" "3f13391eb0f6f1b674b51f3aaacb95b913c7ca1a7502c59e45d406ee91bbbdd7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3f13391eb0f6f1b674b51f3aaacb95b913c7ca1a7502c59e45d406ee91bbbdd7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f13391eb0f6f1b674b51f3aaacb95b913c7ca1a7502c59e45d406ee91bbbdd7", kill_on_drop: false }`
[INFO] [stdout] 3f13391eb0f6f1b674b51f3aaacb95b913c7ca1a7502c59e45d406ee91bbbdd7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 26a0270e4b6a10ff115567b82fe3cb60920651027cd0b406929e294f40944c71
[INFO] running `Command { std: "docker" "start" "-a" "26a0270e4b6a10ff115567b82fe3cb60920651027cd0b406929e294f40944c71", kill_on_drop: false }`
[INFO] [stderr]     Checking once_cell v1.16.0
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking fancy-regex v0.10.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling clap_derive v4.0.21
[INFO] [stderr]     Checking clap v4.0.32
[INFO] [stderr]     Checking waygum v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::lexer`
[INFO] [stdout]  --> src/tests/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::lexer;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod tests;
[INFO] [stdout]   | ^^^^^^^^^^
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lexer.rs:71:21
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 let mut line = captures.get(1).unwrap().as_str();
[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: `text`
[INFO] [stdout]    --> src/parser.rs:336:45
[INFO] [stdout]     |
[INFO] [stdout] 336 |         while let Some(Token::List { depth, text }) = self.next() {
[INFO] [stdout]     |                                             ^^^^ help: try ignoring the field: `text: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/parser.rs:339:43
[INFO] [stdout]     |
[INFO] [stdout] 339 |                 if let Some(Token::List { depth, text }) = self.consume() {
[INFO] [stdout]     |                                           ^^^^^ help: try ignoring the field: `depth: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/html_impl.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |             _ => {
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/html_impl.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout]  7 |             ParseArtefact::Section(depth, title) => {
[INFO] [stdout]    |             ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 10 |             ParseArtefact::Subsection(section_depth, depth, title) => {
[INFO] [stdout]    |             ------------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 13 |             ParseArtefact::Subsubsection(section_depth, subsection_depth, depth, title) => {
[INFO] [stdout]    |             --------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 16 |             ParseArtefact::Paragraph(text) => {
[INFO] [stdout]    |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 90 |             _ => {
[INFO] [stdout]    |             ^ ...and 9 other patterns collectively make 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/html_impl.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/html_impl.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |             ParseArtefact::Section(depth, title) => {
[INFO] [stdout]     |             ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 103 |             ParseArtefact::Subsection(section_depth, depth, title) => {
[INFO] [stdout]     |             ------------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 106 |             ParseArtefact::Subsubsection(section_depth, subsection_depth, depth, title) => {
[INFO] [stdout]     |             --------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 109 |             ParseArtefact::Paragraph(text) => {
[INFO] [stdout]     |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 186 |             _ => {
[INFO] [stdout]     |             ^ ...and 9 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/html_impl.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/html_impl.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |             TextArtefact::Bold(text) => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 221 |             TextArtefact::Italics(text) => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 224 |             TextArtefact::Strikethrough(text) => {
[INFO] [stdout]     |             --------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 227 |             TextArtefact::Underline(text) => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 239 |             _ => {
[INFO] [stdout]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/html_impl.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |             _ => { panic!("Unkown artefact type"); }
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/html_impl.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             TextArtefact::Bold(text) => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 252 |             TextArtefact::Italics(text) => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 255 |             TextArtefact::Strikethrough(text) => {
[INFO] [stdout]     |             --------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 258 |             TextArtefact::Underline(text) => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 270 |             _ => { panic!("Unkown artefact type"); }
[INFO] [stdout]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `consume_while` is never used
[INFO] [stdout]   --> src/parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn consume_while(&mut self, f: impl Fn(&Token) -> bool) -> Vec<Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_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/lexer.rs:71:21
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 let mut line = captures.get(1).unwrap().as_str();
[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: `text`
[INFO] [stdout]    --> src/parser.rs:336:45
[INFO] [stdout]     |
[INFO] [stdout] 336 |         while let Some(Token::List { depth, text }) = self.next() {
[INFO] [stdout]     |                                             ^^^^ help: try ignoring the field: `text: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/parser.rs:339:43
[INFO] [stdout]     |
[INFO] [stdout] 339 |                 if let Some(Token::List { depth, text }) = self.consume() {
[INFO] [stdout]     |                                           ^^^^^ help: try ignoring the field: `depth: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:505:13
[INFO] [stdout]     |
[INFO] [stdout] 505 |         let mut lexer = Lexer::new(String::from(""));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:506:13
[INFO] [stdout]     |
[INFO] [stdout] 506 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let mut lexer = Lexer::new(String::from("Hello world!"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 516 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:534:13
[INFO] [stdout]     |
[INFO] [stdout] 534 |         let mut lexer = Lexer::new(String::from("*Hello world!*"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:535:13
[INFO] [stdout]     |
[INFO] [stdout] 535 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:552:13
[INFO] [stdout]     |
[INFO] [stdout] 552 |         let mut lexer = Lexer::new(String::from("/Hello world!/"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:553:13
[INFO] [stdout]     |
[INFO] [stdout] 553 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:570:13
[INFO] [stdout]     |
[INFO] [stdout] 570 |         let mut lexer = Lexer::new(String::from("_Hello world!_"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:571:13
[INFO] [stdout]     |
[INFO] [stdout] 571 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 588 |         let mut lexer = Lexer::new(String::from("~Hello world!~"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:589:13
[INFO] [stdout]     |
[INFO] [stdout] 589 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:606:13
[INFO] [stdout]     |
[INFO] [stdout] 606 |         let mut lexer = Lexer::new(String::from("$Hello world!$"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:607:13
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:624:13
[INFO] [stdout]     |
[INFO] [stdout] 624 |         let mut lexer = Lexer::new(String::from("![Hello world!](https://example.com)"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:625:13
[INFO] [stdout]     |
[INFO] [stdout] 625 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:651:13
[INFO] [stdout]     |
[INFO] [stdout] 651 |         let mut lexer = Lexer::new(String::from("#[Hello world!](https://example.com)"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:652:13
[INFO] [stdout]     |
[INFO] [stdout] 652 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:670:13
[INFO] [stdout]     |
[INFO] [stdout] 670 |         let mut lexer = Lexer::new(String::from("@ Hello world!"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:671:13
[INFO] [stdout]     |
[INFO] [stdout] 671 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:681:13
[INFO] [stdout]     |
[INFO] [stdout] 681 |         let mut lexer = Lexer::new(String::from("@@ Hello world!"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:682:13
[INFO] [stdout]     |
[INFO] [stdout] 682 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:692:13
[INFO] [stdout]     |
[INFO] [stdout] 692 |         let mut lexer = Lexer::new(String::from("@@@ Hello world!"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:693:13
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:706:13
[INFO] [stdout]     |
[INFO] [stdout] 706 |         let mut lexer = Lexer::new(String::from("- Hello world!"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:707:13
[INFO] [stdout]     |
[INFO] [stdout] 707 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:728:13
[INFO] [stdout]     |
[INFO] [stdout] 728 |         let mut lexer = Lexer::new(String::from("- Hello world!\n-- Hello world!\n-Hello world!"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:729:13
[INFO] [stdout]     |
[INFO] [stdout] 729 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:760:13
[INFO] [stdout]     |
[INFO] [stdout] 760 |         let mut lexer = Lexer::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:763:13
[INFO] [stdout]     |
[INFO] [stdout] 763 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:797:13
[INFO] [stdout]     |
[INFO] [stdout] 797 |         let mut lexer = Lexer::new(String::from("| Hello world! | Hello world! |"));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:798:13
[INFO] [stdout]     |
[INFO] [stdout] 798 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:822:13
[INFO] [stdout]     |
[INFO] [stdout] 822 |         let mut lexer = Lexer::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:825:13
[INFO] [stdout]     |
[INFO] [stdout] 825 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:855:13
[INFO] [stdout]     |
[INFO] [stdout] 855 |         let mut lexer = Lexer::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:860:13
[INFO] [stdout]     |
[INFO] [stdout] 860 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:893:13
[INFO] [stdout]     |
[INFO] [stdout] 893 |         let mut lexer = Lexer::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:898:13
[INFO] [stdout]     |
[INFO] [stdout] 898 |         let mut tokens = lexer.tokenize()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:935:13
[INFO] [stdout]     |
[INFO] [stdout] 935 |         let mut lexer = Lexer::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/parser.rs:1004:13
[INFO] [stdout]      |
[INFO] [stdout] 1004 |         let mut tokens = lexer.tokenize().unwrap();
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/parser.rs:1012:13
[INFO] [stdout]      |
[INFO] [stdout] 1012 |         let mut lexer = Lexer::new(
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lexer`
[INFO] [stdout]     --> src/parser.rs:1012:13
[INFO] [stdout]      |
[INFO] [stdout] 1012 |         let mut lexer = Lexer::new(
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lexer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/parser.rs:1039:7
[INFO] [stdout]      |
[INFO] [stdout] 1039 |         let mut lexer = Lexer::new(String::from("@ Learning C++\n/ This is italics /\n"));
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/parser.rs:1040:7
[INFO] [stdout]      |
[INFO] [stdout] 1040 |         let mut tokens = lexer.tokenize().unwrap();
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/html_impl.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |             _ => {
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/html_impl.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout]  7 |             ParseArtefact::Section(depth, title) => {
[INFO] [stdout]    |             ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 10 |             ParseArtefact::Subsection(section_depth, depth, title) => {
[INFO] [stdout]    |             ------------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 13 |             ParseArtefact::Subsubsection(section_depth, subsection_depth, depth, title) => {
[INFO] [stdout]    |             --------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 16 |             ParseArtefact::Paragraph(text) => {
[INFO] [stdout]    |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 90 |             _ => {
[INFO] [stdout]    |             ^ ...and 9 other patterns collectively make 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/html_impl.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/html_impl.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |             ParseArtefact::Section(depth, title) => {
[INFO] [stdout]     |             ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 103 |             ParseArtefact::Subsection(section_depth, depth, title) => {
[INFO] [stdout]     |             ------------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 106 |             ParseArtefact::Subsubsection(section_depth, subsection_depth, depth, title) => {
[INFO] [stdout]     |             --------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 109 |             ParseArtefact::Paragraph(text) => {
[INFO] [stdout]     |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 186 |             _ => {
[INFO] [stdout]     |             ^ ...and 9 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/html_impl.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/html_impl.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |             TextArtefact::Bold(text) => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 221 |             TextArtefact::Italics(text) => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 224 |             TextArtefact::Strikethrough(text) => {
[INFO] [stdout]     |             --------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 227 |             TextArtefact::Underline(text) => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 239 |             _ => {
[INFO] [stdout]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/html_impl.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |             _ => { panic!("Unkown artefact type"); }
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/html_impl.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             TextArtefact::Bold(text) => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 252 |             TextArtefact::Italics(text) => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 255 |             TextArtefact::Strikethrough(text) => {
[INFO] [stdout]     |             --------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 258 |             TextArtefact::Underline(text) => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 270 |             _ => { panic!("Unkown artefact type"); }
[INFO] [stdout]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tests/mod.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut lexer = lexer::Lexer::new(String::from(r#"@ Learning C++
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `consume_while` is never used
[INFO] [stdout]   --> src/parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn consume_while(&mut self, f: impl Fn(&Token) -> bool) -> Vec<Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.19s
[INFO] running `Command { std: "docker" "inspect" "26a0270e4b6a10ff115567b82fe3cb60920651027cd0b406929e294f40944c71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "26a0270e4b6a10ff115567b82fe3cb60920651027cd0b406929e294f40944c71", kill_on_drop: false }`
[INFO] [stdout] 26a0270e4b6a10ff115567b82fe3cb60920651027cd0b406929e294f40944c71
