[INFO] cloning repository https://github.com/x0y14/htmlfmt
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/x0y14/htmlfmt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fx0y14%2Fhtmlfmt", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fx0y14%2Fhtmlfmt'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1ee0f2e14b8824c7e19031d12457e32f21c5d4e3
[INFO] checking x0y14/htmlfmt against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fx0y14%2Fhtmlfmt" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/x0y14/htmlfmt
[INFO] finished tweaking git repo https://github.com/x0y14/htmlfmt
[INFO] tweaked toml for git repo https://github.com/x0y14/htmlfmt written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/x0y14/htmlfmt 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/x0y14/htmlfmt 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] ba94d9c715fb10308bd1f6e487e6187051ec6d45bc040815cecb7fae2d1cb3c5
[INFO] running `Command { std: "docker" "start" "-a" "ba94d9c715fb10308bd1f6e487e6187051ec6d45bc040815cecb7fae2d1cb3c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ba94d9c715fb10308bd1f6e487e6187051ec6d45bc040815cecb7fae2d1cb3c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba94d9c715fb10308bd1f6e487e6187051ec6d45bc040815cecb7fae2d1cb3c5", kill_on_drop: false }`
[INFO] [stdout] ba94d9c715fb10308bd1f6e487e6187051ec6d45bc040815cecb7fae2d1cb3c5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 2f70da7eeb3da3ff9b7de601cc41f13bf2982c20988535d781920673f2ef3d8b
[INFO] running `Command { std: "docker" "start" "-a" "2f70da7eeb3da3ff9b7de601cc41f13bf2982c20988535d781920673f2ef3d8b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.46
[INFO] [stderr]    Compiling syn v1.0.101
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling thiserror-impl v1.0.37
[INFO] [stderr]     Checking thiserror v1.0.37
[INFO] [stderr]     Checking htmlfmt v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/format/formatter.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cur` is never read
[INFO] [stdout]    --> src/tokenize/tokenizer.rs:312:9
[INFO] [stdout]     |
[INFO] [stdout] 312 |         cur = self.link_eof_token(cur, self.pos.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> src/format/config.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Config {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]  --> src/format/config.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl Config {
[INFO] [stdout]   | ----------- associated function in this implementation
[INFO] [stdout] 7 |     pub fn default() -> Self {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Formatter` is never constructed
[INFO] [stdout]  --> src/format/formatter.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Formatter {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `str_parameter`, `str_parameters`, `str_solo_tag`, `str_tag`, and `format` are never used
[INFO] [stdout]   --> src/format/formatter.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Formatter {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(config: Config) -> Formatter {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn str_parameter(&self, node: Box<Node>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn str_parameters(&self, node: Box<Node>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn str_solo_tag(&self, node: Box<Node>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn str_tag(&self, node: Box<Node>) -> String {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn format(&self, nodes: Vec<Option<Box<Node>>>) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]  --> src/parse/err.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum ParseError {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeKind` is never used
[INFO] [stdout]  --> src/parse/kind.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum NodeKind {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]  --> src/parse/node.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Node {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/parse/node.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Node {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/parse/parser.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Parser {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parse/parser.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new() -> Parser {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  17 |     fn current(&self) -> Box<Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  21 |     fn is_eof(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  25 |     fn consume(&mut self) -> Option<Box<Token>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     fn consume_kind(&mut self, kind: TokenKind) -> Option<Box<Token>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     fn expect_kind(&mut self, kind: TokenKind) -> Result<Token, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     fn expect_text(&mut self, text: String, case_sensitive: bool) -> Result<(), ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     fn parse_text(&mut self) -> Result<Option<Box<Node>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     fn parse_decl_tag(&mut self) -> Result<Option<Box<Node>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn parse_tag_parameters(&mut self) -> Result<Option<Box<Node>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn parse_tag(&mut self) -> Result<Option<Box<Node>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     fn parse_(&mut self) -> Result<Option<Vec<Option<Box<Node>>>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn parse(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Token` is never constructed
[INFO] [stdout]  --> src/tokenize/token.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Token {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tokenize/token.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Token {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(kind: TokenKind, pos: Position, imm_s: String, imm_f: f64, imm_i: i64) -> Token {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tokenizer` is never constructed
[INFO] [stdout]  --> src/tokenize/tokenizer.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Tokenizer {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tokenize/tokenizer.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl Tokenizer {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  12 |     pub fn new(target: &str) -> Tokenizer {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  19 |     fn is_eof(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     fn move_horizon(&mut self, n: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     fn move_line(&mut self, n: u32) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     fn current(&self) -> char {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     fn peek(&self, n: u32) -> char {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     fn start_with(&self, word: String) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     fn is_white(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     fn is_number(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn is_symbol(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     fn is_alphanum_(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     fn consume_string(&mut self, is_single: bool) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn consume_numeric(&mut self) -> (f64, bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn consume_white(&mut self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn consume_symbol(&mut self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     fn consume_text(&mut self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn link_white_token<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     fn link_symbol_token<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn link_decimal_token<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn link_integer_token<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     fn link_string_token<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     fn link_text_token<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn link_eof_token<'a>(&mut self, cur: &'a mut Token, pos: Position) -> &'a mut Box<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn tokenize(&mut self) -> Box<Token> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]  --> src/tokenize/position.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Position {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/tokenize/position.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl Position {
[INFO] [stdout]   | ------------- associated function in this implementation
[INFO] [stdout] 9 |     pub fn new(line_no: u32, at_line: u32, at_whole: u32) -> Position {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]  --> src/tokenize/kind.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum TokenKind {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `symbol_kind` is never used
[INFO] [stdout]   --> src/tokenize/kind.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn symbol_kind(symbol: &str) -> TokenKind {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/format/formatter.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 |         for node in node.params {
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 29 -         for node in node.params {
[INFO] [stdout] 29 +         while let Some(node) = node.params {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 29 -         for node in node.params {
[INFO] [stdout] 29 +         if let Some(node) = node.params {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/format/formatter.rs:51:26
[INFO] [stdout]    |
[INFO] [stdout] 51 |             for param in node.params {
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 51 -             for param in node.params {
[INFO] [stdout] 51 +             while let Some(param) = node.params {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 51 -             for param in node.params {
[INFO] [stdout] 51 +             if let Some(param) = node.params {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/format/formatter.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cur` is never read
[INFO] [stdout]    --> src/tokenize/tokenizer.rs:312:9
[INFO] [stdout]     |
[INFO] [stdout] 312 |         cur = self.link_eof_token(cur, self.pos.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Unknown` is never constructed
[INFO] [stdout]   --> src/parse/err.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 14 |     Unknown,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has a derived impl for the trait `Debug`, but this is 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: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/format/formatter.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 |         for node in node.params {
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 29 -         for node in node.params {
[INFO] [stdout] 29 +         while let Some(node) = node.params {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 29 -         for node in node.params {
[INFO] [stdout] 29 +         if let Some(node) = node.params {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/format/formatter.rs:51:26
[INFO] [stdout]    |
[INFO] [stdout] 51 |             for param in node.params {
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 51 -             for param in node.params {
[INFO] [stdout] 51 +             while let Some(param) = node.params {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 51 -             for param in node.params {
[INFO] [stdout] 51 +             if let Some(param) = node.params {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.82s
[INFO] running `Command { std: "docker" "inspect" "2f70da7eeb3da3ff9b7de601cc41f13bf2982c20988535d781920673f2ef3d8b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f70da7eeb3da3ff9b7de601cc41f13bf2982c20988535d781920673f2ef3d8b", kill_on_drop: false }`
[INFO] [stdout] 2f70da7eeb3da3ff9b7de601cc41f13bf2982c20988535d781920673f2ef3d8b
