[INFO] fetching crate takion 0.1.2...
[INFO] checking takion-0.1.2 against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] extracting crate takion 0.1.2 into /workspace/builds/worker-4-tc1/source
[INFO] removed /workspace/builds/worker-4-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate takion 0.1.2
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate takion 0.1.2
[INFO] tweaked toml for crates.io crate takion 0.1.2 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate takion 0.1.2 on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate takion 0.1.2 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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 20042a37ada35dbc2b3cc425910ca4e8cb26e4865e47b6180fb6791d979c44a1
[INFO] running `Command { std: "docker" "start" "20042a37ada35dbc2b3cc425910ca4e8cb26e4865e47b6180fb6791d979c44a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "20042a37ada35dbc2b3cc425910ca4e8cb26e4865e47b6180fb6791d979c44a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "20042a37ada35dbc2b3cc425910ca4e8cb26e4865e47b6180fb6791d979c44a1" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "20042a37ada35dbc2b3cc425910ca4e8cb26e4865e47b6180fb6791d979c44a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "20042a37ada35dbc2b3cc425910ca4e8cb26e4865e47b6180fb6791d979c44a1" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking takion v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate as takion`
[INFO] [stdout]   --> src/lib.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) use crate as takion;
[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: `crate as takion`
[INFO] [stdout]  --> src/testing.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate as takion;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ControlFlow`, `FromResidual`, `Residual`, and `Try`
[INFO] [stdout]  --> src/ret/util_impl.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{ControlFlow, FromResidual, Residual, Try};
[INFO] [stdout]   |                ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Not`
[INFO] [stdout]  --> src/error.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashSet, ops::Not};
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Any` and `TypeId`
[INFO] [stdout]  --> src/formatting.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{any::{Any, TypeId, type_name}, fmt, fmt::Write};
[INFO] [stdout]   |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `assoc`
[INFO] [stdout]    --> src/expr.rs:248:7
[INFO] [stdout]     |
[INFO] [stdout] 248 | macro assoc {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `operand_arm`
[INFO] [stdout]    --> src/expr.rs:254:7
[INFO] [stdout]     |
[INFO] [stdout] 254 | macro operand_arm {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `operator_arm`
[INFO] [stdout]    --> src/expr.rs:271:7
[INFO] [stdout]     |
[INFO] [stdout] 271 | macro operator_arm {
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `attempt`
[INFO] [stdout]    --> src/expr.rs:289:7
[INFO] [stdout]     |
[INFO] [stdout] 289 | macro attempt {
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `literal`
[INFO] [stdout]    --> src/expr.rs:304:7
[INFO] [stdout]     |
[INFO] [stdout] 304 | macro literal {
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]  --> src/primitives.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | / /// ```
[INFO] [stdout] 4 | | /// use takion::*;
[INFO] [stdout] 5 | | ///
[INFO] [stdout] 6 | | /// assert_eq!(bool::parse::<()>("true".into()).ok().unwrap(), true);
[INFO] [stdout] 7 | | /// assert_eq!(bool::parse::<()>("false".into()).ok().unwrap(), false);
[INFO] [stdout] 8 | | /// assert!(bool::parse::<()>("nah".into()).is_miss());
[INFO] [stdout] 9 | | /// ```
[INFO] [stdout]   | |_------^
[INFO] [stdout]   |   |
[INFO] [stdout]   |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]   |
[INFO] [stdout]   = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]   = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alternation::*`, `capture::*`, `cursor::*`, `macros::impl_tuple::tuples`, `movement::*`, `pipe::*`, `recovery::*`, `repetitions::*`, `ret::*`, and `syntax::*`
[INFO] [stdout]   --> src/lib.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     cursor::*, ret::*, error::*, formatting::*,
[INFO] [stdout]    |     ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 46 |     movement::*, repetitions::*, alternation::*, sequence::*,
[INFO] [stdout]    |     ^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     destructuring::*, recovery::*, capture::*, pipe::*,
[INFO] [stdout]    |                       ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 48 |     strings::*, syntax::*,
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 49 |     macros::impl_tuple::tuples,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate as takion`
[INFO] [stdout]   --> src/lib.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) use crate as takion;
[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: `std::borrow::Cow`
[INFO] [stdout]  --> src/testing.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Cow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate as takion`
[INFO] [stdout]  --> src/testing.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate as takion;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `*`
[INFO] [stdout]  --> src/testing.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::{*};
[INFO] [stdout]   |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ControlFlow`, `FromResidual`, `Residual`, and `Try`
[INFO] [stdout]  --> src/ret/util_impl.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{ControlFlow, FromResidual, Residual, Try};
[INFO] [stdout]   |                ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Not`
[INFO] [stdout]  --> src/error.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashSet, ops::Not};
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Any` and `TypeId`
[INFO] [stdout]  --> src/formatting.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{any::{Any, TypeId, type_name}, fmt, fmt::Write};
[INFO] [stdout]   |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `assoc`
[INFO] [stdout]    --> src/expr.rs:248:7
[INFO] [stdout]     |
[INFO] [stdout] 248 | macro assoc {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `operand_arm`
[INFO] [stdout]    --> src/expr.rs:254:7
[INFO] [stdout]     |
[INFO] [stdout] 254 | macro operand_arm {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `operator_arm`
[INFO] [stdout]    --> src/expr.rs:271:7
[INFO] [stdout]     |
[INFO] [stdout] 271 | macro operator_arm {
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `attempt`
[INFO] [stdout]    --> src/expr.rs:289:7
[INFO] [stdout]     |
[INFO] [stdout] 289 | macro attempt {
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `literal`
[INFO] [stdout]    --> src/expr.rs:304:7
[INFO] [stdout]     |
[INFO] [stdout] 304 | macro literal {
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]  --> src/primitives.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | / /// ```
[INFO] [stdout] 4 | | /// use takion::*;
[INFO] [stdout] 5 | | ///
[INFO] [stdout] 6 | | /// assert_eq!(bool::parse::<()>("true".into()).ok().unwrap(), true);
[INFO] [stdout] 7 | | /// assert_eq!(bool::parse::<()>("false".into()).ok().unwrap(), false);
[INFO] [stdout] 8 | | /// assert!(bool::parse::<()>("nah".into()).is_miss());
[INFO] [stdout] 9 | | /// ```
[INFO] [stdout]   | |_------^
[INFO] [stdout]   |   |
[INFO] [stdout]   |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]   |
[INFO] [stdout]   = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]   = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alternation::*`, `capture::*`, `cursor::*`, `error::*`, `macros::impl_tuple::tuples`, `movement::*`, `pipe::*`, `recovery::*`, `repetitions::*`, `ret::*`, and `syntax::*`
[INFO] [stdout]   --> src/lib.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     cursor::*, ret::*, error::*, formatting::*,
[INFO] [stdout]    |     ^^^^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stdout] 46 |     movement::*, repetitions::*, alternation::*, sequence::*,
[INFO] [stdout]    |     ^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     destructuring::*, recovery::*, capture::*, pipe::*,
[INFO] [stdout]    |                       ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 48 |     strings::*, syntax::*,
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 49 |     macros::impl_tuple::tuples,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `destructuring`
[INFO] [stdout]   --> src/lib.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     destructuring::*, recovery::*, capture::*, pipe::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]   --> src/ret/util_impl.rs:91:23
[INFO] [stdout]    |
[INFO] [stdout] 91 |             Ret::Miss(info) => Ok(None),
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[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/error.rs:41:40
[INFO] [stdout]    |
[INFO] [stdout] 41 |     #[inline(always)] fn wrap<P: Rule>(mut self, _: usize, _: usize) -> Self { Nothing }
[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 import: `destructuring`
[INFO] [stdout]   --> src/lib.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     destructuring::*, recovery::*, capture::*, pipe::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/repetitions.rs:216:28
[INFO] [stdout]     |
[INFO] [stdout] 216 |             Range::Between(from, upto) if unit >= upto    => { false }
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]   --> src/ret/util_impl.rs:91:23
[INFO] [stdout]    |
[INFO] [stdout] 91 |             Ret::Miss(info) => Ok(None),
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[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/error.rs:41:40
[INFO] [stdout]    |
[INFO] [stdout] 41 |     #[inline(always)] fn wrap<P: Rule>(mut self, _: usize, _: usize) -> Self { Nothing }
[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: `from`
[INFO] [stdout]    --> src/repetitions.rs:216:28
[INFO] [stdout]     |
[INFO] [stdout] 216 |             Range::Between(from, upto) if unit >= upto    => { false }
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/strings/tokens.rs:166:17
[INFO] [stdout]     |
[INFO] [stdout] 166 |             Err(e) => panic!("Between is not valid utf8"),
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Thing` is never used
[INFO] [stdout]   --> src/macros/pattern.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Thing = pat!{
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     assert_shape!((J)          => (Just,));
[INFO] [stdout]    |     -------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     assert_shape!((J)          => (Just,));
[INFO] [stdout]    |     -------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     assert_shape!((J)          => (Just,));
[INFO] [stdout]    |     -------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     assert_shape!((_, _)       => (Excl, Excl));
[INFO] [stdout]    |     ------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     assert_shape!((_, _)       => (Excl, Excl));
[INFO] [stdout]    |     ------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     assert_shape!((_, _)       => (Excl, Excl));
[INFO] [stdout]    |     ------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     assert_shape!((_, _, _)    => (Excl, Excl, Excl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     assert_shape!((_, _, _)    => (Excl, Excl, Excl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     assert_shape!((_, _, _)    => (Excl, Excl, Excl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     assert_shape!((J, _)       => (Just, Excl));
[INFO] [stdout]    |     ------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     assert_shape!((J, _)       => (Just, Excl));
[INFO] [stdout]    |     ------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     assert_shape!((J, _)       => (Just, Excl));
[INFO] [stdout]    |     ------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     assert_shape!((J, _, _)    => (Just, Excl, Excl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     assert_shape!((J, _, _)    => (Just, Excl, Excl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     assert_shape!((J, _, _)    => (Just, Excl, Excl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     assert_shape!((a, _, b)    => (Incl, Excl, Incl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     assert_shape!((a, _, b)    => (Incl, Excl, Incl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     assert_shape!((a, _, b)    => (Incl, Excl, Incl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     assert_shape!((_, J)       => (Excl, Just));
[INFO] [stdout]    |     ------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     assert_shape!((_, J)       => (Excl, Just));
[INFO] [stdout]    |     ------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     assert_shape!((_, J)       => (Excl, Just));
[INFO] [stdout]    |     ------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     assert_shape!((_, J, _)    => (Excl, Just, Excl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     assert_shape!((_, J, _)    => (Excl, Just, Excl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     assert_shape!((_, J, _)    => (Excl, Just, Excl));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     assert_shape!((_, _, J)    => (Excl, Excl, Just));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     assert_shape!((_, _, J)    => (Excl, Excl, Just));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     assert_shape!((_, _, J)    => (Excl, Excl, Just));
[INFO] [stdout]    |     ------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Eq2` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] 50 |         const _: () = {
[INFO] [stdout] 51 |             trait Eq2<T> {}
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     assert_shape!((_, _, J, _) => (Excl, Excl, Just, Excl));
[INFO] [stdout]    |     ------------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 53 |             fn check<A: Eq2<B>, B>() {}
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     assert_shape!((_, _, J, _) => (Excl, Excl, Just, Excl));
[INFO] [stdout]    |     ------------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/macros/destruct.rs:54:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     macro assert_shape($pat:tt => $expect:tt) {
[INFO] [stdout] ...
[INFO] [stdout] 54 |             fn go() { check::<destruct_inner!($pat), $expect>(); }
[INFO] [stdout]    |                ^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     assert_shape!((_, _, J, _) => (Excl, Excl, Just, Excl));
[INFO] [stdout]    |     ------------------------------------------------------- in this macro invocation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/error.rs:62:35
[INFO] [stdout]    |
[INFO] [stdout] 61 | #[derive(Clone, Copy, Hash, PartialEq, Eq)]
[INFO] [stdout]    |                             --------- in this derive macro expansion
[INFO] [stdout] 62 | pub struct Target((usize, usize), fn(&mut fmt::Formatter<'_>) -> fmt::Result);
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/error.rs:129:29
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 if !first { writeln!(f, ""); } else { first = false; };
[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] 129 |                 if !first { let _ = writeln!(f, ""); } else { first = false; };
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: const parameter `By` should have an upper case name
[INFO] [stdout]   --> src/movement.rs:11:26
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Advance<const By: usize = 1>;
[INFO] [stdout]    |                          ^^ help: convert the identifier to upper case (notice the capitalization): `BY`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: const parameter `By` should have an upper case name
[INFO] [stdout]   --> src/movement.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a, T: 'a, const By: usize> Parse<'a, T> for Advance<By> {
[INFO] [stdout]    |                       ^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case (notice the capitalization)
[INFO] [stdout]    |
[INFO] [stdout] 20 - impl<'a, T: 'a, const By: usize> Parse<'a, T> for Advance<By> {
[INFO] [stdout] 20 + impl<'a, T: 'a, const BY: usize> Parse<'a, T> for Advance<By> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: const parameter `By` should have an upper case name
[INFO] [stdout]   --> src/movement.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<const By: usize> Rule for Advance<By> {
[INFO] [stdout]    |            ^^ help: convert the identifier to upper case (notice the capitalization): `BY`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/strings/tokens.rs:166:17
[INFO] [stdout]     |
[INFO] [stdout] 166 |             Err(e) => panic!("Between is not valid utf8"),
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Thing` is never used
[INFO] [stdout]   --> src/macros/pattern.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Thing = pat!{
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/error.rs:62:35
[INFO] [stdout]    |
[INFO] [stdout] 61 | #[derive(Clone, Copy, Hash, PartialEq, Eq)]
[INFO] [stdout]    |                             --------- in this derive macro expansion
[INFO] [stdout] 62 | pub struct Target((usize, usize), fn(&mut fmt::Formatter<'_>) -> fmt::Result);
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/error.rs:129:29
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 if !first { writeln!(f, ""); } else { first = false; };
[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] 129 |                 if !first { let _ = writeln!(f, ""); } else { first = false; };
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: const parameter `By` should have an upper case name
[INFO] [stdout]   --> src/movement.rs:11:26
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Advance<const By: usize = 1>;
[INFO] [stdout]    |                          ^^ help: convert the identifier to upper case (notice the capitalization): `BY`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: const parameter `By` should have an upper case name
[INFO] [stdout]   --> src/movement.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a, T: 'a, const By: usize> Parse<'a, T> for Advance<By> {
[INFO] [stdout]    |                       ^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case (notice the capitalization)
[INFO] [stdout]    |
[INFO] [stdout] 20 - impl<'a, T: 'a, const By: usize> Parse<'a, T> for Advance<By> {
[INFO] [stdout] 20 + impl<'a, T: 'a, const BY: usize> Parse<'a, T> for Advance<By> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: const parameter `By` should have an upper case name
[INFO] [stdout]   --> src/movement.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<const By: usize> Rule for Advance<By> {
[INFO] [stdout]    |            ^^ help: convert the identifier to upper case (notice the capitalization): `BY`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Range::Exactly`
[INFO] [stdout]  --> examples/string-expansion.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use takion::{Range::Exactly, strings::Basic, syntax::RangesP, *};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> examples/string-expansion.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     (Commit<Tok<"{">, (Pipe<Raw<Tok<"}">>, Pattern>, Tok<"}">)>)>;
[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] 39 -     (Commit<Tok<"{">, (Pipe<Raw<Tok<"}">>, Pattern>, Tok<"}">)>)>;
[INFO] [stdout] 39 +     Commit<Tok<"{">, (Pipe<Raw<Tok<"}">>, Pattern>, Tok<"}">)>>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Range::Exactly`
[INFO] [stdout]  --> examples/string-expansion.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use takion::{Range::Exactly, strings::Basic, syntax::RangesP, *};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> examples/string-expansion.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     (Commit<Tok<"{">, (Pipe<Raw<Tok<"}">>, Pattern>, Tok<"}">)>)>;
[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] 39 -     (Commit<Tok<"{">, (Pipe<Raw<Tok<"}">>, Pattern>, Tok<"}">)>)>;
[INFO] [stdout] 39 +     Commit<Tok<"{">, (Pipe<Raw<Tok<"}">>, Pattern>, Tok<"}">)>>;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Calc` is never used
[INFO] [stdout]    --> examples/expressions.rs:112:6
[INFO] [stdout]     |
[INFO] [stdout] 112 | type Calc = Expr<f64, Js>;
[INFO] [stdout]     |      ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Sel` is never used
[INFO] [stdout]    --> examples/expressions.rs:268:6
[INFO] [stdout]     |
[INFO] [stdout] 268 | enum Sel { Has, Not, Descendant, Child }
[INFO] [stdout]     |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Pseudo` is never used
[INFO] [stdout]    --> examples/expressions.rs:270:6
[INFO] [stdout]     |
[INFO] [stdout] 270 | type Pseudo<const NAME: &'static str, E> =
[INFO] [stdout]     |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.29s
[INFO] running `Command { std: "docker" "inspect" "20042a37ada35dbc2b3cc425910ca4e8cb26e4865e47b6180fb6791d979c44a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20042a37ada35dbc2b3cc425910ca4e8cb26e4865e47b6180fb6791d979c44a1", kill_on_drop: false }`
[INFO] [stdout] 20042a37ada35dbc2b3cc425910ca4e8cb26e4865e47b6180fb6791d979c44a1
