[INFO] cloning repository https://github.com/crestonbunch/reticulated [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/crestonbunch/reticulated" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcrestonbunch%2Freticulated", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcrestonbunch%2Freticulated'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e36b5c3a16526a9a57a3b8083aefae59d2053e88 [INFO] linting crestonbunch/reticulated against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcrestonbunch%2Freticulated" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/crestonbunch/reticulated [INFO] finished tweaking git repo https://github.com/crestonbunch/reticulated [INFO] tweaked toml for git repo https://github.com/crestonbunch/reticulated written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/crestonbunch/reticulated 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/crestonbunch/reticulated 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] Downloading crates ... [INFO] [stderr] Downloaded cast v0.2.2 [INFO] [stderr] Downloaded tinytemplate v1.0.1 [INFO] [stderr] Downloaded csv-core v0.1.5 [INFO] [stderr] Downloaded itertools v0.8.0 [INFO] [stderr] Downloaded syn v0.15.33 [INFO] [stderr] Downloaded libc v0.2.53 [INFO] [stderr] Downloaded csv v1.0.7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 381e533d69e6061c2772a58525effdc657e787c06cc5f6b210a24d60ef96e396 [INFO] running `Command { std: "docker" "start" "-a" "381e533d69e6061c2772a58525effdc657e787c06cc5f6b210a24d60ef96e396", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "381e533d69e6061c2772a58525effdc657e787c06cc5f6b210a24d60ef96e396", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "381e533d69e6061c2772a58525effdc657e787c06cc5f6b210a24d60ef96e396", kill_on_drop: false }` [INFO] [stdout] 381e533d69e6061c2772a58525effdc657e787c06cc5f6b210a24d60ef96e396 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 72a1b7b1adeb9f694e04ae3e7a59ef217607edbe1e601689ca0a65b3325477ba [INFO] running `Command { std: "docker" "start" "-a" "72a1b7b1adeb9f694e04ae3e7a59ef217607edbe1e601689ca0a65b3325477ba", kill_on_drop: false }` [INFO] [stderr] Compiling syn v0.15.33 [INFO] [stderr] Checking lexer v0.1.0 (/opt/rustwide/workdir/lexer) [INFO] [stderr] Compiling libc v0.2.53 [INFO] [stderr] Compiling arrayvec v0.4.10 [INFO] [stderr] Compiling ryu v0.2.7 [INFO] [stderr] Checking cfg-if v0.1.7 [INFO] [stderr] Checking memoffset v0.2.1 [INFO] [stderr] Checking lazy_static v1.3.0 [INFO] [stderr] Compiling memchr v2.2.0 [INFO] [stderr] Compiling byteorder v1.3.1 [INFO] [stderr] Compiling rayon-core v1.4.1 [INFO] [stderr] Checking itoa v0.4.3 [INFO] [stderr] Checking rand_core v0.4.0 [INFO] [stderr] Checking either v1.5.2 [INFO] [stderr] Compiling num-traits v0.2.6 [INFO] [stderr] Compiling rayon v1.0.3 [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:202:16 [INFO] [stdout] | [INFO] [stdout] 202 | 'a'...'z' | 'A'...'Z' | '_' => self.maybe_handle_identifier(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:202:28 [INFO] [stdout] | [INFO] [stdout] 202 | 'a'...'z' | 'A'...'Z' | '_' => self.maybe_handle_identifier(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:205:16 [INFO] [stdout] | [INFO] [stdout] 205 | '0'...'9' => self.handle_number(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:374:21 [INFO] [stdout] | [INFO] [stdout] 374 | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:374:39 [INFO] [stdout] | [INFO] [stdout] 374 | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:374:57 [INFO] [stdout] | [INFO] [stdout] 374 | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:548:16 [INFO] [stdout] | [INFO] [stdout] 548 | '0'...'9' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:566:22 [INFO] [stdout] | [INFO] [stdout] 566 | (Some('0'...'9'), Some('_')) => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:567:22 [INFO] [stdout] | [INFO] [stdout] 567 | (Some('0'...'9'), _) => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:593:16 [INFO] [stdout] | [INFO] [stdout] 593 | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:593:28 [INFO] [stdout] | [INFO] [stdout] 593 | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:593:40 [INFO] [stdout] | [INFO] [stdout] 593 | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:597:16 [INFO] [stdout] | [INFO] [stdout] 597 | '0'...'7' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:643:17 [INFO] [stdout] | [INFO] [stdout] 643 | ('0'...'9', _) => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:657:21 [INFO] [stdout] | [INFO] [stdout] 657 | Some('0'...'9') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> lexer/src/error.rs:27:32 [INFO] [stdout] | [INFO] [stdout] 27 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 | fn cause(&self) -> Option<&dyn error::Error> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking crossbeam-utils v0.2.2 [INFO] [stderr] Checking itertools v0.8.0 [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:202:16 [INFO] [stdout] | [INFO] [stdout] 202 | 'a'...'z' | 'A'...'Z' | '_' => self.maybe_handle_identifier(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:202:28 [INFO] [stdout] | [INFO] [stdout] 202 | 'a'...'z' | 'A'...'Z' | '_' => self.maybe_handle_identifier(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:205:16 [INFO] [stdout] | [INFO] [stdout] 205 | '0'...'9' => self.handle_number(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:374:21 [INFO] [stdout] | [INFO] [stdout] 374 | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:374:39 [INFO] [stdout] | [INFO] [stdout] 374 | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:374:57 [INFO] [stdout] | [INFO] [stdout] 374 | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:548:16 [INFO] [stdout] | [INFO] [stdout] 548 | '0'...'9' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:566:22 [INFO] [stdout] | [INFO] [stdout] 566 | (Some('0'...'9'), Some('_')) => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:567:22 [INFO] [stdout] | [INFO] [stdout] 567 | (Some('0'...'9'), _) => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:593:16 [INFO] [stdout] | [INFO] [stdout] 593 | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:593:28 [INFO] [stdout] | [INFO] [stdout] 593 | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:593:40 [INFO] [stdout] | [INFO] [stdout] 593 | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:597:16 [INFO] [stdout] | [INFO] [stdout] 597 | '0'...'7' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:643:17 [INFO] [stdout] | [INFO] [stdout] 643 | ('0'...'9', _) => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:657:21 [INFO] [stdout] | [INFO] [stdout] 657 | Some('0'...'9') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> lexer/src/error.rs:27:32 [INFO] [stdout] | [INFO] [stdout] 27 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 | fn cause(&self) -> Option<&dyn error::Error> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/buffer.rs:53:6 [INFO] [stdout] | [INFO] [stdout] 53 | impl<'a, R: Read> TokenBuffer { [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] [stderr] Checking unicode-xid v0.1.0 [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> lexer/src/buffer.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | self.begin = self.begin - BUFFER_LEN; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.begin -= BUFFER_LEN` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/error.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | impl<'a> fmt::Display for LexerError { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/error.rs:22:6 [INFO] [stdout] | [INFO] [stdout] 22 | impl<'a> error::Error for LexerError { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/error.rs:33:6 [INFO] [stdout] | [INFO] [stdout] 33 | impl<'a> LexerError { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/tokens.rs:144:6 [INFO] [stdout] | [INFO] [stdout] 144 | impl<'a> fmt::Display for Token { [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] [INFO] [stdout] [INFO] [stderr] Checking same-file v1.0.4 [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/buffer.rs:53:6 [INFO] [stdout] | [INFO] [stdout] 53 | impl<'a, R: Read> TokenBuffer { [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: manual implementation of an assign operation [INFO] [stdout] --> lexer/src/buffer.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | self.begin = self.begin - BUFFER_LEN; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.begin -= BUFFER_LEN` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/error.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | impl<'a> fmt::Display for LexerError { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/error.rs:22:6 [INFO] [stdout] | [INFO] [stdout] 22 | impl<'a> error::Error for LexerError { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/error.rs:33:6 [INFO] [stdout] | [INFO] [stdout] 33 | impl<'a> LexerError { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/tokens.rs:144:6 [INFO] [stdout] | [INFO] [stdout] 144 | impl<'a> fmt::Display for Token { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/lib.rs:111:6 [INFO] [stdout] | [INFO] [stdout] 111 | impl<'a, R: Read> Lexer { [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lexer/src/lib.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | return Ok(Some(Token::Indent)); [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] 286 - return Ok(Some(Token::Indent)); [INFO] [stdout] 286 + Ok(Some(Token::Indent)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lexer/src/lib.rs:309:13 [INFO] [stdout] | [INFO] [stdout] 309 | return Ok(Some(Token::Dedent)); [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] 309 - return Ok(Some(Token::Dedent)); [INFO] [stdout] 309 + Ok(Some(Token::Dedent)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:350:15 [INFO] [stdout] | [INFO] [stdout] 350 | while match c { [INFO] [stdout] | _______________^ [INFO] [stdout] 351 | | Some('\n') | None => false, [INFO] [stdout] 352 | | _ => true, [INFO] [stdout] 353 | | } { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 350 - while match c { [INFO] [stdout] 351 - Some('\n') | None => false, [INFO] [stdout] 352 - _ => true, [INFO] [stdout] 353 - } { [INFO] [stdout] 350 + while !matches!(c, Some('\n') | None) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:373:15 [INFO] [stdout] | [INFO] [stdout] 373 | while match x { [INFO] [stdout] | _______________^ [INFO] [stdout] 374 | | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] 375 | | true [INFO] [stdout] ... | [INFO] [stdout] 378 | | } { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 373 - while match x { [INFO] [stdout] 374 - Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] 375 - true [INFO] [stdout] 376 - } [INFO] [stdout] 377 - _ => false, [INFO] [stdout] 378 - } { [INFO] [stdout] 373 + while matches!(x, Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_')) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lexer/src/lib.rs:445:20 [INFO] [stdout] | [INFO] [stdout] 445 | if !q.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `q.is_some()` [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: this boolean expression can be simplified [INFO] [stdout] --> lexer/src/lib.rs:450:20 [INFO] [stdout] | [INFO] [stdout] 450 | if !q.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `q.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lexer/src/lib.rs:453:20 [INFO] [stdout] | [INFO] [stdout] 453 | if !c.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `c.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> lexer/src/lib.rs:432:12 [INFO] [stdout] | [INFO] [stdout] 432 | if c == None { [INFO] [stdout] | ^^^^^^^^^ help: use `Option::is_none()` instead: `c.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> lexer/src/lib.rs:434:17 [INFO] [stdout] | [INFO] [stdout] 434 | "EOF reached while scanning string".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"EOF reached while scanning string"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> lexer/src/lib.rs:465:25 [INFO] [stdout] | [INFO] [stdout] 465 | "EOF reached while scanning string".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"EOF reached while scanning string"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> lexer/src/lib.rs:472:25 [INFO] [stdout] | [INFO] [stdout] 472 | "Unexpected newline in string".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"Unexpected newline in string"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:547:36 [INFO] [stdout] | [INFO] [stdout] 547 | let is_decimal_digit = |x| match x { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 548 | | '0'...'9' => true, [INFO] [stdout] 549 | | _ => false, [INFO] [stdout] 550 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 547 - let is_decimal_digit = |x| match x { [INFO] [stdout] 548 - '0'...'9' => true, [INFO] [stdout] 549 - _ => false, [INFO] [stdout] 550 - }; [INFO] [stdout] 547 + let is_decimal_digit = |x| matches!(x, '0'...'9'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/lib.rs:111:6 [INFO] [stdout] | [INFO] [stdout] 111 | impl<'a, R: Read> Lexer { [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] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> lexer/src/lib.rs:579:13 [INFO] [stdout] | [INFO] [stdout] 579 | / match option { [INFO] [stdout] 580 | | Some(err) => return Err(err), [INFO] [stdout] 581 | | None => (), [INFO] [stdout] 582 | | } [INFO] [stdout] | |_____________^ help: try: `if let Some(err) = option { return Err(err) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:592:32 [INFO] [stdout] | [INFO] [stdout] 592 | let is_hex_digit = |x| match x { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 593 | | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] 594 | | _ => false, [INFO] [stdout] 595 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 592 - let is_hex_digit = |x| match x { [INFO] [stdout] 593 - '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] 594 - _ => false, [INFO] [stdout] 595 - }; [INFO] [stdout] 592 + let is_hex_digit = |x| matches!(x, '0'...'9' | 'a'...'f' | 'A'...'F'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:596:34 [INFO] [stdout] | [INFO] [stdout] 596 | let is_octal_digit = |x| match x { [INFO] [stdout] | __________________________________^ [INFO] [stdout] 597 | | '0'...'7' => true, [INFO] [stdout] 598 | | _ => false, [INFO] [stdout] 599 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 596 - let is_octal_digit = |x| match x { [INFO] [stdout] 597 - '0'...'7' => true, [INFO] [stdout] 598 - _ => false, [INFO] [stdout] 599 - }; [INFO] [stdout] 596 + let is_octal_digit = |x| matches!(x, '0'...'7'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:600:35 [INFO] [stdout] | [INFO] [stdout] 600 | let is_binary_digit = |x| match x { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 601 | | '0' | '1' => true, [INFO] [stdout] 602 | | _ => false, [INFO] [stdout] 603 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 600 - let is_binary_digit = |x| match x { [INFO] [stdout] 601 - '0' | '1' => true, [INFO] [stdout] 602 - _ => false, [INFO] [stdout] 603 - }; [INFO] [stdout] 600 + let is_binary_digit = |x| matches!(x, '0' | '1'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lexer/src/lib.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | return Ok(Some(Token::Indent)); [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] 286 - return Ok(Some(Token::Indent)); [INFO] [stdout] 286 + Ok(Some(Token::Indent)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lexer/src/lib.rs:309:13 [INFO] [stdout] | [INFO] [stdout] 309 | return Ok(Some(Token::Dedent)); [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] 309 - return Ok(Some(Token::Dedent)); [INFO] [stdout] 309 + Ok(Some(Token::Dedent)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:350:15 [INFO] [stdout] | [INFO] [stdout] 350 | while match c { [INFO] [stdout] | _______________^ [INFO] [stdout] 351 | | Some('\n') | None => false, [INFO] [stdout] 352 | | _ => true, [INFO] [stdout] 353 | | } { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 350 - while match c { [INFO] [stdout] 351 - Some('\n') | None => false, [INFO] [stdout] 352 - _ => true, [INFO] [stdout] 353 - } { [INFO] [stdout] 350 + while !matches!(c, Some('\n') | None) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking cast v0.2.2 [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:373:15 [INFO] [stdout] | [INFO] [stdout] 373 | while match x { [INFO] [stdout] | _______________^ [INFO] [stdout] 374 | | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] 375 | | true [INFO] [stdout] ... | [INFO] [stdout] 378 | | } { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 373 - while match x { [INFO] [stdout] 374 - Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] 375 - true [INFO] [stdout] 376 - } [INFO] [stdout] 377 - _ => false, [INFO] [stdout] 378 - } { [INFO] [stdout] 373 + while matches!(x, Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_')) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lexer/src/lib.rs:445:20 [INFO] [stdout] | [INFO] [stdout] 445 | if !q.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `q.is_some()` [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: this boolean expression can be simplified [INFO] [stdout] --> lexer/src/lib.rs:450:20 [INFO] [stdout] | [INFO] [stdout] 450 | if !q.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `q.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lexer/src/lib.rs:453:20 [INFO] [stdout] | [INFO] [stdout] 453 | if !c.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `c.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> lexer/src/lib.rs:432:12 [INFO] [stdout] | [INFO] [stdout] 432 | if c == None { [INFO] [stdout] | ^^^^^^^^^ help: use `Option::is_none()` instead: `c.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> lexer/src/lib.rs:434:17 [INFO] [stdout] | [INFO] [stdout] 434 | "EOF reached while scanning string".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"EOF reached while scanning string"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> lexer/src/lib.rs:465:25 [INFO] [stdout] | [INFO] [stdout] 465 | "EOF reached while scanning string".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"EOF reached while scanning string"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> lexer/src/lib.rs:472:25 [INFO] [stdout] | [INFO] [stdout] 472 | "Unexpected newline in string".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"Unexpected newline in string"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:547:36 [INFO] [stdout] | [INFO] [stdout] 547 | let is_decimal_digit = |x| match x { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 548 | | '0'...'9' => true, [INFO] [stdout] 549 | | _ => false, [INFO] [stdout] 550 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 547 - let is_decimal_digit = |x| match x { [INFO] [stdout] 548 - '0'...'9' => true, [INFO] [stdout] 549 - _ => false, [INFO] [stdout] 550 - }; [INFO] [stdout] 547 + let is_decimal_digit = |x| matches!(x, '0'...'9'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> lexer/src/lib.rs:579:13 [INFO] [stdout] | [INFO] [stdout] 579 | / match option { [INFO] [stdout] 580 | | Some(err) => return Err(err), [INFO] [stdout] 581 | | None => (), [INFO] [stdout] 582 | | } [INFO] [stdout] | |_____________^ help: try: `if let Some(err) = option { return Err(err) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:592:32 [INFO] [stdout] | [INFO] [stdout] 592 | let is_hex_digit = |x| match x { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 593 | | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] 594 | | _ => false, [INFO] [stdout] 595 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 592 - let is_hex_digit = |x| match x { [INFO] [stdout] 593 - '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] 594 - _ => false, [INFO] [stdout] 595 - }; [INFO] [stdout] 592 + let is_hex_digit = |x| matches!(x, '0'...'9' | 'a'...'f' | 'A'...'F'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:596:34 [INFO] [stdout] | [INFO] [stdout] 596 | let is_octal_digit = |x| match x { [INFO] [stdout] | __________________________________^ [INFO] [stdout] 597 | | '0'...'7' => true, [INFO] [stdout] 598 | | _ => false, [INFO] [stdout] 599 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 596 - let is_octal_digit = |x| match x { [INFO] [stdout] 597 - '0'...'7' => true, [INFO] [stdout] 598 - _ => false, [INFO] [stdout] 599 - }; [INFO] [stdout] 596 + let is_octal_digit = |x| matches!(x, '0'...'7'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:600:35 [INFO] [stdout] | [INFO] [stdout] 600 | let is_binary_digit = |x| match x { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 601 | | '0' | '1' => true, [INFO] [stdout] 602 | | _ => false, [INFO] [stdout] 603 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 600 - let is_binary_digit = |x| match x { [INFO] [stdout] 601 - '0' | '1' => true, [INFO] [stdout] 602 - _ => false, [INFO] [stdout] 603 - }; [INFO] [stdout] 600 + let is_binary_digit = |x| matches!(x, '0' | '1'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking syntax v0.1.0 (/opt/rustwide/workdir/parser/trees/syntax) [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Checking clap v2.33.0 [INFO] [stderr] Checking walkdir v2.2.7 [INFO] [stderr] Checking proc-macro2 v0.4.28 [INFO] [stderr] Checking compiler v0.1.0 (/opt/rustwide/workdir/compiler) [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> parser/trees/syntax/src/arg.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::RefCell; [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::rc::Rc` [INFO] [stdout] --> parser/trees/syntax/src/arg.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CompOp` [INFO] [stdout] --> parser/trees/syntax/src/arg.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::{CompOp, Expr, SNode, SyntaxConstruct, SyntaxNode}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> parser/trees/syntax/src/arguments.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> parser/trees/syntax/src/arguments.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> parser/trees/syntax/src/expr.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> parser/trees/syntax/src/expr.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SyntaxNode` [INFO] [stdout] --> parser/trees/syntax/src/stmt.rs:1:37 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{SNode, SyntaxConstruct, SyntaxNode}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer::Span` [INFO] [stdout] --> parser/trees/syntax/src/stmt.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use lexer::Span; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SyntaxNode` [INFO] [stdout] --> parser/trees/syntax/src/stmts.rs:1:43 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{SNode, Stmt, SyntaxConstruct, SyntaxNode}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer::Span` [INFO] [stdout] --> parser/trees/syntax/src/stmts.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use lexer::Span; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> parser/trees/syntax/src/arguments.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | / pub fn new( [INFO] [stdout] 20 | | args: Vec>, [INFO] [stdout] 21 | | pos_only_args: Vec>, [INFO] [stdout] 22 | | var_arg: Option>, [INFO] [stdout] ... | [INFO] [stdout] 27 | | span: Span, [INFO] [stdout] 28 | | ) -> SNode { [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> parser/trees/syntax/src/arg.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::RefCell; [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::rc::Rc` [INFO] [stdout] --> parser/trees/syntax/src/arg.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CompOp` [INFO] [stdout] --> parser/trees/syntax/src/arg.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::{CompOp, Expr, SNode, SyntaxConstruct, SyntaxNode}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> parser/trees/syntax/src/arguments.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> parser/trees/syntax/src/arguments.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> parser/trees/syntax/src/expr.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> parser/trees/syntax/src/expr.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SyntaxNode` [INFO] [stdout] --> parser/trees/syntax/src/stmt.rs:1:37 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{SNode, SyntaxConstruct, SyntaxNode}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer::Span` [INFO] [stdout] --> parser/trees/syntax/src/stmt.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use lexer::Span; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SyntaxNode` [INFO] [stdout] --> parser/trees/syntax/src/stmts.rs:1:43 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{SNode, Stmt, SyntaxConstruct, SyntaxNode}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer::Span` [INFO] [stdout] --> parser/trees/syntax/src/stmts.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use lexer::Span; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> parser/trees/syntax/src/arguments.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | / pub fn new( [INFO] [stdout] 20 | | args: Vec>, [INFO] [stdout] 21 | | pos_only_args: Vec>, [INFO] [stdout] 22 | | var_arg: Option>, [INFO] [stdout] ... | [INFO] [stdout] 27 | | span: Span, [INFO] [stdout] 28 | | ) -> SNode { [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking serde_json v1.0.39 [INFO] [stderr] Checking rand_xoshiro v0.1.0 [INFO] [stderr] Checking criterion-plot v0.3.1 [INFO] [stderr] Checking crossbeam-epoch v0.3.1 [INFO] [stderr] Checking quote v0.6.12 [INFO] [stderr] Checking crossbeam-deque v0.2.0 [INFO] [stderr] Checking num_cpus v1.10.0 [INFO] [stderr] Checking atty v0.2.11 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking csv-core v0.1.5 [INFO] [stderr] Checking tinytemplate v1.0.1 [INFO] [stderr] Checking csv v1.0.7 [INFO] [stderr] Checking metagrammar v0.1.0 (/opt/rustwide/workdir/parser/metagrammar) [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:71:24 [INFO] [stdout] | [INFO] [stdout] 71 | Some(a) => Ok(a.push(Transition(t, b))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 71 ~ Some(a) => { [INFO] [stdout] 72 + let _: () = a.push(Transition(t, b)); [INFO] [stdout] 73 + Ok(()) [INFO] [stdout] 74 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `into_*` usually take `self` by value [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:86:21 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn into_dfa(&self) -> Dfa { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | write!(f, "digraph nfa {{\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 187 - write!(f, "digraph nfa {{\n")?; [INFO] [stdout] 187 + writeln!(f, "digraph nfa {{")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 188 - write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] 188 + writeln!(f, "\tnode [shape = doublecircle]; {};", final_states)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 189 - write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] 189 + writeln!(f, "\tnode [shape = circle];")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, n, t)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 194 - write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, n, t)?; [INFO] [stdout] 194 + writeln!(f, "\t{} -> {} [ label = \"{}\" ];", i, n, t)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | write!(f, "}}\n") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 197 - write!(f, "}}\n") [INFO] [stdout] 197 + writeln!(f, "}}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:317:9 [INFO] [stdout] | [INFO] [stdout] 317 | write!(f, "digraph dfa {{\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 317 - write!(f, "digraph dfa {{\n")?; [INFO] [stdout] 317 + writeln!(f, "digraph dfa {{")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:318:9 [INFO] [stdout] | [INFO] [stdout] 318 | write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 318 - write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] 318 + writeln!(f, "\tnode [shape = doublecircle]; {};", final_states)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 319 - write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] 319 + writeln!(f, "\tnode [shape = circle];")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:322:17 [INFO] [stdout] | [INFO] [stdout] 322 | write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, next, t)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 322 - write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, next, t)?; [INFO] [stdout] 322 + writeln!(f, "\t{} -> {} [ label = \"{}\" ];", i, next, t)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:325:9 [INFO] [stdout] | [INFO] [stdout] 325 | write!(f, "}}\n") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 325 - write!(f, "}}\n") [INFO] [stdout] 325 + writeln!(f, "}}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> parser/metagrammar/src/lib.rs:131:36 [INFO] [stdout] | [INFO] [stdout] 131 | let dfa = dfas.get(&v).expect(&format!("no dfa for {}", v)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| panic!("no dfa for {}", v))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:131:32 [INFO] [stdout] | [INFO] [stdout] 131 | let dfa = dfas.get(&v).expect(&format!("no dfa for {}", v)); [INFO] [stdout] | ^^ help: change this to: `v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> parser/metagrammar/src/lib.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | / first_transitions [INFO] [stdout] 135 | | .iter() [INFO] [stdout] 136 | | .flat_map(|(e, _)| build_first_set(e, dfas)) [INFO] [stdout] | |____________________________________________________________^ help: try: `first_transitions.keys().flat_map(|e| build_first_set(e, dfas))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> parser/metagrammar/src/lib.rs:158:16 [INFO] [stdout] | [INFO] [stdout] 158 | fn unroll_dfas<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 159 | dfas: &'a HashMap>, [INFO] [stdout] | ^^ [INFO] [stdout] 160 | ) -> Vec<(&'a Ident, &'a Dfa, &'a Edge, usize, usize)> { [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] 158 ~ fn unroll_dfas( [INFO] [stdout] 159 ~ dfas: &HashMap>, [INFO] [stdout] 160 ~ ) -> Vec<(&Ident, &Dfa, &Edge, usize, usize)> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> parser/metagrammar/src/lib.rs:210:52 [INFO] [stdout] | [INFO] [stdout] 210 | let first_sets: HashMap<&Ident, Vec> = dfas [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 211 | | .iter() [INFO] [stdout] 212 | | .map(|(nt, _)| { [INFO] [stdout] ... | [INFO] [stdout] 217 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 210 ~ let first_sets: HashMap<&Ident, Vec> = dfas.keys().map(|nt| { [INFO] [stdout] 211 + ( [INFO] [stdout] 212 + nt, [INFO] [stdout] 213 + build_first_set(&Edge::NonTerminal(Ident::clone(nt)), &dfas), [INFO] [stdout] 214 + ) [INFO] [stdout] 215 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> parser/metagrammar/src/lib.rs:223:24 [INFO] [stdout] | [INFO] [stdout] 223 | let nt_enums = dfas.iter().map(|(name, _)| { [INFO] [stdout] | ________________________^ [INFO] [stdout] 224 | | quote! { [INFO] [stdout] 225 | | #name [INFO] [stdout] 226 | | } [INFO] [stdout] 227 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 223 ~ let nt_enums = dfas.keys().map(|name| { [INFO] [stdout] 224 + quote! { [INFO] [stdout] 225 + #name [INFO] [stdout] 226 + } [INFO] [stdout] 227 ~ }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:258:60 [INFO] [stdout] | [INFO] [stdout] 258 | let accept = dfa.final_states.contains(&target); [INFO] [stdout] | ^^^^^^^ help: change this to: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> parser/metagrammar/src/lib.rs:274:26 [INFO] [stdout] | [INFO] [stdout] 274 | .expect(&format!("missing first set for {}", v)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| panic!("missing first set for {}", v))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:275:60 [INFO] [stdout] | [INFO] [stdout] 275 | let accept = dfa.final_states.contains(&target); [INFO] [stdout] | ^^^^^^^ help: change this to: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:276:64 [INFO] [stdout] | [INFO] [stdout] 276 | let first = first.iter().map(|x| map_token(&x)); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:71:24 [INFO] [stdout] | [INFO] [stdout] 71 | Some(a) => Ok(a.push(Transition(t, b))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 71 ~ Some(a) => { [INFO] [stdout] 72 + let _: () = a.push(Transition(t, b)); [INFO] [stdout] 73 + Ok(()) [INFO] [stdout] 74 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `into_*` usually take `self` by value [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:86:21 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn into_dfa(&self) -> Dfa { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | write!(f, "digraph nfa {{\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 187 - write!(f, "digraph nfa {{\n")?; [INFO] [stdout] 187 + writeln!(f, "digraph nfa {{")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 188 - write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] 188 + writeln!(f, "\tnode [shape = doublecircle]; {};", final_states)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 189 - write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] 189 + writeln!(f, "\tnode [shape = circle];")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, n, t)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 194 - write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, n, t)?; [INFO] [stdout] 194 + writeln!(f, "\t{} -> {} [ label = \"{}\" ];", i, n, t)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | write!(f, "}}\n") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 197 - write!(f, "}}\n") [INFO] [stdout] 197 + writeln!(f, "}}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:317:9 [INFO] [stdout] | [INFO] [stdout] 317 | write!(f, "digraph dfa {{\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 317 - write!(f, "digraph dfa {{\n")?; [INFO] [stdout] 317 + writeln!(f, "digraph dfa {{")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:318:9 [INFO] [stdout] | [INFO] [stdout] 318 | write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 318 - write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] 318 + writeln!(f, "\tnode [shape = doublecircle]; {};", final_states)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 319 - write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] 319 + writeln!(f, "\tnode [shape = circle];")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:322:17 [INFO] [stdout] | [INFO] [stdout] 322 | write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, next, t)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 322 - write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, next, t)?; [INFO] [stdout] 322 + writeln!(f, "\t{} -> {} [ label = \"{}\" ];", i, next, t)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:325:9 [INFO] [stdout] | [INFO] [stdout] 325 | write!(f, "}}\n") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 325 - write!(f, "}}\n") [INFO] [stdout] 325 + writeln!(f, "}}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> parser/metagrammar/src/lib.rs:131:36 [INFO] [stdout] | [INFO] [stdout] 131 | let dfa = dfas.get(&v).expect(&format!("no dfa for {}", v)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| panic!("no dfa for {}", v))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:131:32 [INFO] [stdout] | [INFO] [stdout] 131 | let dfa = dfas.get(&v).expect(&format!("no dfa for {}", v)); [INFO] [stdout] | ^^ help: change this to: `v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> parser/metagrammar/src/lib.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | / first_transitions [INFO] [stdout] 135 | | .iter() [INFO] [stdout] 136 | | .flat_map(|(e, _)| build_first_set(e, dfas)) [INFO] [stdout] | |____________________________________________________________^ help: try: `first_transitions.keys().flat_map(|e| build_first_set(e, dfas))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> parser/metagrammar/src/lib.rs:158:16 [INFO] [stdout] | [INFO] [stdout] 158 | fn unroll_dfas<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 159 | dfas: &'a HashMap>, [INFO] [stdout] | ^^ [INFO] [stdout] 160 | ) -> Vec<(&'a Ident, &'a Dfa, &'a Edge, usize, usize)> { [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] 158 ~ fn unroll_dfas( [INFO] [stdout] 159 ~ dfas: &HashMap>, [INFO] [stdout] 160 ~ ) -> Vec<(&Ident, &Dfa, &Edge, usize, usize)> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> parser/metagrammar/src/lib.rs:210:52 [INFO] [stdout] | [INFO] [stdout] 210 | let first_sets: HashMap<&Ident, Vec> = dfas [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 211 | | .iter() [INFO] [stdout] 212 | | .map(|(nt, _)| { [INFO] [stdout] ... | [INFO] [stdout] 217 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 210 ~ let first_sets: HashMap<&Ident, Vec> = dfas.keys().map(|nt| { [INFO] [stdout] 211 + ( [INFO] [stdout] 212 + nt, [INFO] [stdout] 213 + build_first_set(&Edge::NonTerminal(Ident::clone(nt)), &dfas), [INFO] [stdout] 214 + ) [INFO] [stdout] 215 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> parser/metagrammar/src/lib.rs:223:24 [INFO] [stdout] | [INFO] [stdout] 223 | let nt_enums = dfas.iter().map(|(name, _)| { [INFO] [stdout] | ________________________^ [INFO] [stdout] 224 | | quote! { [INFO] [stdout] 225 | | #name [INFO] [stdout] 226 | | } [INFO] [stdout] 227 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 223 ~ let nt_enums = dfas.keys().map(|name| { [INFO] [stdout] 224 + quote! { [INFO] [stdout] 225 + #name [INFO] [stdout] 226 + } [INFO] [stdout] 227 ~ }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:258:60 [INFO] [stdout] | [INFO] [stdout] 258 | let accept = dfa.final_states.contains(&target); [INFO] [stdout] | ^^^^^^^ help: change this to: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> parser/metagrammar/src/lib.rs:274:26 [INFO] [stdout] | [INFO] [stdout] 274 | .expect(&format!("missing first set for {}", v)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| panic!("missing first set for {}", v))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:275:60 [INFO] [stdout] | [INFO] [stdout] 275 | let accept = dfa.final_states.contains(&target); [INFO] [stdout] | ^^^^^^^ help: change this to: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:276:64 [INFO] [stdout] | [INFO] [stdout] 276 | let first = first.iter().map(|x| map_token(&x)); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling serde_derive v1.0.90 [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:71:24 [INFO] [stdout] | [INFO] [stdout] 71 | Some(a) => Ok(a.push(Transition(t, b))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 71 ~ Some(a) => { [INFO] [stdout] 72 + let _: () = a.push(Transition(t, b)); [INFO] [stdout] 73 + Ok(()) [INFO] [stdout] 74 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `into_*` usually take `self` by value [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:86:21 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn into_dfa(&self) -> Dfa { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | write!(f, "digraph nfa {{\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 187 - write!(f, "digraph nfa {{\n")?; [INFO] [stdout] 187 + writeln!(f, "digraph nfa {{")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 188 - write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] 188 + writeln!(f, "\tnode [shape = doublecircle]; {};", final_states)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 189 - write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] 189 + writeln!(f, "\tnode [shape = circle];")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, n, t)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 194 - write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, n, t)?; [INFO] [stdout] 194 + writeln!(f, "\t{} -> {} [ label = \"{}\" ];", i, n, t)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | write!(f, "}}\n") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 197 - write!(f, "}}\n") [INFO] [stdout] 197 + writeln!(f, "}}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:317:9 [INFO] [stdout] | [INFO] [stdout] 317 | write!(f, "digraph dfa {{\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 317 - write!(f, "digraph dfa {{\n")?; [INFO] [stdout] 317 + writeln!(f, "digraph dfa {{")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:318:9 [INFO] [stdout] | [INFO] [stdout] 318 | write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 318 - write!(f, "\tnode [shape = doublecircle]; {};\n", final_states)?; [INFO] [stdout] 318 + writeln!(f, "\tnode [shape = doublecircle]; {};", final_states)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 319 - write!(f, "\tnode [shape = circle];\n")?; [INFO] [stdout] 319 + writeln!(f, "\tnode [shape = circle];")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:322:17 [INFO] [stdout] | [INFO] [stdout] 322 | write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, next, t)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 322 - write!(f, "\t{} -> {} [ label = \"{}\" ];\n", i, next, t)?; [INFO] [stdout] 322 + writeln!(f, "\t{} -> {} [ label = \"{}\" ];", i, next, t)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> parser/metagrammar/src/nfa.rs:325:9 [INFO] [stdout] | [INFO] [stdout] 325 | write!(f, "}}\n") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 325 - write!(f, "}}\n") [INFO] [stdout] 325 + writeln!(f, "}}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> parser/metagrammar/src/lib.rs:131:36 [INFO] [stdout] | [INFO] [stdout] 131 | let dfa = dfas.get(&v).expect(&format!("no dfa for {}", v)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| panic!("no dfa for {}", v))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:131:32 [INFO] [stdout] | [INFO] [stdout] 131 | let dfa = dfas.get(&v).expect(&format!("no dfa for {}", v)); [INFO] [stdout] | ^^ help: change this to: `v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> parser/metagrammar/src/lib.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | / first_transitions [INFO] [stdout] 135 | | .iter() [INFO] [stdout] 136 | | .flat_map(|(e, _)| build_first_set(e, dfas)) [INFO] [stdout] | |____________________________________________________________^ help: try: `first_transitions.keys().flat_map(|e| build_first_set(e, dfas))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> parser/metagrammar/src/lib.rs:158:16 [INFO] [stdout] | [INFO] [stdout] 158 | fn unroll_dfas<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 159 | dfas: &'a HashMap>, [INFO] [stdout] | ^^ [INFO] [stdout] 160 | ) -> Vec<(&'a Ident, &'a Dfa, &'a Edge, usize, usize)> { [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] 158 ~ fn unroll_dfas( [INFO] [stdout] 159 ~ dfas: &HashMap>, [INFO] [stdout] 160 ~ ) -> Vec<(&Ident, &Dfa, &Edge, usize, usize)> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> parser/metagrammar/src/lib.rs:210:52 [INFO] [stdout] | [INFO] [stdout] 210 | let first_sets: HashMap<&Ident, Vec> = dfas [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 211 | | .iter() [INFO] [stdout] 212 | | .map(|(nt, _)| { [INFO] [stdout] ... | [INFO] [stdout] 217 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 210 ~ let first_sets: HashMap<&Ident, Vec> = dfas.keys().map(|nt| { [INFO] [stdout] 211 + ( [INFO] [stdout] 212 + nt, [INFO] [stdout] 213 + build_first_set(&Edge::NonTerminal(Ident::clone(nt)), &dfas), [INFO] [stdout] 214 + ) [INFO] [stdout] 215 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> parser/metagrammar/src/lib.rs:223:24 [INFO] [stdout] | [INFO] [stdout] 223 | let nt_enums = dfas.iter().map(|(name, _)| { [INFO] [stdout] | ________________________^ [INFO] [stdout] 224 | | quote! { [INFO] [stdout] 225 | | #name [INFO] [stdout] 226 | | } [INFO] [stdout] 227 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 223 ~ let nt_enums = dfas.keys().map(|name| { [INFO] [stdout] 224 + quote! { [INFO] [stdout] 225 + #name [INFO] [stdout] 226 + } [INFO] [stdout] 227 ~ }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:258:60 [INFO] [stdout] | [INFO] [stdout] 258 | let accept = dfa.final_states.contains(&target); [INFO] [stdout] | ^^^^^^^ help: change this to: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> parser/metagrammar/src/lib.rs:274:26 [INFO] [stdout] | [INFO] [stdout] 274 | .expect(&format!("missing first set for {}", v)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| panic!("missing first set for {}", v))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:275:60 [INFO] [stdout] | [INFO] [stdout] 275 | let accept = dfa.final_states.contains(&target); [INFO] [stdout] | ^^^^^^^ help: change this to: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> parser/metagrammar/src/lib.rs:276:64 [INFO] [stdout] | [INFO] [stdout] 276 | let first = first.iter().map(|x| map_token(&x)); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking grammar v0.1.0 (/opt/rustwide/workdir/parser/grammar) [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> parser/grammar/src/lib.rs:191:13 [INFO] [stdout] | [INFO] [stdout] 191 | assert_eq!(accept, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 191 - assert_eq!(accept, true); [INFO] [stdout] 191 + assert!(accept); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> parser/grammar/src/lib.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | assert_eq!(accept, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 200 - assert_eq!(accept, true); [INFO] [stdout] 200 + assert!(accept); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> parser/grammar/src/lib.rs:209:13 [INFO] [stdout] | [INFO] [stdout] 209 | assert_eq!(accept, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 209 - assert_eq!(accept, false); [INFO] [stdout] 209 + assert!(!accept); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking parse v0.1.0 (/opt/rustwide/workdir/parser/trees/parse) [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:47:31 [INFO] [stdout] | [INFO] [stdout] 47 | tok!("...") => Ok({ self.inner.child = AtomChild::Ellipsis }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 47 - tok!("...") => Ok({ self.inner.child = AtomChild::Ellipsis }), [INFO] [stdout] 47 + tok!("...") => Ok(self.inner.child = AtomChild::Ellipsis ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:48:32 [INFO] [stdout] | [INFO] [stdout] 48 | tok!("None") => Ok({ self.inner.child = AtomChild::None }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 48 - tok!("None") => Ok({ self.inner.child = AtomChild::None }), [INFO] [stdout] 48 + tok!("None") => Ok(self.inner.child = AtomChild::None ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:49:32 [INFO] [stdout] | [INFO] [stdout] 49 | tok!("True") => Ok({ self.inner.child = AtomChild::True }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 49 - tok!("True") => Ok({ self.inner.child = AtomChild::True }), [INFO] [stdout] 49 + tok!("True") => Ok(self.inner.child = AtomChild::True ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:50:33 [INFO] [stdout] | [INFO] [stdout] 50 | tok!("False") => Ok({ self.inner.child = AtomChild::False }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 50 - tok!("False") => Ok({ self.inner.child = AtomChild::False }), [INFO] [stdout] 50 + tok!("False") => Ok(self.inner.child = AtomChild::False ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:52:20 [INFO] [stdout] | [INFO] [stdout] 52 | Ok({ self.inner.child = AtomChild::Name(String::clone(v)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 52 - Ok({ self.inner.child = AtomChild::Name(String::clone(v)) }) [INFO] [stdout] 52 + Ok(self.inner.child = AtomChild::Name(String::clone(v)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:58:24 [INFO] [stdout] | [INFO] [stdout] 58 | Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 58 - Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] 58 + Ok(self.inner.child = AtomChild::Strings(strings) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:61:24 [INFO] [stdout] | [INFO] [stdout] 61 | Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 61 - Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] 61 + Ok(self.inner.child = AtomChild::Strings(strings) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/lambda_def.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use lexer::tokens::{NumberBase, StringFlag, 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: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/lambda_def.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/not_test.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::tokens::{NumberBase, StringFlag, Token}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/not_test.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/test.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::tokens::{NumberBase, StringFlag, Token}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/test.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/tfpdef.rs:28:20 [INFO] [stdout] | [INFO] [stdout] 28 | Ok({ self.inner.annotation = Some(Rc::clone(c)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 28 - Ok({ self.inner.annotation = Some(Rc::clone(c)) }) [INFO] [stdout] 28 + Ok(self.inner.annotation = Some(Rc::clone(c)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/tfpdef.rs:36:35 [INFO] [stdout] | [INFO] [stdout] 36 | Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 36 - Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] 36 + Token::Name(..) => Ok(self.inner.child = Some(Token::clone(t)) ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Expr` [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | use syntax::{Arguments, Expr, SNode}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:84:20 [INFO] [stdout] | [INFO] [stdout] 84 | Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 84 - Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] 84 + Ok(self.inner.var_args = Some(Rc::clone(n)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 92 - Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] 92 + Ok(self.inner.kw_args = Some(Rc::clone(n)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 108 | tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 108 - tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] 108 + tok!("*") => Ok(self.inner.state = State::ParseVarArgs ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:109:30 [INFO] [stdout] | [INFO] [stdout] 109 | tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 109 - tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] 109 + tok!("**") => Ok(self.inner.state = State::ParseKwArgs ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Expr` [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | use syntax::{Arguments, Expr, SNode}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:84:20 [INFO] [stdout] | [INFO] [stdout] 84 | Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 84 - Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] 84 + Ok(self.inner.var_args = Some(Rc::clone(n)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 92 - Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] 92 + Ok(self.inner.kw_args = Some(Rc::clone(n)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 108 | tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 108 - tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] 108 + tok!("*") => Ok(self.inner.state = State::ParseVarArgs ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:109:30 [INFO] [stdout] | [INFO] [stdout] 109 | tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 109 - tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] 109 + tok!("**") => Ok(self.inner.state = State::ParseKwArgs ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/vfpdef.rs:26:35 [INFO] [stdout] | [INFO] [stdout] 26 | Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 26 - Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] 26 + Token::Name(..) => Ok(self.inner.child = Some(Token::clone(t)) ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/yield_arg.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use lexer::tokens::{NumberBase, StringFlag, Token}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/yield_arg.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/yield_expr.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use lexer::tokens::{NumberBase, StringFlag, Token}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/yield_expr.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:47:31 [INFO] [stdout] | [INFO] [stdout] 47 | tok!("...") => Ok({ self.inner.child = AtomChild::Ellipsis }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 47 - tok!("...") => Ok({ self.inner.child = AtomChild::Ellipsis }), [INFO] [stdout] 47 + tok!("...") => Ok(self.inner.child = AtomChild::Ellipsis ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:48:32 [INFO] [stdout] | [INFO] [stdout] 48 | tok!("None") => Ok({ self.inner.child = AtomChild::None }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 48 - tok!("None") => Ok({ self.inner.child = AtomChild::None }), [INFO] [stdout] 48 + tok!("None") => Ok(self.inner.child = AtomChild::None ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:49:32 [INFO] [stdout] | [INFO] [stdout] 49 | tok!("True") => Ok({ self.inner.child = AtomChild::True }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 49 - tok!("True") => Ok({ self.inner.child = AtomChild::True }), [INFO] [stdout] 49 + tok!("True") => Ok(self.inner.child = AtomChild::True ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:50:33 [INFO] [stdout] | [INFO] [stdout] 50 | tok!("False") => Ok({ self.inner.child = AtomChild::False }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 50 - tok!("False") => Ok({ self.inner.child = AtomChild::False }), [INFO] [stdout] 50 + tok!("False") => Ok(self.inner.child = AtomChild::False ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:52:20 [INFO] [stdout] | [INFO] [stdout] 52 | Ok({ self.inner.child = AtomChild::Name(String::clone(v)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 52 - Ok({ self.inner.child = AtomChild::Name(String::clone(v)) }) [INFO] [stdout] 52 + Ok(self.inner.child = AtomChild::Name(String::clone(v)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:58:24 [INFO] [stdout] | [INFO] [stdout] 58 | Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 58 - Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] 58 + Ok(self.inner.child = AtomChild::Strings(strings) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/atom.rs:61:24 [INFO] [stdout] | [INFO] [stdout] 61 | Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 61 - Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] 61 + Ok(self.inner.child = AtomChild::Strings(strings) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/lambda_def.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use lexer::tokens::{NumberBase, StringFlag, 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: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/lambda_def.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/not_test.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::tokens::{NumberBase, StringFlag, Token}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> parser/trees/parse/src/lib.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | mod not_test; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/not_test.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> parser/trees/parse/src/lib.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | mod not_test; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/test.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::tokens::{NumberBase, StringFlag, Token}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> parser/trees/parse/src/lib.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | mod test; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/test.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> parser/trees/parse/src/lib.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | mod test; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/tfpdef.rs:28:20 [INFO] [stdout] | [INFO] [stdout] 28 | Ok({ self.inner.annotation = Some(Rc::clone(c)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 28 - Ok({ self.inner.annotation = Some(Rc::clone(c)) }) [INFO] [stdout] 28 + Ok(self.inner.annotation = Some(Rc::clone(c)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/tfpdef.rs:36:35 [INFO] [stdout] | [INFO] [stdout] 36 | Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 36 - Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] 36 + Token::Name(..) => Ok(self.inner.child = Some(Token::clone(t)) ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Expr` [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | use syntax::{Arguments, Expr, SNode}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:84:20 [INFO] [stdout] | [INFO] [stdout] 84 | Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 84 - Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] 84 + Ok(self.inner.var_args = Some(Rc::clone(n)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 92 - Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] 92 + Ok(self.inner.kw_args = Some(Rc::clone(n)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 108 | tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 108 - tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] 108 + tok!("*") => Ok(self.inner.state = State::ParseVarArgs ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:109:30 [INFO] [stdout] | [INFO] [stdout] 109 | tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 109 - tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] 109 + tok!("**") => Ok(self.inner.state = State::ParseKwArgs ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Expr` [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | use syntax::{Arguments, Expr, SNode}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:84:20 [INFO] [stdout] | [INFO] [stdout] 84 | Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 84 - Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] 84 + Ok(self.inner.var_args = Some(Rc::clone(n)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 92 - Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] 92 + Ok(self.inner.kw_args = Some(Rc::clone(n)) ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 108 | tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 108 - tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] 108 + tok!("*") => Ok(self.inner.state = State::ParseVarArgs ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:109:30 [INFO] [stdout] | [INFO] [stdout] 109 | tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 109 - tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] 109 + tok!("**") => Ok(self.inner.state = State::ParseKwArgs ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around function argument [INFO] [stdout] --> parser/trees/parse/src/vfpdef.rs:26:35 [INFO] [stdout] | [INFO] [stdout] 26 | Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 26 - Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] 26 + Token::Name(..) => Ok(self.inner.child = Some(Token::clone(t)) ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/yield_arg.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use lexer::tokens::{NumberBase, StringFlag, Token}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/yield_arg.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NumberBase` and `StringFlag` [INFO] [stdout] --> parser/trees/parse/src/yield_expr.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use lexer::tokens::{NumberBase, StringFlag, Token}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tok` [INFO] [stdout] --> parser/trees/parse/src/yield_expr.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{tok, Span}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/atom.rs:35:28 [INFO] [stdout] | [INFO] [stdout] 35 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/compound_stmt.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/compound_stmt.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/eval_input.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/eval_input.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/expr.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/expr.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/lambda_def.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/lambda_def.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/simple_stmt.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/simple_stmt.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/stmt.rs:44:29 [INFO] [stdout] | [INFO] [stdout] 44 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/term.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/term.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/test.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/test.rs:29:29 [INFO] [stdout] | [INFO] [stdout] 29 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/atom.rs:35:28 [INFO] [stdout] | [INFO] [stdout] 35 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/compound_stmt.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/compound_stmt.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/eval_input.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/eval_input.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/expr.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/expr.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/lambda_def.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/lambda_def.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/yield_arg.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/yield_arg.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/yield_expr.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/yield_expr.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/simple_stmt.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/atom.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | Name(String), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [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] 10 - Name(String), [INFO] [stdout] 10 + Name(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/simple_stmt.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> parser/trees/parse/src/atom.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | Number(String, NumberBase), [INFO] [stdout] | ------ ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 11 - Number(String, NumberBase), [INFO] [stdout] 11 + Number((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `YieldExpr`, `TestListComp`, and `DictOrSetMaker` are never constructed [INFO] [stdout] --> parser/trees/parse/src/atom.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 9 | enum AtomChild { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 13 | YieldExpr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 14 | TestListComp, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | DictOrSetMaker, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `children` is never read [INFO] [stdout] --> parser/trees/parse/src/expr.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Expr { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 10 | children: Vec>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/single_input.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 11 | SimpleStmt(PNode), [INFO] [stdout] | ---------- ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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 - SimpleStmt(PNode), [INFO] [stdout] 11 + SimpleStmt(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/single_input.rs:12:18 [INFO] [stdout] | [INFO] [stdout] 12 | CompoundStmt(PNode), [INFO] [stdout] | ------------ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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 - CompoundStmt(PNode), [INFO] [stdout] 12 + CompoundStmt(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/stmt.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | Simple(PNode), [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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 - Simple(PNode), [INFO] [stdout] 11 + Simple(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/stmt.rs:12:14 [INFO] [stdout] | [INFO] [stdout] 12 | Compound(PNode), [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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 - Compound(PNode), [INFO] [stdout] 12 + Compound(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TestChild` is never used [INFO] [stdout] --> parser/trees/parse/src/test.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | enum TestChild { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/stmt.rs:44:29 [INFO] [stdout] | [INFO] [stdout] 44 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/term.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/term.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/test.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/test.rs:29:29 [INFO] [stdout] | [INFO] [stdout] 29 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> parser/trees/parse/src/node.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | fn new(span: Span) -> PNode

; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `into_*` usually take `self` by value [INFO] [stdout] --> parser/trees/parse/src/node.rs:145:20 [INFO] [stdout] | [INFO] [stdout] 145 | fn into_syntax(&self) -> Result; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/and_test.rs:23:38 [INFO] [stdout] | [INFO] [stdout] 23 | NodeProxy::NotTest(n) => Ok(self.inner.children.push(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 23 ~ NodeProxy::NotTest(n) => { [INFO] [stdout] 24 + self.inner.children.push(Rc::clone(n)); [INFO] [stdout] 25 + Ok(()) [INFO] [stdout] 26 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/arith_expr.rs:27:38 [INFO] [stdout] | [INFO] [stdout] 27 | NodeProxy::Term(term) => Ok(self.inner.terms.push(Rc::clone(term))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 27 ~ NodeProxy::Term(term) => { [INFO] [stdout] 28 + self.inner.terms.push(Rc::clone(term)); [INFO] [stdout] 29 + Ok(()) [INFO] [stdout] 30 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/arith_expr.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | Ok(self.inner.ops.push(Token::clone(t))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 33 ~ self.inner.ops.push(Token::clone(t)); [INFO] [stdout] 34 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:47:28 [INFO] [stdout] | [INFO] [stdout] 47 | tok!("...") => Ok({ self.inner.child = AtomChild::Ellipsis }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 47 ~ tok!("...") => { [INFO] [stdout] 48 + let _: () = { self.inner.child = AtomChild::Ellipsis }; [INFO] [stdout] 49 + Ok(()) [INFO] [stdout] 50 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:48:29 [INFO] [stdout] | [INFO] [stdout] 48 | tok!("None") => Ok({ self.inner.child = AtomChild::None }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 48 ~ tok!("None") => { [INFO] [stdout] 49 + let _: () = { self.inner.child = AtomChild::None }; [INFO] [stdout] 50 + Ok(()) [INFO] [stdout] 51 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:49:29 [INFO] [stdout] | [INFO] [stdout] 49 | tok!("True") => Ok({ self.inner.child = AtomChild::True }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 49 ~ tok!("True") => { [INFO] [stdout] 50 + let _: () = { self.inner.child = AtomChild::True }; [INFO] [stdout] 51 + Ok(()) [INFO] [stdout] 52 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:50:30 [INFO] [stdout] | [INFO] [stdout] 50 | tok!("False") => Ok({ self.inner.child = AtomChild::False }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 50 ~ tok!("False") => { [INFO] [stdout] 51 + let _: () = { self.inner.child = AtomChild::False }; [INFO] [stdout] 52 + Ok(()) [INFO] [stdout] 53 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 52 | Ok({ self.inner.child = AtomChild::Name(String::clone(v)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 52 ~ let _: () = { self.inner.child = AtomChild::Name(String::clone(v)) }; [INFO] [stdout] 53 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:58:21 [INFO] [stdout] | [INFO] [stdout] 58 | Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 58 ~ let _: () = { self.inner.child = AtomChild::Strings(strings) }; [INFO] [stdout] 59 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 61 ~ let _: () = { self.inner.child = AtomChild::Strings(strings) }; [INFO] [stdout] 62 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:64:36 [INFO] [stdout] | [INFO] [stdout] 64 | Token::Number(v, b) => Ok({ [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 65 | | self.inner.child = AtomChild::Number(String::clone(v), *b) [INFO] [stdout] 66 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 64 ~ Token::Number(v, b) => { [INFO] [stdout] 65 + let _: () = { [INFO] [stdout] 66 + self.inner.child = AtomChild::Number(String::clone(v), *b) [INFO] [stdout] 67 + }; [INFO] [stdout] 68 + Ok(()) [INFO] [stdout] 69 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/yield_arg.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/yield_arg.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> parser/trees/parse/src/yield_expr.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | fn add_node(&mut self, n: &NodeProxy) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/trees/parse/src/yield_expr.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | fn add_token(&mut self, t: &Token) -> Result<(), &'static str> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/atom.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | Name(String), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [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] 10 - Name(String), [INFO] [stdout] 10 + Name(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> parser/trees/parse/src/atom.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | Number(String, NumberBase), [INFO] [stdout] | ------ ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 11 - Number(String, NumberBase), [INFO] [stdout] 11 + Number((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `YieldExpr`, `TestListComp`, and `DictOrSetMaker` are never constructed [INFO] [stdout] --> parser/trees/parse/src/atom.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 9 | enum AtomChild { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 13 | YieldExpr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 14 | TestListComp, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | DictOrSetMaker, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/comparison.rs:46:17 [INFO] [stdout] | [INFO] [stdout] 46 | Ok(self.add_comp_op(Rc::clone(comp_op))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 46 ~ self.add_comp_op(Rc::clone(comp_op)); [INFO] [stdout] 47 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `children` is never read [INFO] [stdout] --> parser/trees/parse/src/expr.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Expr { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 10 | children: Vec>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/single_input.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 11 | SimpleStmt(PNode), [INFO] [stdout] | ---------- ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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 - SimpleStmt(PNode), [INFO] [stdout] 11 + SimpleStmt(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/single_input.rs:12:18 [INFO] [stdout] | [INFO] [stdout] 12 | CompoundStmt(PNode), [INFO] [stdout] | ------------ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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 - CompoundStmt(PNode), [INFO] [stdout] 12 + CompoundStmt(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/stmt.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | Simple(PNode), [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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 - Simple(PNode), [INFO] [stdout] 11 + Simple(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> parser/trees/parse/src/stmt.rs:12:14 [INFO] [stdout] | [INFO] [stdout] 12 | Compound(PNode), [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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 - Compound(PNode), [INFO] [stdout] 12 + Compound(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TestChild` is never used [INFO] [stdout] --> parser/trees/parse/src/test.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | enum TestChild { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/comparison.rs:48:38 [INFO] [stdout] | [INFO] [stdout] 48 | NodeProxy::Expr(expr) => Ok(self.add_expr(Rc::clone(expr))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 48 ~ NodeProxy::Expr(expr) => { [INFO] [stdout] 49 + self.add_expr(Rc::clone(expr)); [INFO] [stdout] 50 + Ok(()) [INFO] [stdout] 51 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> parser/trees/parse/src/node.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | fn new(span: Span) -> PNode

; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `into_*` usually take `self` by value [INFO] [stdout] --> parser/trees/parse/src/node.rs:145:20 [INFO] [stdout] | [INFO] [stdout] 145 | fn into_syntax(&self) -> Result; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/and_test.rs:23:38 [INFO] [stdout] | [INFO] [stdout] 23 | NodeProxy::NotTest(n) => Ok(self.inner.children.push(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 23 ~ NodeProxy::NotTest(n) => { [INFO] [stdout] 24 + self.inner.children.push(Rc::clone(n)); [INFO] [stdout] 25 + Ok(()) [INFO] [stdout] 26 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/file_input.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | Ok(self.inner.children.push(Rc::clone(stmt))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 23 ~ self.inner.children.push(Rc::clone(stmt)); [INFO] [stdout] 24 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/arith_expr.rs:27:38 [INFO] [stdout] | [INFO] [stdout] 27 | NodeProxy::Term(term) => Ok(self.inner.terms.push(Rc::clone(term))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 27 ~ NodeProxy::Term(term) => { [INFO] [stdout] 28 + self.inner.terms.push(Rc::clone(term)); [INFO] [stdout] 29 + Ok(()) [INFO] [stdout] 30 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/arith_expr.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | Ok(self.inner.ops.push(Token::clone(t))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 33 ~ self.inner.ops.push(Token::clone(t)); [INFO] [stdout] 34 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/not_test.rs:39:38 [INFO] [stdout] | [INFO] [stdout] 39 | NodeProxy::NotTest(n) => Ok(self.add_not_test(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 39 ~ NodeProxy::NotTest(n) => { [INFO] [stdout] 40 + self.add_not_test(Rc::clone(n)); [INFO] [stdout] 41 + Ok(()) [INFO] [stdout] 42 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:47:28 [INFO] [stdout] | [INFO] [stdout] 47 | tok!("...") => Ok({ self.inner.child = AtomChild::Ellipsis }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 47 ~ tok!("...") => { [INFO] [stdout] 48 + let _: () = { self.inner.child = AtomChild::Ellipsis }; [INFO] [stdout] 49 + Ok(()) [INFO] [stdout] 50 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:48:29 [INFO] [stdout] | [INFO] [stdout] 48 | tok!("None") => Ok({ self.inner.child = AtomChild::None }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 48 ~ tok!("None") => { [INFO] [stdout] 49 + let _: () = { self.inner.child = AtomChild::None }; [INFO] [stdout] 50 + Ok(()) [INFO] [stdout] 51 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:49:29 [INFO] [stdout] | [INFO] [stdout] 49 | tok!("True") => Ok({ self.inner.child = AtomChild::True }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 49 ~ tok!("True") => { [INFO] [stdout] 50 + let _: () = { self.inner.child = AtomChild::True }; [INFO] [stdout] 51 + Ok(()) [INFO] [stdout] 52 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:50:30 [INFO] [stdout] | [INFO] [stdout] 50 | tok!("False") => Ok({ self.inner.child = AtomChild::False }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 50 ~ tok!("False") => { [INFO] [stdout] 51 + let _: () = { self.inner.child = AtomChild::False }; [INFO] [stdout] 52 + Ok(()) [INFO] [stdout] 53 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 52 | Ok({ self.inner.child = AtomChild::Name(String::clone(v)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 52 ~ let _: () = { self.inner.child = AtomChild::Name(String::clone(v)) }; [INFO] [stdout] 53 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/not_test.rs:40:41 [INFO] [stdout] | [INFO] [stdout] 40 | NodeProxy::Comparison(n) => Ok(self.add_comparison(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 40 ~ NodeProxy::Comparison(n) => { [INFO] [stdout] 41 + self.add_comparison(Rc::clone(n)); [INFO] [stdout] 42 + Ok(()) [INFO] [stdout] 43 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:58:21 [INFO] [stdout] | [INFO] [stdout] 58 | Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 58 ~ let _: () = { self.inner.child = AtomChild::Strings(strings) }; [INFO] [stdout] 59 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | Ok({ self.inner.child = AtomChild::Strings(strings) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 61 ~ let _: () = { self.inner.child = AtomChild::Strings(strings) }; [INFO] [stdout] 62 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/atom.rs:64:36 [INFO] [stdout] | [INFO] [stdout] 64 | Token::Number(v, b) => Ok({ [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 65 | | self.inner.child = AtomChild::Number(String::clone(v), *b) [INFO] [stdout] 66 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 64 ~ Token::Number(v, b) => { [INFO] [stdout] 65 + let _: () = { [INFO] [stdout] 66 + self.inner.child = AtomChild::Number(String::clone(v), *b) [INFO] [stdout] 67 + }; [INFO] [stdout] 68 + Ok(()) [INFO] [stdout] 69 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/or_test.rs:23:38 [INFO] [stdout] | [INFO] [stdout] 23 | NodeProxy::AndTest(n) => Ok(self.inner.children.push(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 23 ~ NodeProxy::AndTest(n) => { [INFO] [stdout] 24 + self.inner.children.push(Rc::clone(n)); [INFO] [stdout] 25 + Ok(()) [INFO] [stdout] 26 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/single_input.rs:36:41 [INFO] [stdout] | [INFO] [stdout] 36 | NodeProxy::SimpleStmt(n) => Ok(self.add_simple_stmt(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 36 ~ NodeProxy::SimpleStmt(n) => { [INFO] [stdout] 37 + self.add_simple_stmt(Rc::clone(n)); [INFO] [stdout] 38 + Ok(()) [INFO] [stdout] 39 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/single_input.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 38 | Ok(self.add_compound_stmt(Rc::clone(n))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 38 ~ self.add_compound_stmt(Rc::clone(n)); [INFO] [stdout] 39 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/comparison.rs:46:17 [INFO] [stdout] | [INFO] [stdout] 46 | Ok(self.add_comp_op(Rc::clone(comp_op))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 46 ~ self.add_comp_op(Rc::clone(comp_op)); [INFO] [stdout] 47 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/comparison.rs:48:38 [INFO] [stdout] | [INFO] [stdout] 48 | NodeProxy::Expr(expr) => Ok(self.add_expr(Rc::clone(expr))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 48 ~ NodeProxy::Expr(expr) => { [INFO] [stdout] 49 + self.add_expr(Rc::clone(expr)); [INFO] [stdout] 50 + Ok(()) [INFO] [stdout] 51 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/tfpdef.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | Ok({ self.inner.annotation = Some(Rc::clone(c)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 28 ~ let _: () = { self.inner.annotation = Some(Rc::clone(c)) }; [INFO] [stdout] 29 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/tfpdef.rs:36:32 [INFO] [stdout] | [INFO] [stdout] 36 | Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 36 ~ Token::Name(..) => { [INFO] [stdout] 37 + let _: () = { self.inner.child = Some(Token::clone(t)) }; [INFO] [stdout] 38 + Ok(()) [INFO] [stdout] 39 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/file_input.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | Ok(self.inner.children.push(Rc::clone(stmt))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 23 ~ self.inner.children.push(Rc::clone(stmt)); [INFO] [stdout] 24 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | if let Some(_) = self.inner.defaults.pop() { [INFO] [stdout] | -------^^^^^^^---------------------------- help: try: `if self.inner.defaults.pop().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:58:21 [INFO] [stdout] | [INFO] [stdout] 58 | Ok(self.inner.defaults.push(Some(Rc::clone(test)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 58 ~ self.inner.defaults.push(Some(Rc::clone(test))); [INFO] [stdout] 59 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:65:24 [INFO] [stdout] | [INFO] [stdout] 65 | if let Some(_) = self.inner.kw_defaults.pop() { [INFO] [stdout] | -------^^^^^^^------------------------------- help: try: `if self.inner.kw_defaults.pop().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | Ok(self.inner.kw_defaults.push(Some(Rc::clone(test)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 66 ~ self.inner.kw_defaults.push(Some(Rc::clone(test))); [INFO] [stdout] 67 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:78:36 [INFO] [stdout] | [INFO] [stdout] 78 | State::ParseKwOrPos => Ok({ [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 79 | | self.inner.args.push(Rc::clone(n)); [INFO] [stdout] 80 | | self.inner.defaults.push(None); [INFO] [stdout] 81 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 80 - self.inner.defaults.push(None); [INFO] [stdout] 80 + self.inner.defaults.push(None) [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 78 ~ State::ParseKwOrPos => { [INFO] [stdout] 79 + { [INFO] [stdout] 80 + self.inner.args.push(Rc::clone(n)); [INFO] [stdout] 81 + self.inner.defaults.push(None); [INFO] [stdout] 82 + }; [INFO] [stdout] 83 + Ok(()) [INFO] [stdout] 84 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/not_test.rs:39:38 [INFO] [stdout] | [INFO] [stdout] 39 | NodeProxy::NotTest(n) => Ok(self.add_not_test(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 39 ~ NodeProxy::NotTest(n) => { [INFO] [stdout] 40 + self.add_not_test(Rc::clone(n)); [INFO] [stdout] 41 + Ok(()) [INFO] [stdout] 42 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/not_test.rs:40:41 [INFO] [stdout] | [INFO] [stdout] 40 | NodeProxy::Comparison(n) => Ok(self.add_comparison(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 40 ~ NodeProxy::Comparison(n) => { [INFO] [stdout] 41 + self.add_comparison(Rc::clone(n)); [INFO] [stdout] 42 + Ok(()) [INFO] [stdout] 43 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 84 ~ let _: () = { self.inner.var_args = Some(Rc::clone(n)) }; [INFO] [stdout] 85 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:86:39 [INFO] [stdout] | [INFO] [stdout] 86 | State::ParseKwOnlyArgs => Ok({ [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 87 | | self.inner.kw_only_args.push(Rc::clone(n)); [INFO] [stdout] 88 | | self.inner.kw_defaults.push(None); [INFO] [stdout] 89 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 88 - self.inner.kw_defaults.push(None); [INFO] [stdout] 88 + self.inner.kw_defaults.push(None) [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 86 ~ State::ParseKwOnlyArgs => { [INFO] [stdout] 87 + { [INFO] [stdout] 88 + self.inner.kw_only_args.push(Rc::clone(n)); [INFO] [stdout] 89 + self.inner.kw_defaults.push(None); [INFO] [stdout] 90 + }; [INFO] [stdout] 91 + Ok(()) [INFO] [stdout] 92 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 92 ~ let _: () = { self.inner.kw_args = Some(Rc::clone(n)) }; [INFO] [stdout] 93 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:108:26 [INFO] [stdout] | [INFO] [stdout] 108 | tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 108 ~ tok!("*") => { [INFO] [stdout] 109 + let _: () = { self.inner.state = State::ParseVarArgs }; [INFO] [stdout] 110 + Ok(()) [INFO] [stdout] 111 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:109:27 [INFO] [stdout] | [INFO] [stdout] 109 | tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 109 ~ tok!("**") => { [INFO] [stdout] 110 + let _: () = { self.inner.state = State::ParseKwArgs }; [INFO] [stdout] 111 + Ok(()) [INFO] [stdout] 112 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/or_test.rs:23:38 [INFO] [stdout] | [INFO] [stdout] 23 | NodeProxy::AndTest(n) => Ok(self.inner.children.push(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 23 ~ NodeProxy::AndTest(n) => { [INFO] [stdout] 24 + self.inner.children.push(Rc::clone(n)); [INFO] [stdout] 25 + Ok(()) [INFO] [stdout] 26 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:110:26 [INFO] [stdout] | [INFO] [stdout] 110 | tok!("/") => Ok({ [INFO] [stdout] | __________________________^ [INFO] [stdout] 111 | | self.inner.pos_only_args = Vec::clone(&self.inner.args); [INFO] [stdout] 112 | | self.inner.args = vec![]; [INFO] [stdout] 113 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 112 - self.inner.args = vec![]; [INFO] [stdout] 112 + self.inner.args = vec![] [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 110 ~ tok!("/") => { [INFO] [stdout] 111 + { [INFO] [stdout] 112 + self.inner.pos_only_args = Vec::clone(&self.inner.args); [INFO] [stdout] 113 + self.inner.args = vec![]; [INFO] [stdout] 114 + }; [INFO] [stdout] 115 + Ok(()) [INFO] [stdout] 116 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:137:42 [INFO] [stdout] | [INFO] [stdout] 137 | .map(|x| x.into_syntax().map(|y| Some(y))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:149:42 [INFO] [stdout] | [INFO] [stdout] 149 | .map(|x| x.into_syntax().map(|y| Some(y))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:155:60 [INFO] [stdout] | [INFO] [stdout] 155 | .map(|x| x.clone().map(|y| y.into_syntax().map(|y| Some(y)))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:162:60 [INFO] [stdout] | [INFO] [stdout] 162 | .map(|x| x.clone().map(|y| y.into_syntax().map(|y| Some(y)))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | if let Some(_) = self.inner.defaults.pop() { [INFO] [stdout] | -------^^^^^^^---------------------------- help: try: `if self.inner.defaults.pop().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:58:21 [INFO] [stdout] | [INFO] [stdout] 58 | Ok(self.inner.defaults.push(Some(Rc::clone(test)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 58 ~ self.inner.defaults.push(Some(Rc::clone(test))); [INFO] [stdout] 59 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:65:24 [INFO] [stdout] | [INFO] [stdout] 65 | if let Some(_) = self.inner.kw_defaults.pop() { [INFO] [stdout] | -------^^^^^^^------------------------------- help: try: `if self.inner.kw_defaults.pop().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | Ok(self.inner.kw_defaults.push(Some(Rc::clone(test)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 66 ~ self.inner.kw_defaults.push(Some(Rc::clone(test))); [INFO] [stdout] 67 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:78:36 [INFO] [stdout] | [INFO] [stdout] 78 | State::ParseKwOrPos => Ok({ [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 79 | | self.inner.args.push(Rc::clone(n)); [INFO] [stdout] 80 | | self.inner.defaults.push(None); [INFO] [stdout] 81 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 80 - self.inner.defaults.push(None); [INFO] [stdout] 80 + self.inner.defaults.push(None) [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 78 ~ State::ParseKwOrPos => { [INFO] [stdout] 79 + { [INFO] [stdout] 80 + self.inner.args.push(Rc::clone(n)); [INFO] [stdout] 81 + self.inner.defaults.push(None); [INFO] [stdout] 82 + }; [INFO] [stdout] 83 + Ok(()) [INFO] [stdout] 84 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 84 ~ let _: () = { self.inner.var_args = Some(Rc::clone(n)) }; [INFO] [stdout] 85 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:86:39 [INFO] [stdout] | [INFO] [stdout] 86 | State::ParseKwOnlyArgs => Ok({ [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 87 | | self.inner.kw_only_args.push(Rc::clone(n)); [INFO] [stdout] 88 | | self.inner.kw_defaults.push(None); [INFO] [stdout] 89 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 88 - self.inner.kw_defaults.push(None); [INFO] [stdout] 88 + self.inner.kw_defaults.push(None) [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 86 ~ State::ParseKwOnlyArgs => { [INFO] [stdout] 87 + { [INFO] [stdout] 88 + self.inner.kw_only_args.push(Rc::clone(n)); [INFO] [stdout] 89 + self.inner.kw_defaults.push(None); [INFO] [stdout] 90 + }; [INFO] [stdout] 91 + Ok(()) [INFO] [stdout] 92 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 92 ~ let _: () = { self.inner.kw_args = Some(Rc::clone(n)) }; [INFO] [stdout] 93 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:108:26 [INFO] [stdout] | [INFO] [stdout] 108 | tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 108 ~ tok!("*") => { [INFO] [stdout] 109 + let _: () = { self.inner.state = State::ParseVarArgs }; [INFO] [stdout] 110 + Ok(()) [INFO] [stdout] 111 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:109:27 [INFO] [stdout] | [INFO] [stdout] 109 | tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 109 ~ tok!("**") => { [INFO] [stdout] 110 + let _: () = { self.inner.state = State::ParseKwArgs }; [INFO] [stdout] 111 + Ok(()) [INFO] [stdout] 112 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:110:26 [INFO] [stdout] | [INFO] [stdout] 110 | tok!("/") => Ok({ [INFO] [stdout] | __________________________^ [INFO] [stdout] 111 | | self.inner.pos_only_args = Vec::clone(&self.inner.args); [INFO] [stdout] 112 | | self.inner.args = vec![]; [INFO] [stdout] 113 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 112 - self.inner.args = vec![]; [INFO] [stdout] 112 + self.inner.args = vec![] [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 110 ~ tok!("/") => { [INFO] [stdout] 111 + { [INFO] [stdout] 112 + self.inner.pos_only_args = Vec::clone(&self.inner.args); [INFO] [stdout] 113 + self.inner.args = vec![]; [INFO] [stdout] 114 + }; [INFO] [stdout] 115 + Ok(()) [INFO] [stdout] 116 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:137:42 [INFO] [stdout] | [INFO] [stdout] 137 | .map(|x| x.into_syntax().map(|y| Some(y))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/single_input.rs:36:41 [INFO] [stdout] | [INFO] [stdout] 36 | NodeProxy::SimpleStmt(n) => Ok(self.add_simple_stmt(Rc::clone(n))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 36 ~ NodeProxy::SimpleStmt(n) => { [INFO] [stdout] 37 + self.add_simple_stmt(Rc::clone(n)); [INFO] [stdout] 38 + Ok(()) [INFO] [stdout] 39 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/single_input.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 38 | Ok(self.add_compound_stmt(Rc::clone(n))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 38 ~ self.add_compound_stmt(Rc::clone(n)); [INFO] [stdout] 39 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:149:42 [INFO] [stdout] | [INFO] [stdout] 149 | .map(|x| x.into_syntax().map(|y| Some(y))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:155:60 [INFO] [stdout] | [INFO] [stdout] 155 | .map(|x| x.clone().map(|y| y.into_syntax().map(|y| Some(y)))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:162:60 [INFO] [stdout] | [INFO] [stdout] 162 | .map(|x| x.clone().map(|y| y.into_syntax().map(|y| Some(y)))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/vfpdef.rs:26:32 [INFO] [stdout] | [INFO] [stdout] 26 | Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 26 ~ Token::Name(..) => { [INFO] [stdout] 27 + let _: () = { self.inner.child = Some(Token::clone(t)) }; [INFO] [stdout] 28 + Ok(()) [INFO] [stdout] 29 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/tfpdef.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | Ok({ self.inner.annotation = Some(Rc::clone(c)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 28 ~ let _: () = { self.inner.annotation = Some(Rc::clone(c)) }; [INFO] [stdout] 29 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/tfpdef.rs:36:32 [INFO] [stdout] | [INFO] [stdout] 36 | Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 36 ~ Token::Name(..) => { [INFO] [stdout] 37 + let _: () = { self.inner.child = Some(Token::clone(t)) }; [INFO] [stdout] 38 + Ok(()) [INFO] [stdout] 39 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | if let Some(_) = self.inner.defaults.pop() { [INFO] [stdout] | -------^^^^^^^---------------------------- help: try: `if self.inner.defaults.pop().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:58:21 [INFO] [stdout] | [INFO] [stdout] 58 | Ok(self.inner.defaults.push(Some(Rc::clone(test)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 58 ~ self.inner.defaults.push(Some(Rc::clone(test))); [INFO] [stdout] 59 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:65:24 [INFO] [stdout] | [INFO] [stdout] 65 | if let Some(_) = self.inner.kw_defaults.pop() { [INFO] [stdout] | -------^^^^^^^------------------------------- help: try: `if self.inner.kw_defaults.pop().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | Ok(self.inner.kw_defaults.push(Some(Rc::clone(test)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 66 ~ self.inner.kw_defaults.push(Some(Rc::clone(test))); [INFO] [stdout] 67 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:78:36 [INFO] [stdout] | [INFO] [stdout] 78 | State::ParseKwOrPos => Ok({ [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 79 | | self.inner.args.push(Rc::clone(n)); [INFO] [stdout] 80 | | self.inner.defaults.push(None); [INFO] [stdout] 81 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 80 - self.inner.defaults.push(None); [INFO] [stdout] 80 + self.inner.defaults.push(None) [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 78 ~ State::ParseKwOrPos => { [INFO] [stdout] 79 + { [INFO] [stdout] 80 + self.inner.args.push(Rc::clone(n)); [INFO] [stdout] 81 + self.inner.defaults.push(None); [INFO] [stdout] 82 + }; [INFO] [stdout] 83 + Ok(()) [INFO] [stdout] 84 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 84 ~ let _: () = { self.inner.var_args = Some(Rc::clone(n)) }; [INFO] [stdout] 85 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:86:39 [INFO] [stdout] | [INFO] [stdout] 86 | State::ParseKwOnlyArgs => Ok({ [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 87 | | self.inner.kw_only_args.push(Rc::clone(n)); [INFO] [stdout] 88 | | self.inner.kw_defaults.push(None); [INFO] [stdout] 89 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 88 - self.inner.kw_defaults.push(None); [INFO] [stdout] 88 + self.inner.kw_defaults.push(None) [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 86 ~ State::ParseKwOnlyArgs => { [INFO] [stdout] 87 + { [INFO] [stdout] 88 + self.inner.kw_only_args.push(Rc::clone(n)); [INFO] [stdout] 89 + self.inner.kw_defaults.push(None); [INFO] [stdout] 90 + }; [INFO] [stdout] 91 + Ok(()) [INFO] [stdout] 92 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 92 ~ let _: () = { self.inner.kw_args = Some(Rc::clone(n)) }; [INFO] [stdout] 93 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:108:26 [INFO] [stdout] | [INFO] [stdout] 108 | tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 108 ~ tok!("*") => { [INFO] [stdout] 109 + let _: () = { self.inner.state = State::ParseVarArgs }; [INFO] [stdout] 110 + Ok(()) [INFO] [stdout] 111 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:109:27 [INFO] [stdout] | [INFO] [stdout] 109 | tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 109 ~ tok!("**") => { [INFO] [stdout] 110 + let _: () = { self.inner.state = State::ParseKwArgs }; [INFO] [stdout] 111 + Ok(()) [INFO] [stdout] 112 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:110:26 [INFO] [stdout] | [INFO] [stdout] 110 | tok!("/") => Ok({ [INFO] [stdout] | __________________________^ [INFO] [stdout] 111 | | self.inner.pos_only_args = Vec::clone(&self.inner.args); [INFO] [stdout] 112 | | self.inner.args = vec![]; [INFO] [stdout] 113 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 112 - self.inner.args = vec![]; [INFO] [stdout] 112 + self.inner.args = vec![] [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 110 ~ tok!("/") => { [INFO] [stdout] 111 + { [INFO] [stdout] 112 + self.inner.pos_only_args = Vec::clone(&self.inner.args); [INFO] [stdout] 113 + self.inner.args = vec![]; [INFO] [stdout] 114 + }; [INFO] [stdout] 115 + Ok(()) [INFO] [stdout] 116 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:137:42 [INFO] [stdout] | [INFO] [stdout] 137 | .map(|x| x.into_syntax().map(|y| Some(y))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:149:42 [INFO] [stdout] | [INFO] [stdout] 149 | .map(|x| x.into_syntax().map(|y| Some(y))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:155:60 [INFO] [stdout] | [INFO] [stdout] 155 | .map(|x| x.clone().map(|y| y.into_syntax().map(|y| Some(y)))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/typedargslist.rs:162:60 [INFO] [stdout] | [INFO] [stdout] 162 | .map(|x| x.clone().map(|y| y.into_syntax().map(|y| Some(y)))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | if let Some(_) = self.inner.defaults.pop() { [INFO] [stdout] | -------^^^^^^^---------------------------- help: try: `if self.inner.defaults.pop().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:58:21 [INFO] [stdout] | [INFO] [stdout] 58 | Ok(self.inner.defaults.push(Some(Rc::clone(test)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 58 ~ self.inner.defaults.push(Some(Rc::clone(test))); [INFO] [stdout] 59 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:65:24 [INFO] [stdout] | [INFO] [stdout] 65 | if let Some(_) = self.inner.kw_defaults.pop() { [INFO] [stdout] | -------^^^^^^^------------------------------- help: try: `if self.inner.kw_defaults.pop().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | Ok(self.inner.kw_defaults.push(Some(Rc::clone(test)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 66 ~ self.inner.kw_defaults.push(Some(Rc::clone(test))); [INFO] [stdout] 67 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:78:36 [INFO] [stdout] | [INFO] [stdout] 78 | State::ParseKwOrPos => Ok({ [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 79 | | self.inner.args.push(Rc::clone(n)); [INFO] [stdout] 80 | | self.inner.defaults.push(None); [INFO] [stdout] 81 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 80 - self.inner.defaults.push(None); [INFO] [stdout] 80 + self.inner.defaults.push(None) [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 78 ~ State::ParseKwOrPos => { [INFO] [stdout] 79 + { [INFO] [stdout] 80 + self.inner.args.push(Rc::clone(n)); [INFO] [stdout] 81 + self.inner.defaults.push(None); [INFO] [stdout] 82 + }; [INFO] [stdout] 83 + Ok(()) [INFO] [stdout] 84 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | Ok({ self.inner.var_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 84 ~ let _: () = { self.inner.var_args = Some(Rc::clone(n)) }; [INFO] [stdout] 85 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:86:39 [INFO] [stdout] | [INFO] [stdout] 86 | State::ParseKwOnlyArgs => Ok({ [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 87 | | self.inner.kw_only_args.push(Rc::clone(n)); [INFO] [stdout] 88 | | self.inner.kw_defaults.push(None); [INFO] [stdout] 89 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 88 - self.inner.kw_defaults.push(None); [INFO] [stdout] 88 + self.inner.kw_defaults.push(None) [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 86 ~ State::ParseKwOnlyArgs => { [INFO] [stdout] 87 + { [INFO] [stdout] 88 + self.inner.kw_only_args.push(Rc::clone(n)); [INFO] [stdout] 89 + self.inner.kw_defaults.push(None); [INFO] [stdout] 90 + }; [INFO] [stdout] 91 + Ok(()) [INFO] [stdout] 92 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | Ok({ self.inner.kw_args = Some(Rc::clone(n)) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 92 ~ let _: () = { self.inner.kw_args = Some(Rc::clone(n)) }; [INFO] [stdout] 93 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:108:26 [INFO] [stdout] | [INFO] [stdout] 108 | tok!("*") => Ok({ self.inner.state = State::ParseVarArgs }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 108 ~ tok!("*") => { [INFO] [stdout] 109 + let _: () = { self.inner.state = State::ParseVarArgs }; [INFO] [stdout] 110 + Ok(()) [INFO] [stdout] 111 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:109:27 [INFO] [stdout] | [INFO] [stdout] 109 | tok!("**") => Ok({ self.inner.state = State::ParseKwArgs }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 109 ~ tok!("**") => { [INFO] [stdout] 110 + let _: () = { self.inner.state = State::ParseKwArgs }; [INFO] [stdout] 111 + Ok(()) [INFO] [stdout] 112 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:110:26 [INFO] [stdout] | [INFO] [stdout] 110 | tok!("/") => Ok({ [INFO] [stdout] | __________________________^ [INFO] [stdout] 111 | | self.inner.pos_only_args = Vec::clone(&self.inner.args); [INFO] [stdout] 112 | | self.inner.args = vec![]; [INFO] [stdout] 113 | | }), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: remove the semicolon from the last statement in the block [INFO] [stdout] | [INFO] [stdout] 112 - self.inner.args = vec![]; [INFO] [stdout] 112 + self.inner.args = vec![] [INFO] [stdout] | [INFO] [stdout] help: or move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 110 ~ tok!("/") => { [INFO] [stdout] 111 + { [INFO] [stdout] 112 + self.inner.pos_only_args = Vec::clone(&self.inner.args); [INFO] [stdout] 113 + self.inner.args = vec![]; [INFO] [stdout] 114 + }; [INFO] [stdout] 115 + Ok(()) [INFO] [stdout] 116 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:137:42 [INFO] [stdout] | [INFO] [stdout] 137 | .map(|x| x.into_syntax().map(|y| Some(y))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:149:42 [INFO] [stdout] | [INFO] [stdout] 149 | .map(|x| x.into_syntax().map(|y| Some(y))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:155:60 [INFO] [stdout] | [INFO] [stdout] 155 | .map(|x| x.clone().map(|y| y.into_syntax().map(|y| Some(y)))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> parser/trees/parse/src/varargslist.rs:162:60 [INFO] [stdout] | [INFO] [stdout] 162 | .map(|x| x.clone().map(|y| y.into_syntax().map(|y| Some(y)))) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> parser/trees/parse/src/vfpdef.rs:26:32 [INFO] [stdout] | [INFO] [stdout] 26 | Token::Name(..) => Ok({ self.inner.child = Some(Token::clone(t)) }), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 26 ~ Token::Name(..) => { [INFO] [stdout] 27 + let _: () = { self.inner.child = Some(Token::clone(t)) }; [INFO] [stdout] 28 + Ok(()) [INFO] [stdout] 29 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking trees v0.1.0 (/opt/rustwide/workdir/parser/trees) [INFO] [stderr] Checking parser v0.1.0 (/opt/rustwide/workdir/parser) [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> parser/src/lib.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::RefCell; [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::convert::From` [INFO] [stdout] --> parser/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::convert::From; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> parser/src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `token` and `span` are never read [INFO] [stdout] --> parser/src/lib.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct Error { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 17 | token: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 18 | span: Span, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> parser/src/lib.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | state.0.add_child(child); [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] 51 | let _ = state.0.add_child(child); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> parser/src/lib.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | state.0.add_child(child); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 59 | let _ = state.0.add_child(child); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> parser/src/lib.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::RefCell; [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::convert::From` [INFO] [stdout] --> parser/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::convert::From; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> parser/src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `token` and `span` are never read [INFO] [stdout] --> parser/src/lib.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct Error { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 17 | token: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 18 | span: Span, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> parser/src/lib.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | state.0.add_child(child); [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] 51 | let _ = state.0.add_child(child); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> parser/src/lib.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | state.0.add_child(child); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 59 | let _ = state.0.add_child(child); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking reticulated v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use lexer; [INFO] [stdout] | ^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use lexer; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use parser; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `parser` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use parser; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use lexer; [INFO] [stdout] | ^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use lexer; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use parser; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `parser` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use parser; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking criterion v0.2.11 [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/benches/buffer.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | let input: String = repeat("A").take(5000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"A".repeat(5000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] = note: `#[warn(clippy::manual_str_repeat)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/benches/buffer.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | let input: String = repeat("A").take(5000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("A", 5000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] = note: `#[warn(clippy::manual_repeat_n)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/benches/buffer.rs:19:29 [INFO] [stdout] | [INFO] [stdout] 19 | let input: String = repeat("𐐷").take(1250).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"𐐷".repeat(1250)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/benches/buffer.rs:19:29 [INFO] [stdout] | [INFO] [stdout] 19 | let input: String = repeat("𐐷").take(1250).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("𐐷", 1250)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/benches/buffer.rs:31:29 [INFO] [stdout] | [INFO] [stdout] 31 | let input: String = repeat("A").take(20000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"A".repeat(20000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/benches/buffer.rs:31:29 [INFO] [stdout] | [INFO] [stdout] 31 | let input: String = repeat("A").take(20000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("A", 20000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/benches/buffer.rs:44:29 [INFO] [stdout] | [INFO] [stdout] 44 | let input: String = repeat("A").take(20000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"A".repeat(20000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/benches/buffer.rs:44:29 [INFO] [stdout] | [INFO] [stdout] 44 | let input: String = repeat("A").take(20000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("A", 20000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/benches/buffer.rs:57:29 [INFO] [stdout] | [INFO] [stdout] 57 | let input: String = repeat("A").take(20000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"A".repeat(20000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/benches/buffer.rs:57:29 [INFO] [stdout] | [INFO] [stdout] 57 | let input: String = repeat("A").take(20000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("A", 20000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:202:16 [INFO] [stdout] | [INFO] [stdout] 202 | 'a'...'z' | 'A'...'Z' | '_' => self.maybe_handle_identifier(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:202:28 [INFO] [stdout] | [INFO] [stdout] 202 | 'a'...'z' | 'A'...'Z' | '_' => self.maybe_handle_identifier(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:205:16 [INFO] [stdout] | [INFO] [stdout] 205 | '0'...'9' => self.handle_number(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:374:21 [INFO] [stdout] | [INFO] [stdout] 374 | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:374:39 [INFO] [stdout] | [INFO] [stdout] 374 | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:374:57 [INFO] [stdout] | [INFO] [stdout] 374 | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:548:16 [INFO] [stdout] | [INFO] [stdout] 548 | '0'...'9' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:566:22 [INFO] [stdout] | [INFO] [stdout] 566 | (Some('0'...'9'), Some('_')) => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:567:22 [INFO] [stdout] | [INFO] [stdout] 567 | (Some('0'...'9'), _) => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:593:16 [INFO] [stdout] | [INFO] [stdout] 593 | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:593:28 [INFO] [stdout] | [INFO] [stdout] 593 | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:593:40 [INFO] [stdout] | [INFO] [stdout] 593 | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:597:16 [INFO] [stdout] | [INFO] [stdout] 597 | '0'...'7' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:643:17 [INFO] [stdout] | [INFO] [stdout] 643 | ('0'...'9', _) => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> lexer/src/lib.rs:657:21 [INFO] [stdout] | [INFO] [stdout] 657 | Some('0'...'9') => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> lexer/src/error.rs:27:32 [INFO] [stdout] | [INFO] [stdout] 27 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 | fn cause(&self) -> Option<&dyn error::Error> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/buffer.rs:53:6 [INFO] [stdout] | [INFO] [stdout] 53 | impl<'a, R: Read> TokenBuffer { [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: manual implementation of an assign operation [INFO] [stdout] --> lexer/src/buffer.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | self.begin = self.begin - BUFFER_LEN; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.begin -= BUFFER_LEN` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/src/buffer.rs:232:29 [INFO] [stdout] | [INFO] [stdout] 232 | let input: String = repeat("Hello, World! ").take(1000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"Hello, World! ".repeat(1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] = note: `#[warn(clippy::manual_str_repeat)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/src/buffer.rs:232:29 [INFO] [stdout] | [INFO] [stdout] 232 | let input: String = repeat("Hello, World! ").take(1000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("Hello, World! ", 1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] = note: `#[warn(clippy::manual_repeat_n)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/src/buffer.rs:253:29 [INFO] [stdout] | [INFO] [stdout] 253 | let input: String = repeat("Hello, World! ").take(1000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"Hello, World! ".repeat(1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/src/buffer.rs:253:29 [INFO] [stdout] | [INFO] [stdout] 253 | let input: String = repeat("Hello, World! ").take(1000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("Hello, World! ", 1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/src/buffer.rs:271:29 [INFO] [stdout] | [INFO] [stdout] 271 | let input: String = repeat("Hello, World! ").take(1000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"Hello, World! ".repeat(1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/src/buffer.rs:271:29 [INFO] [stdout] | [INFO] [stdout] 271 | let input: String = repeat("Hello, World! ").take(1000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("Hello, World! ", 1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/src/buffer.rs:280:29 [INFO] [stdout] | [INFO] [stdout] 280 | let input: String = repeat("❤️").take(1000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"❤️".repeat(1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/src/buffer.rs:280:29 [INFO] [stdout] | [INFO] [stdout] 280 | let input: String = repeat("❤️").take(1000).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("❤️", 1000)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `str::repeat` using iterators [INFO] [stdout] --> lexer/src/buffer.rs:294:29 [INFO] [stdout] | [INFO] [stdout] 294 | let input: String = repeat("𐐷").take(3).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"𐐷".repeat(3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_str_repeat [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> lexer/src/buffer.rs:294:29 [INFO] [stdout] | [INFO] [stdout] 294 | let input: String = repeat("𐐷").take(3).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n("𐐷", 3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/error.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | impl<'a> fmt::Display for LexerError { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/error.rs:22:6 [INFO] [stdout] | [INFO] [stdout] 22 | impl<'a> error::Error for LexerError { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/error.rs:33:6 [INFO] [stdout] | [INFO] [stdout] 33 | impl<'a> LexerError { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/tokens.rs:144:6 [INFO] [stdout] | [INFO] [stdout] 144 | impl<'a> fmt::Display for Token { [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] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lexer/src/lib.rs:111:6 [INFO] [stdout] | [INFO] [stdout] 111 | impl<'a, R: Read> Lexer { [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lexer/src/lib.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | return Ok(Some(Token::Indent)); [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] 286 - return Ok(Some(Token::Indent)); [INFO] [stdout] 286 + Ok(Some(Token::Indent)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lexer/src/lib.rs:309:13 [INFO] [stdout] | [INFO] [stdout] 309 | return Ok(Some(Token::Dedent)); [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] 309 - return Ok(Some(Token::Dedent)); [INFO] [stdout] 309 + Ok(Some(Token::Dedent)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:350:15 [INFO] [stdout] | [INFO] [stdout] 350 | while match c { [INFO] [stdout] | _______________^ [INFO] [stdout] 351 | | Some('\n') | None => false, [INFO] [stdout] 352 | | _ => true, [INFO] [stdout] 353 | | } { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 350 - while match c { [INFO] [stdout] 351 - Some('\n') | None => false, [INFO] [stdout] 352 - _ => true, [INFO] [stdout] 353 - } { [INFO] [stdout] 350 + while !matches!(c, Some('\n') | None) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:373:15 [INFO] [stdout] | [INFO] [stdout] 373 | while match x { [INFO] [stdout] | _______________^ [INFO] [stdout] 374 | | Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] 375 | | true [INFO] [stdout] ... | [INFO] [stdout] 378 | | } { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 373 - while match x { [INFO] [stdout] 374 - Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_') => { [INFO] [stdout] 375 - true [INFO] [stdout] 376 - } [INFO] [stdout] 377 - _ => false, [INFO] [stdout] 378 - } { [INFO] [stdout] 373 + while matches!(x, Some('a'...'z') | Some('A'...'Z') | Some('0'...'9') | Some('_')) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lexer/src/lib.rs:445:20 [INFO] [stdout] | [INFO] [stdout] 445 | if !q.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `q.is_some()` [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: this boolean expression can be simplified [INFO] [stdout] --> lexer/src/lib.rs:450:20 [INFO] [stdout] | [INFO] [stdout] 450 | if !q.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `q.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lexer/src/lib.rs:453:20 [INFO] [stdout] | [INFO] [stdout] 453 | if !c.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `c.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> lexer/src/lib.rs:432:12 [INFO] [stdout] | [INFO] [stdout] 432 | if c == None { [INFO] [stdout] | ^^^^^^^^^ help: use `Option::is_none()` instead: `c.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> lexer/src/lib.rs:434:17 [INFO] [stdout] | [INFO] [stdout] 434 | "EOF reached while scanning string".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"EOF reached while scanning string"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> lexer/src/lib.rs:465:25 [INFO] [stdout] | [INFO] [stdout] 465 | "EOF reached while scanning string".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"EOF reached while scanning string"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> lexer/src/lib.rs:472:25 [INFO] [stdout] | [INFO] [stdout] 472 | "Unexpected newline in string".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"Unexpected newline in string"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:547:36 [INFO] [stdout] | [INFO] [stdout] 547 | let is_decimal_digit = |x| match x { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 548 | | '0'...'9' => true, [INFO] [stdout] 549 | | _ => false, [INFO] [stdout] 550 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 547 - let is_decimal_digit = |x| match x { [INFO] [stdout] 548 - '0'...'9' => true, [INFO] [stdout] 549 - _ => false, [INFO] [stdout] 550 - }; [INFO] [stdout] 547 + let is_decimal_digit = |x| matches!(x, '0'...'9'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> lexer/src/lib.rs:579:13 [INFO] [stdout] | [INFO] [stdout] 579 | / match option { [INFO] [stdout] 580 | | Some(err) => return Err(err), [INFO] [stdout] 581 | | None => (), [INFO] [stdout] 582 | | } [INFO] [stdout] | |_____________^ help: try: `if let Some(err) = option { return Err(err) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:592:32 [INFO] [stdout] | [INFO] [stdout] 592 | let is_hex_digit = |x| match x { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 593 | | '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] 594 | | _ => false, [INFO] [stdout] 595 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 592 - let is_hex_digit = |x| match x { [INFO] [stdout] 593 - '0'...'9' | 'a'...'f' | 'A'...'F' => true, [INFO] [stdout] 594 - _ => false, [INFO] [stdout] 595 - }; [INFO] [stdout] 592 + let is_hex_digit = |x| matches!(x, '0'...'9' | 'a'...'f' | 'A'...'F'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:596:34 [INFO] [stdout] | [INFO] [stdout] 596 | let is_octal_digit = |x| match x { [INFO] [stdout] | __________________________________^ [INFO] [stdout] 597 | | '0'...'7' => true, [INFO] [stdout] 598 | | _ => false, [INFO] [stdout] 599 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 596 - let is_octal_digit = |x| match x { [INFO] [stdout] 597 - '0'...'7' => true, [INFO] [stdout] 598 - _ => false, [INFO] [stdout] 599 - }; [INFO] [stdout] 596 + let is_octal_digit = |x| matches!(x, '0'...'7'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> lexer/src/lib.rs:600:35 [INFO] [stdout] | [INFO] [stdout] 600 | let is_binary_digit = |x| match x { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 601 | | '0' | '1' => true, [INFO] [stdout] 602 | | _ => false, [INFO] [stdout] 603 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 600 - let is_binary_digit = |x| match x { [INFO] [stdout] 601 - '0' | '1' => true, [INFO] [stdout] 602 - _ => false, [INFO] [stdout] 603 - }; [INFO] [stdout] 600 + let is_binary_digit = |x| matches!(x, '0' | '1'); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:863:22 [INFO] [stdout] | [INFO] [stdout] 863 | let inputs = vec![ [INFO] [stdout] | ______________________^ [INFO] [stdout] 864 | | "foo\nbar\nbaz buzz\n\n\n", [INFO] [stdout] 865 | | "foo '''multiline\nstring''' bar", [INFO] [stdout] 866 | | "foo. \\\n bar", [INFO] [stdout] 867 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 863 ~ let inputs = ["foo\nbar\nbaz buzz\n\n\n", [INFO] [stdout] 864 + "foo '''multiline\nstring''' bar", [INFO] [stdout] 865 ~ "foo. \\\n bar"]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:902:22 [INFO] [stdout] | [INFO] [stdout] 902 | let inputs = vec!["foo. \\\n bar"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["foo. \\\n bar"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:922:22 [INFO] [stdout] | [INFO] [stdout] 922 | let inputs = vec!["foo. \\bar"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["foo. \\bar"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:938:22 [INFO] [stdout] | [INFO] [stdout] 938 | let inputs = vec![ [INFO] [stdout] | ______________________^ [INFO] [stdout] 939 | | "\t\tfoo\n\t\tbar\nbaz", [INFO] [stdout] 940 | | " foo\n bar\nbaz", [INFO] [stdout] 941 | | "foo\n \t# bar\n \t \n baz", [INFO] [stdout] 942 | | "foo(\n bar\n baz)", [INFO] [stdout] 943 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 938 ~ let inputs = ["\t\tfoo\n\t\tbar\nbaz", [INFO] [stdout] 939 + " foo\n bar\nbaz", [INFO] [stdout] 940 + "foo\n \t# bar\n \t \n baz", [INFO] [stdout] 941 ~ "foo(\n bar\n baz)"]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:997:22 [INFO] [stdout] | [INFO] [stdout] 997 | let inputs = vec![ [INFO] [stdout] | ______________________^ [INFO] [stdout] 998 | | " foo\n bar\n baz", [INFO] [stdout] 999 | | " foo\n bar\n baz", [INFO] [stdout] 1000 | | " \tfoo\n \tbar\n\t baz", [INFO] [stdout] 1001 | | " \tfoo\n\t bar", [INFO] [stdout] 1002 | | " foo\n bar\n\tbaz", [INFO] [stdout] 1003 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 997 ~ let inputs = [" foo\n bar\n baz", [INFO] [stdout] 998 + " foo\n bar\n baz", [INFO] [stdout] 999 + " \tfoo\n \tbar\n\t baz", [INFO] [stdout] 1000 + " \tfoo\n\t bar", [INFO] [stdout] 1001 ~ " foo\n bar\n\tbaz"]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:1050:22 [INFO] [stdout] | [INFO] [stdout] 1050 | let inputs = vec!["FooBar", "Foo Bar Baz"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["FooBar", "Foo Bar Baz"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:1168:22 [INFO] [stdout] | [INFO] [stdout] 1168 | let inputs = vec!["<<=", ">>=", "**=", "//=", "..."]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["<<=", ">>=", "**=", "//=", "..."]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:1254:22 [INFO] [stdout] | [INFO] [stdout] 1254 | let inputs = vec!["()", "{}", "[]"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["()", "{}", "[]"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:1273:22 [INFO] [stdout] | [INFO] [stdout] 1273 | let inputs = vec!["foo", "bar", "rfoo froo rbar brar"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["foo", "bar", "rfoo froo rbar brar"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:1299:13 [INFO] [stdout] | [INFO] [stdout] 1299 | vec!["if", "else", "elif", "continue", "pass", "yield", "break"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["if", "else", "elif", "continue", "pass", "yield", "break"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> lexer/src/lib.rs:1416:13 [INFO] [stdout] | [INFO] [stdout] 1416 | vec!["# hello world", "# hello world\nfoo", "foo # hello world"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["# hello world", "# hello world\nfoo", "foo # hello world"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.76s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5` [INFO] running `Command { std: "docker" "inspect" "72a1b7b1adeb9f694e04ae3e7a59ef217607edbe1e601689ca0a65b3325477ba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "72a1b7b1adeb9f694e04ae3e7a59ef217607edbe1e601689ca0a65b3325477ba", kill_on_drop: false }` [INFO] [stdout] 72a1b7b1adeb9f694e04ae3e7a59ef217607edbe1e601689ca0a65b3325477ba