[INFO] cloning repository https://github.com/fourohfour/enquel [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fourohfour/enquel" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffourohfour%2Fenquel", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffourohfour%2Fenquel'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0add6c82245dab3c7e4e03592fa12ea76b68a30f [INFO] linting fourohfour/enquel against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffourohfour%2Fenquel" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/fourohfour/enquel [INFO] finished tweaking git repo https://github.com/fourohfour/enquel [INFO] tweaked toml for git repo https://github.com/fourohfour/enquel written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/fourohfour/enquel on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/fourohfour/enquel 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] bee1bbd6bf5296cb4cd160c29edc67780ac8c2c8770de2655e5e1ddc549b7926 [INFO] running `Command { std: "docker" "start" "-a" "bee1bbd6bf5296cb4cd160c29edc67780ac8c2c8770de2655e5e1ddc549b7926", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bee1bbd6bf5296cb4cd160c29edc67780ac8c2c8770de2655e5e1ddc549b7926", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bee1bbd6bf5296cb4cd160c29edc67780ac8c2c8770de2655e5e1ddc549b7926", kill_on_drop: false }` [INFO] [stdout] bee1bbd6bf5296cb4cd160c29edc67780ac8c2c8770de2655e5e1ddc549b7926 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 51797fad7616982290a3dfb8c6b2532f96b714267e8bddf2a5585af7acc7921b [INFO] running `Command { std: "docker" "start" "-a" "51797fad7616982290a3dfb8c6b2532f96b714267e8bddf2a5585af7acc7921b", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Checking enquel v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tokeniser.rs:51:19 [INFO] [stdout] | [INFO] [stdout] 51 | slice : slice, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `slice` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tokeniser.rs:52:19 [INFO] [stdout] | [INFO] [stdout] 52 | chars : chars, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `chars` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tokeniser.rs:79:34 [INFO] [stdout] | [INFO] [stdout] 79 | ... length : length , [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace it with: `length` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tokeniser.rs:315:63 [INFO] [stdout] | [INFO] [stdout] 315 | ... return Some(token::Token {origin: origin, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `token` [INFO] [stdout] --> src/parse.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use token; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parse.rs:91:26 [INFO] [stdout] | [INFO] [stdout] 91 | let node = Node {data: data, children: Vec::new()}; [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokens` [INFO] [stdout] --> src/main.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | let tokens = tokeniser::tokenise(&inbuf); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `index`, `row`, `column`, and `length` are never read [INFO] [stdout] --> src/token.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Origin { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 3 | pub index : u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 4 | pub row : u64, [INFO] [stdout] | ^^^ [INFO] [stdout] 5 | pub column : u64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 6 | pub length : u64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Origin` 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: field `0` is never read [INFO] [stdout] --> src/token.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | Integer(i64) , [INFO] [stdout] | ------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Number` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - Integer(i64) , [INFO] [stdout] 11 + Integer(()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | Float(f64) , [INFO] [stdout] | ----- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Number` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 12 - Float(f64) , [INFO] [stdout] 12 + Float(()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:18:20 [INFO] [stdout] | [INFO] [stdout] 18 | Name (String) , [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenValue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 - Name (String) , [INFO] [stdout] 18 + Name (()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 19 | StringLiteral (String) , [INFO] [stdout] | ------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenValue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 19 - StringLiteral (String) , [INFO] [stdout] 19 + StringLiteral (()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:20:20 [INFO] [stdout] | [INFO] [stdout] 20 | NumberLiteral (Number) , [INFO] [stdout] | ------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenValue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 20 - NumberLiteral (Number) , [INFO] [stdout] 20 + NumberLiteral (()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | Hash(String), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenValue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - Hash(String), [INFO] [stdout] 24 + Hash(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `origin` and `value` are never read [INFO] [stdout] --> src/token.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct Token { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 51 | pub origin : Origin , [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 52 | pub value : TokenValue, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `slice` is never read [INFO] [stdout] --> src/tokeniser.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | struct Consumer<'a> { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 10 | slice : &'a str , [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `placeholder_origin` is never used [INFO] [stdout] --> src/tokeniser.rs:43:4 [INFO] [stdout] | [INFO] [stdout] 43 | fn placeholder_origin() -> token::Origin { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ungrab` is never used [INFO] [stdout] --> src/tokeniser.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 47 | impl<'a> Consumer<'a> { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 119 | fn ungrab(&mut self) -> () { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ArgClass` is never used [INFO] [stdout] --> src/parse.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum ArgClass { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogicalBlock` is never used [INFO] [stdout] --> src/parse.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum LogicalBlock { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `EvaluatorType` is never used [INFO] [stdout] --> src/parse.rs:21:10 [INFO] [stdout] | [INFO] [stdout] 21 | pub enum EvaluatorType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ComparisonOperator` is never used [INFO] [stdout] --> src/parse.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum ComparisonOperator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NodeData` is never used [INFO] [stdout] --> src/parse.rs:38:10 [INFO] [stdout] | [INFO] [stdout] 38 | pub enum NodeData { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/parse.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 80 | pub struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add_child`, `new_child`, and `walk_display` are never used [INFO] [stdout] --> src/parse.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 85 | impl Node { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 86 | pub fn add_child(&mut self, c : Node) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn new_child(&mut self, data: NodeData) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | fn walk_display(&self, depth: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Tree` is never constructed [INFO] [stdout] --> src/parse.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 104 | pub struct Tree { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `root`, and `walk` are never used [INFO] [stdout] --> src/parse.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 108 | impl Tree { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 109 | pub fn new() -> Tree { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn root<'rnode>(&'rnode mut self) -> &'rnode mut Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn walk<'rnode>(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tokeniser.rs:51:19 [INFO] [stdout] | [INFO] [stdout] 51 | slice : slice, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `slice` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tokeniser.rs:52:19 [INFO] [stdout] | [INFO] [stdout] 52 | chars : chars, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `chars` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tokeniser.rs:79:34 [INFO] [stdout] | [INFO] [stdout] 79 | ... length : length , [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace it with: `length` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/tokeniser.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | if !(c.is_digit(10) || c == '.') { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tokeniser.rs:315:63 [INFO] [stdout] | [INFO] [stdout] 315 | ... return Some(token::Token {origin: origin, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `token` [INFO] [stdout] --> src/parse.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use token; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parse.rs:91:26 [INFO] [stdout] | [INFO] [stdout] 91 | let node = Node {data: data, children: Vec::new()}; [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | return self.chars.get(self.ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 89 - return self.chars.get(self.ptr); [INFO] [stdout] 89 + self.chars.get(self.ptr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | return self.chars.get(self.ptr + self.grab + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return self.chars.get(self.ptr + self.grab + 1); [INFO] [stdout] 93 + self.chars.get(self.ptr + self.grab + 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | return Some(*c); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 98 - return Some(*c); [INFO] [stdout] 98 + Some(*c) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 101 - return None; [INFO] [stdout] 101 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | return Some(*c); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 107 - return Some(*c); [INFO] [stdout] 107 + Some(*c) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 110 - return None; [INFO] [stdout] 110 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/tokeniser.rs:119:25 [INFO] [stdout] | [INFO] [stdout] 119 | fn ungrab(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tokeniser.rs:291:16 [INFO] [stdout] | [INFO] [stdout] 291 | if !(init == '\"') { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `(init != '\"')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:292:17 [INFO] [stdout] | [INFO] [stdout] 292 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 292 - return None; [INFO] [stdout] 292 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:345:13 [INFO] [stdout] | [INFO] [stdout] 345 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 345 - return None; [INFO] [stdout] 345 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `shrink` is used as a loop counter [INFO] [stdout] --> src/tokeniser.rs:307:33 [INFO] [stdout] | [INFO] [stdout] 307 | ... for c in &controls { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using: `for (shrink, c) in (0_u32..).zip(controls.iter())` [INFO] [stdout] | [INFO] [stdout] = note: `shrink` is of type `u32`, making it ineligible for `Iterator::enumerate` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/tokeniser.rs:503:5 [INFO] [stdout] | [INFO] [stdout] 503 | / loop { [INFO] [stdout] 504 | | if let Some(c) = consumer.current() { [INFO] [stdout] 505 | | if c.is_whitespace() { [INFO] [stdout] 506 | | consumer.consume_whitespace(); [INFO] [stdout] ... | [INFO] [stdout] 532 | | } [INFO] [stdout] | |_____^ help: try: `while let Some(c) = consumer.current() { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'rnode [INFO] [stdout] --> src/parse.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | pub fn root<'rnode>(&'rnode mut self) -> &'rnode mut Node { [INFO] [stdout] | ^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 118 - pub fn root<'rnode>(&'rnode mut self) -> &'rnode mut Node { [INFO] [stdout] 118 + pub fn root(&mut self) -> &mut Node { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/parse.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn walk<'rnode>(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/tokeniser.rs:48:31 [INFO] [stdout] | [INFO] [stdout] 48 | fn new(slice: &'a str) -> Consumer { [INFO] [stdout] | -- ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 48 | fn new(slice: &'a str) -> Consumer<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokens` [INFO] [stdout] --> src/main.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | let tokens = tokeniser::tokenise(&inbuf); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `index`, `row`, `column`, and `length` are never read [INFO] [stdout] --> src/token.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Origin { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 3 | pub index : u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 4 | pub row : u64, [INFO] [stdout] | ^^^ [INFO] [stdout] 5 | pub column : u64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 6 | pub length : u64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Origin` 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: field `0` is never read [INFO] [stdout] --> src/token.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | Integer(i64) , [INFO] [stdout] | ------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Number` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - Integer(i64) , [INFO] [stdout] 11 + Integer(()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | Float(f64) , [INFO] [stdout] | ----- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Number` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 12 - Float(f64) , [INFO] [stdout] 12 + Float(()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:18:20 [INFO] [stdout] | [INFO] [stdout] 18 | Name (String) , [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenValue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 - Name (String) , [INFO] [stdout] 18 + Name (()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 19 | StringLiteral (String) , [INFO] [stdout] | ------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenValue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 19 - StringLiteral (String) , [INFO] [stdout] 19 + StringLiteral (()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:20:20 [INFO] [stdout] | [INFO] [stdout] 20 | NumberLiteral (Number) , [INFO] [stdout] | ------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenValue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 20 - NumberLiteral (Number) , [INFO] [stdout] 20 + NumberLiteral (()) , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/token.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | Hash(String), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenValue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - Hash(String), [INFO] [stdout] 24 + Hash(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `origin` and `value` are never read [INFO] [stdout] --> src/token.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct Token { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 51 | pub origin : Origin , [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 52 | pub value : TokenValue, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `slice` is never read [INFO] [stdout] --> src/tokeniser.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | struct Consumer<'a> { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 10 | slice : &'a str , [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `placeholder_origin` is never used [INFO] [stdout] --> src/tokeniser.rs:43:4 [INFO] [stdout] | [INFO] [stdout] 43 | fn placeholder_origin() -> token::Origin { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ungrab` is never used [INFO] [stdout] --> src/tokeniser.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 47 | impl<'a> Consumer<'a> { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 119 | fn ungrab(&mut self) -> () { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ArgClass` is never used [INFO] [stdout] --> src/parse.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum ArgClass { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogicalBlock` is never used [INFO] [stdout] --> src/parse.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum LogicalBlock { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `EvaluatorType` is never used [INFO] [stdout] --> src/parse.rs:21:10 [INFO] [stdout] | [INFO] [stdout] 21 | pub enum EvaluatorType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ComparisonOperator` is never used [INFO] [stdout] --> src/parse.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum ComparisonOperator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NodeData` is never used [INFO] [stdout] --> src/parse.rs:38:10 [INFO] [stdout] | [INFO] [stdout] 38 | pub enum NodeData { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/parse.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 80 | pub struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add_child`, `new_child`, and `walk_display` are never used [INFO] [stdout] --> src/parse.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 85 | impl Node { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 86 | pub fn add_child(&mut self, c : Node) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn new_child(&mut self, data: NodeData) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | fn walk_display(&self, depth: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Tree` is never constructed [INFO] [stdout] --> src/parse.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 104 | pub struct Tree { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `root`, and `walk` are never used [INFO] [stdout] --> src/parse.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 108 | impl Tree { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 109 | pub fn new() -> Tree { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn root<'rnode>(&'rnode mut self) -> &'rnode mut Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn walk<'rnode>(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/tokeniser.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | if !(c.is_digit(10) || c == '.') { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | return self.chars.get(self.ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 89 - return self.chars.get(self.ptr); [INFO] [stdout] 89 + self.chars.get(self.ptr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | return self.chars.get(self.ptr + self.grab + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return self.chars.get(self.ptr + self.grab + 1); [INFO] [stdout] 93 + self.chars.get(self.ptr + self.grab + 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | return Some(*c); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 98 - return Some(*c); [INFO] [stdout] 98 + Some(*c) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 101 - return None; [INFO] [stdout] 101 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | return Some(*c); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 107 - return Some(*c); [INFO] [stdout] 107 + Some(*c) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 110 - return None; [INFO] [stdout] 110 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/tokeniser.rs:119:25 [INFO] [stdout] | [INFO] [stdout] 119 | fn ungrab(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tokeniser.rs:291:16 [INFO] [stdout] | [INFO] [stdout] 291 | if !(init == '\"') { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `(init != '\"')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:292:17 [INFO] [stdout] | [INFO] [stdout] 292 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 292 - return None; [INFO] [stdout] 292 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tokeniser.rs:345:13 [INFO] [stdout] | [INFO] [stdout] 345 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 345 - return None; [INFO] [stdout] 345 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `shrink` is used as a loop counter [INFO] [stdout] --> src/tokeniser.rs:307:33 [INFO] [stdout] | [INFO] [stdout] 307 | ... for c in &controls { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using: `for (shrink, c) in (0_u32..).zip(controls.iter())` [INFO] [stdout] | [INFO] [stdout] = note: `shrink` is of type `u32`, making it ineligible for `Iterator::enumerate` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/tokeniser.rs:503:5 [INFO] [stdout] | [INFO] [stdout] 503 | / loop { [INFO] [stdout] 504 | | if let Some(c) = consumer.current() { [INFO] [stdout] 505 | | if c.is_whitespace() { [INFO] [stdout] 506 | | consumer.consume_whitespace(); [INFO] [stdout] ... | [INFO] [stdout] 532 | | } [INFO] [stdout] | |_____^ help: try: `while let Some(c) = consumer.current() { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'rnode [INFO] [stdout] --> src/parse.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | pub fn root<'rnode>(&'rnode mut self) -> &'rnode mut Node { [INFO] [stdout] | ^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 118 - pub fn root<'rnode>(&'rnode mut self) -> &'rnode mut Node { [INFO] [stdout] 118 + pub fn root(&mut self) -> &mut Node { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/parse.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn walk<'rnode>(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/tokeniser.rs:48:31 [INFO] [stdout] | [INFO] [stdout] 48 | fn new(slice: &'a str) -> Consumer { [INFO] [stdout] | -- ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 48 | fn new(slice: &'a str) -> Consumer<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.34s [INFO] running `Command { std: "docker" "inspect" "51797fad7616982290a3dfb8c6b2532f96b714267e8bddf2a5585af7acc7921b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "51797fad7616982290a3dfb8c6b2532f96b714267e8bddf2a5585af7acc7921b", kill_on_drop: false }` [INFO] [stdout] 51797fad7616982290a3dfb8c6b2532f96b714267e8bddf2a5585af7acc7921b