[INFO] fetching crate dot_parse 0.2.0... [INFO] linting dot_parse-0.2.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate dot_parse 0.2.0 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate dot_parse 0.2.0 [INFO] finished tweaking crates.io crate dot_parse 0.2.0 [INFO] tweaked toml for crates.io crate dot_parse 0.2.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate dot_parse 0.2.0 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 crates.io crate dot_parse 0.2.0 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded more-asserts v0.2.1 [INFO] [stderr] Downloaded dot v0.1.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 3b05f46bf35fe9f043761a96e3f138ec283220b72b7f2c60ed0feb1c428c9041 [INFO] running `Command { std: "docker" "start" "-a" "3b05f46bf35fe9f043761a96e3f138ec283220b72b7f2c60ed0feb1c428c9041", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3b05f46bf35fe9f043761a96e3f138ec283220b72b7f2c60ed0feb1c428c9041", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3b05f46bf35fe9f043761a96e3f138ec283220b72b7f2c60ed0feb1c428c9041", kill_on_drop: false }` [INFO] [stdout] 3b05f46bf35fe9f043761a96e3f138ec283220b72b7f2c60ed0feb1c428c9041 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] fa38e7eece0f976ab6742abae4c51d515c8b2c97a263acfa511853fe3480d637 [INFO] running `Command { std: "docker" "start" "-a" "fa38e7eece0f976ab6742abae4c51d515c8b2c97a263acfa511853fe3480d637", kill_on_drop: false }` [INFO] [stderr] Checking dot v0.1.4 [INFO] [stderr] Checking more-asserts v0.2.1 [INFO] [stderr] Checking dot_parse v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:71:59 [INFO] [stdout] | [INFO] [stdout] 71 | (Ok(lhs), Ok(rhs)) => Ok(AssignmentStmt { lhs: lhs, rhs: rhs }), [INFO] [stdout] | ^^^^^^^^ help: replace it with: `lhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:71:69 [INFO] [stdout] | [INFO] [stdout] 71 | (Ok(lhs), Ok(rhs)) => Ok(AssignmentStmt { lhs: lhs, rhs: rhs }), [INFO] [stdout] | ^^^^^^^^ help: replace it with: `rhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/lib.rs:257:10 [INFO] [stdout] | [INFO] [stdout] 257 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/lib.rs:350:61 [INFO] [stdout] | [INFO] [stdout] 350 | fn parse_from(tokens: &[&'a str]) -> Result, ((usize, &'a str))> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 350 - fn parse_from(tokens: &[&'a str]) -> Result, ((usize, &'a str))> { [INFO] [stdout] 350 + fn parse_from(tokens: &[&'a str]) -> Result, (usize, &'a str) > { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/lib.rs:361:10 [INFO] [stdout] | [INFO] [stdout] 361 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:370:41 [INFO] [stdout] | [INFO] [stdout] 370 | Ok(port) => Ok(NodeId { id: id, port: port }), [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:370:49 [INFO] [stdout] | [INFO] [stdout] 370 | Ok(port) => Ok(NodeId { id: id, port: port }), [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `port` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/lib.rs:401:10 [INFO] [stdout] | [INFO] [stdout] 401 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:518:25 [INFO] [stdout] | [INFO] [stdout] 518 | attr_list: attr_list, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `attr_list` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:591:21 [INFO] [stdout] | [INFO] [stdout] 591 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:592:21 [INFO] [stdout] | [INFO] [stdout] 592 | stmt_list: stmt_list, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `stmt_list` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/lib.rs:705:10 [INFO] [stdout] | [INFO] [stdout] 705 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:840:21 [INFO] [stdout] | [INFO] [stdout] 840 | kind: kind, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `kind` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:841:21 [INFO] [stdout] | [INFO] [stdout] 841 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:71:59 [INFO] [stdout] | [INFO] [stdout] 71 | (Ok(lhs), Ok(rhs)) => Ok(AssignmentStmt { lhs: lhs, rhs: rhs }), [INFO] [stdout] | ^^^^^^^^ help: replace it with: `lhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:71:69 [INFO] [stdout] | [INFO] [stdout] 71 | (Ok(lhs), Ok(rhs)) => Ok(AssignmentStmt { lhs: lhs, rhs: rhs }), [INFO] [stdout] | ^^^^^^^^ help: replace it with: `rhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/lib.rs:257:10 [INFO] [stdout] | [INFO] [stdout] 257 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/lib.rs:350:61 [INFO] [stdout] | [INFO] [stdout] 350 | fn parse_from(tokens: &[&'a str]) -> Result, ((usize, &'a str))> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 350 - fn parse_from(tokens: &[&'a str]) -> Result, ((usize, &'a str))> { [INFO] [stdout] 350 + fn parse_from(tokens: &[&'a str]) -> Result, (usize, &'a str) > { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/lib.rs:361:10 [INFO] [stdout] | [INFO] [stdout] 361 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:370:41 [INFO] [stdout] | [INFO] [stdout] 370 | Ok(port) => Ok(NodeId { id: id, port: port }), [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:370:49 [INFO] [stdout] | [INFO] [stdout] 370 | Ok(port) => Ok(NodeId { id: id, port: port }), [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `port` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/lib.rs:401:10 [INFO] [stdout] | [INFO] [stdout] 401 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:518:25 [INFO] [stdout] | [INFO] [stdout] 518 | attr_list: attr_list, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `attr_list` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:591:21 [INFO] [stdout] | [INFO] [stdout] 591 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:592:21 [INFO] [stdout] | [INFO] [stdout] 592 | stmt_list: stmt_list, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `stmt_list` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/lib.rs:705:10 [INFO] [stdout] | [INFO] [stdout] 705 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:840:21 [INFO] [stdout] | [INFO] [stdout] 840 | kind: kind, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `kind` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:841:21 [INFO] [stdout] | [INFO] [stdout] 841 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | _ => false [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] ... [INFO] [stdout] 235 | (Some(a), Some(_b)) => matches!(a, _b) && id_match(self, other), [INFO] [stdout] | --------------- [INFO] [stdout] | | | [INFO] [stdout] | | matches any value [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | _ => false [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] ... [INFO] [stdout] 488 | matches!(self, other) [INFO] [stdout] | --------------------- [INFO] [stdout] | | | [INFO] [stdout] | | matches any value [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> src/lib.rs:487:18 [INFO] [stdout] | [INFO] [stdout] 487 | fn eq(&self, other: &Self) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> src/lib.rs:488:24 [INFO] [stdout] | [INFO] [stdout] 488 | matches!(self, other) [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/lib.rs:604:21 [INFO] [stdout] | [INFO] [stdout] 603 | key_subgraph => parse_stmt_list_and_return(None, 2), [INFO] [stdout] | ------------ matches any value [INFO] [stdout] 604 | _ => Err((0, "expecting subgraph")), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: there is a binding of the same name; if you meant to pattern match against the value of that binding, that is a feature of constants that is not available for `let` bindings [INFO] [stdout] --> src/lib.rs:597:13 [INFO] [stdout] | [INFO] [stdout] 597 | let key_subgraph: &str = "subgraph"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/lib.rs:609:21 [INFO] [stdout] | [INFO] [stdout] 608 | (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3), [INFO] [stdout] | ---------------------- matches all the relevant values [INFO] [stdout] 609 | (_, Ok(_)) => Err((0, "expecting subgraph")), [INFO] [stdout] | ^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_subgraph` [INFO] [stdout] --> src/lib.rs:597:13 [INFO] [stdout] | [INFO] [stdout] 597 | let key_subgraph: &str = "subgraph"; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right_brace` [INFO] [stdout] --> src/lib.rs:598:13 [INFO] [stdout] | [INFO] [stdout] 598 | let right_brace: &str = "}"; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right_brace` [INFO] [stdout] --> src/lib.rs:600:42 [INFO] [stdout] | [INFO] [stdout] 600 | (Some(idx_left_brace), Some(&right_brace)) => match idx_left_brace { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_subgraph` [INFO] [stdout] --> src/lib.rs:603:21 [INFO] [stdout] | [INFO] [stdout] 603 | key_subgraph => parse_stmt_list_and_return(None, 2), [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_subgraph` [INFO] [stdout] --> src/lib.rs:608:22 [INFO] [stdout] | [INFO] [stdout] 608 | (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3), [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `len` are never used [INFO] [stdout] --> src/lib.rs:421:8 [INFO] [stdout] | [INFO] [stdout] 384 | impl<'a> AList<'a> { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 421 | fn get(&self, key: &str) -> Option<&IdWrapper<'a>> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 425 | fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `key` and `attr_list` are never read [INFO] [stdout] --> src/lib.rs:504:5 [INFO] [stdout] | [INFO] [stdout] 503 | pub struct AttrStmt<'a> { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 504 | key: AttrStmtKey, [INFO] [stdout] | ^^^ [INFO] [stdout] 505 | attr_list: AttrList<'a>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `attr_list` are never read [INFO] [stdout] --> src/lib.rs:533:5 [INFO] [stdout] | [INFO] [stdout] 532 | pub struct NodeStmt<'a> { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 533 | id: NodeId<'a>, [INFO] [stdout] | ^^ [INFO] [stdout] 534 | attr_list: Option>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `stmt_list` are never read [INFO] [stdout] --> src/lib.rs:577:5 [INFO] [stdout] | [INFO] [stdout] 576 | pub struct SubGraph<'a> { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 577 | id: Option>, [INFO] [stdout] | ^^ [INFO] [stdout] 578 | stmt_list: StmtList<'a>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `attr_list` is never read [INFO] [stdout] --> src/lib.rs:718:5 [INFO] [stdout] | [INFO] [stdout] 715 | pub struct EdgeStmt<'a> { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 718 | attr_list: Option>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `UND` contains a capitalized acronym [INFO] [stdout] --> src/lib.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | UND, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Und` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant slicing of the whole range [INFO] [stdout] --> src/lib.rs:69:15 [INFO] [stdout] | [INFO] [stdout] 69 | match &tokens[..] { [INFO] [stdout] | ^^^^^^^^^^^ help: use the original value instead: `tokens` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_slicing [INFO] [stdout] = note: `#[warn(clippy::redundant_slicing)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | return Err(fmt::Error); [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] 106 - return Err(fmt::Error); [INFO] [stdout] 106 + Err(fmt::Error) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:118:33 [INFO] [stdout] | [INFO] [stdout] 118 | match T::parse_from(&edgeop, &tokens_internal) { [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:118:42 [INFO] [stdout] | [INFO] [stdout] 118 | match T::parse_from(&edgeop, &tokens_internal) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `tokens_internal` [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] --> src/lib.rs:137:44 [INFO] [stdout] | [INFO] [stdout] 137 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:137:53 [INFO] [stdout] | [INFO] [stdout] 137 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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] --> src/lib.rs:142:44 [INFO] [stdout] | [INFO] [stdout] 142 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:142:53 [INFO] [stdout] | [INFO] [stdout] 142 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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] --> src/lib.rs:147:44 [INFO] [stdout] | [INFO] [stdout] 147 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:147:53 [INFO] [stdout] | [INFO] [stdout] 147 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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] --> src/lib.rs:152:50 [INFO] [stdout] | [INFO] [stdout] 152 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:152:59 [INFO] [stdout] | [INFO] [stdout] 152 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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] --> src/lib.rs:157:44 [INFO] [stdout] | [INFO] [stdout] 157 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:157:53 [INFO] [stdout] | [INFO] [stdout] 157 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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: length comparison to zero [INFO] [stdout] --> src/lib.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 180 | if tokens.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [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] --> src/lib.rs:189:17 [INFO] [stdout] | [INFO] [stdout] 189 | / match ( [INFO] [stdout] 190 | | Stmt::parse_from(edgeop, &tokens[0..token_idx]), [INFO] [stdout] 191 | | StmtList::parse_from(edgeop, &tokens[token_idx + 1..]), [INFO] [stdout] 192 | | ) { [INFO] [stdout] ... | [INFO] [stdout] 197 | | _ => {} [INFO] [stdout] 198 | | } [INFO] [stdout] | |_________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 189 ~ if let (Ok(stmt), Ok(mut stmt_list)) = ( [INFO] [stdout] 190 + Stmt::parse_from(edgeop, &tokens[0..token_idx]), [INFO] [stdout] 191 + StmtList::parse_from(edgeop, &tokens[token_idx + 1..]), [INFO] [stdout] 192 + ) { [INFO] [stdout] 193 + stmt_list.0.insert(0, stmt); [INFO] [stdout] 194 + return Ok(stmt_list); [INFO] [stdout] 195 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/lib.rs:226:20 [INFO] [stdout] | [INFO] [stdout] 226 | match ((*lhs).id.as_ref(), (*rhs).id.as_ref()) { [INFO] [stdout] | ^^^^^^ help: try: `lhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/lib.rs:226:40 [INFO] [stdout] | [INFO] [stdout] 226 | match ((*lhs).id.as_ref(), (*rhs).id.as_ref()) { [INFO] [stdout] | ^^^^^^ help: try: `rhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | return Err(()); [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] 261 - return Err(()); [INFO] [stdout] 261 + Err(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:279:17 [INFO] [stdout] | [INFO] [stdout] 279 | return Err(()); [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] 279 - return Err(()); [INFO] [stdout] 279 + Err(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:354:16 [INFO] [stdout] | [INFO] [stdout] 354 | if tokens.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:363:12 [INFO] [stdout] | [INFO] [stdout] 363 | if tokens.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:447:52 [INFO] [stdout] | [INFO] [stdout] 447 | None => Err((tokens.len(), &"expecting ']'")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `"expecting ']'"` [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] --> src/lib.rs:455:59 [INFO] [stdout] | [INFO] [stdout] 455 | ... Err(_) => Err((1, &"internal error")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `"internal error"` [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] --> src/lib.rs:465:34 [INFO] [stdout] | [INFO] [stdout] 465 | _ => Err((0, &"expecting '['")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `"expecting '['"` [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] --> src/lib.rs:473:30 [INFO] [stdout] | [INFO] [stdout] 473 | 0 => Err((0, &"expecting valid AttrList here")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"expecting valid AttrList here"` [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: name `GRAPH` contains a capitalized acronym [INFO] [stdout] --> src/lib.rs:481:5 [INFO] [stdout] | [INFO] [stdout] 481 | GRAPH, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Graph` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NODE` contains a capitalized acronym [INFO] [stdout] --> src/lib.rs:482:5 [INFO] [stdout] | [INFO] [stdout] 482 | NODE, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EDGE` contains a capitalized acronym [INFO] [stdout] --> src/lib.rs:483:5 [INFO] [stdout] | [INFO] [stdout] 483 | EDGE, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Edge` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:524:64 [INFO] [stdout] | [INFO] [stdout] 524 | Some(&"graph") => parse_helper(AttrStmtKey::GRAPH, &tokens), [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:525:62 [INFO] [stdout] | [INFO] [stdout] 525 | Some(&"node") => parse_helper(AttrStmtKey::NODE, &tokens), [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:526:62 [INFO] [stdout] | [INFO] [stdout] 526 | Some(&"edge") => parse_helper(AttrStmtKey::EDGE, &tokens), [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:527:26 [INFO] [stdout] | [INFO] [stdout] 527 | _ => Err((0, &"AttrStmt must starts with graph|node|edge")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"AttrStmt must starts with graph|node|edge"` [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: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:839:17 [INFO] [stdout] | [INFO] [stdout] 839 | / return Some(Graph { [INFO] [stdout] 840 | | kind: kind, [INFO] [stdout] 841 | | id: id, [INFO] [stdout] 842 | | stmt_list: stmtlist, [INFO] [stdout] 843 | | }) [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] 839 ~ Some(Graph { [INFO] [stdout] 840 + kind: kind, [INFO] [stdout] 841 + id: id, [INFO] [stdout] 842 + stmt_list: stmtlist, [INFO] [stdout] 843 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:845:23 [INFO] [stdout] | [INFO] [stdout] 845 | Err(_) => return None, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 845 - Err(_) => return None, [INFO] [stdout] 845 + Err(_) => None, [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] --> src/lib.rs:827:17 [INFO] [stdout] | [INFO] [stdout] 827 | / match IdWrapper::new(id_str) { [INFO] [stdout] 828 | | Ok(id_wrapper) => { [INFO] [stdout] 829 | | id = Some(id_wrapper); [INFO] [stdout] ... | [INFO] [stdout] 832 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 827 ~ if let Ok(id_wrapper) = IdWrapper::new(id_str) { [INFO] [stdout] 828 + id = Some(id_wrapper); [INFO] [stdout] 829 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | _ => false [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] ... [INFO] [stdout] 235 | (Some(a), Some(_b)) => matches!(a, _b) && id_match(self, other), [INFO] [stdout] | --------------- [INFO] [stdout] | | | [INFO] [stdout] | | matches any value [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | _ => false [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] ... [INFO] [stdout] 488 | matches!(self, other) [INFO] [stdout] | --------------------- [INFO] [stdout] | | | [INFO] [stdout] | | matches any value [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> src/lib.rs:487:18 [INFO] [stdout] | [INFO] [stdout] 487 | fn eq(&self, other: &Self) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> src/lib.rs:488:24 [INFO] [stdout] | [INFO] [stdout] 488 | matches!(self, other) [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/lib.rs:604:21 [INFO] [stdout] | [INFO] [stdout] 603 | key_subgraph => parse_stmt_list_and_return(None, 2), [INFO] [stdout] | ------------ matches any value [INFO] [stdout] 604 | _ => Err((0, "expecting subgraph")), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: there is a binding of the same name; if you meant to pattern match against the value of that binding, that is a feature of constants that is not available for `let` bindings [INFO] [stdout] --> src/lib.rs:597:13 [INFO] [stdout] | [INFO] [stdout] 597 | let key_subgraph: &str = "subgraph"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/lib.rs:609:21 [INFO] [stdout] | [INFO] [stdout] 608 | (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3), [INFO] [stdout] | ---------------------- matches all the relevant values [INFO] [stdout] 609 | (_, Ok(_)) => Err((0, "expecting subgraph")), [INFO] [stdout] | ^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_subgraph` [INFO] [stdout] --> src/lib.rs:597:13 [INFO] [stdout] | [INFO] [stdout] 597 | let key_subgraph: &str = "subgraph"; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right_brace` [INFO] [stdout] --> src/lib.rs:598:13 [INFO] [stdout] | [INFO] [stdout] 598 | let right_brace: &str = "}"; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right_brace` [INFO] [stdout] --> src/lib.rs:600:42 [INFO] [stdout] | [INFO] [stdout] 600 | (Some(idx_left_brace), Some(&right_brace)) => match idx_left_brace { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_subgraph` [INFO] [stdout] --> src/lib.rs:603:21 [INFO] [stdout] | [INFO] [stdout] 603 | key_subgraph => parse_stmt_list_and_return(None, 2), [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_subgraph` [INFO] [stdout] --> src/lib.rs:608:22 [INFO] [stdout] | [INFO] [stdout] 608 | (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3), [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `attr_list` is never read [INFO] [stdout] --> src/lib.rs:505:5 [INFO] [stdout] | [INFO] [stdout] 503 | pub struct AttrStmt<'a> { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 504 | key: AttrStmtKey, [INFO] [stdout] 505 | attr_list: AttrList<'a>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stmt_list` is never read [INFO] [stdout] --> src/lib.rs:578:5 [INFO] [stdout] | [INFO] [stdout] 576 | pub struct SubGraph<'a> { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 577 | id: Option>, [INFO] [stdout] 578 | stmt_list: StmtList<'a>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `UND` contains a capitalized acronym [INFO] [stdout] --> src/lib.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | UND, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Und` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant slicing of the whole range [INFO] [stdout] --> src/lib.rs:69:15 [INFO] [stdout] | [INFO] [stdout] 69 | match &tokens[..] { [INFO] [stdout] | ^^^^^^^^^^^ help: use the original value instead: `tokens` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_slicing [INFO] [stdout] = note: `#[warn(clippy::redundant_slicing)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | return Err(fmt::Error); [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] 106 - return Err(fmt::Error); [INFO] [stdout] 106 + Err(fmt::Error) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:118:33 [INFO] [stdout] | [INFO] [stdout] 118 | match T::parse_from(&edgeop, &tokens_internal) { [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:118:42 [INFO] [stdout] | [INFO] [stdout] 118 | match T::parse_from(&edgeop, &tokens_internal) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `tokens_internal` [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] --> src/lib.rs:137:44 [INFO] [stdout] | [INFO] [stdout] 137 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:137:53 [INFO] [stdout] | [INFO] [stdout] 137 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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] --> src/lib.rs:142:44 [INFO] [stdout] | [INFO] [stdout] 142 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:142:53 [INFO] [stdout] | [INFO] [stdout] 142 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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] --> src/lib.rs:147:44 [INFO] [stdout] | [INFO] [stdout] 147 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:147:53 [INFO] [stdout] | [INFO] [stdout] 147 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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] --> src/lib.rs:152:50 [INFO] [stdout] | [INFO] [stdout] 152 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:152:59 [INFO] [stdout] | [INFO] [stdout] 152 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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] --> src/lib.rs:157:44 [INFO] [stdout] | [INFO] [stdout] 157 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:157:53 [INFO] [stdout] | [INFO] [stdout] 157 | try_different_stmt::(&tokens, &edgeop, &mut idx_err, &mut err_msg) [INFO] [stdout] | ^^^^^^^ help: change this to: `edgeop` [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: length comparison to zero [INFO] [stdout] --> src/lib.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 180 | if tokens.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [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] --> src/lib.rs:189:17 [INFO] [stdout] | [INFO] [stdout] 189 | / match ( [INFO] [stdout] 190 | | Stmt::parse_from(edgeop, &tokens[0..token_idx]), [INFO] [stdout] 191 | | StmtList::parse_from(edgeop, &tokens[token_idx + 1..]), [INFO] [stdout] 192 | | ) { [INFO] [stdout] ... | [INFO] [stdout] 197 | | _ => {} [INFO] [stdout] 198 | | } [INFO] [stdout] | |_________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 189 ~ if let (Ok(stmt), Ok(mut stmt_list)) = ( [INFO] [stdout] 190 + Stmt::parse_from(edgeop, &tokens[0..token_idx]), [INFO] [stdout] 191 + StmtList::parse_from(edgeop, &tokens[token_idx + 1..]), [INFO] [stdout] 192 + ) { [INFO] [stdout] 193 + stmt_list.0.insert(0, stmt); [INFO] [stdout] 194 + return Ok(stmt_list); [INFO] [stdout] 195 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/lib.rs:226:20 [INFO] [stdout] | [INFO] [stdout] 226 | match ((*lhs).id.as_ref(), (*rhs).id.as_ref()) { [INFO] [stdout] | ^^^^^^ help: try: `lhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/lib.rs:226:40 [INFO] [stdout] | [INFO] [stdout] 226 | match ((*lhs).id.as_ref(), (*rhs).id.as_ref()) { [INFO] [stdout] | ^^^^^^ help: try: `rhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | return Err(()); [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] 261 - return Err(()); [INFO] [stdout] 261 + Err(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:279:17 [INFO] [stdout] | [INFO] [stdout] 279 | return Err(()); [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] 279 - return Err(()); [INFO] [stdout] 279 + Err(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:354:16 [INFO] [stdout] | [INFO] [stdout] 354 | if tokens.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:363:12 [INFO] [stdout] | [INFO] [stdout] 363 | if tokens.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:447:52 [INFO] [stdout] | [INFO] [stdout] 447 | None => Err((tokens.len(), &"expecting ']'")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `"expecting ']'"` [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] --> src/lib.rs:455:59 [INFO] [stdout] | [INFO] [stdout] 455 | ... Err(_) => Err((1, &"internal error")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `"internal error"` [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] --> src/lib.rs:465:34 [INFO] [stdout] | [INFO] [stdout] 465 | _ => Err((0, &"expecting '['")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `"expecting '['"` [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] --> src/lib.rs:473:30 [INFO] [stdout] | [INFO] [stdout] 473 | 0 => Err((0, &"expecting valid AttrList here")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"expecting valid AttrList here"` [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: name `GRAPH` contains a capitalized acronym [INFO] [stdout] --> src/lib.rs:481:5 [INFO] [stdout] | [INFO] [stdout] 481 | GRAPH, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Graph` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NODE` contains a capitalized acronym [INFO] [stdout] --> src/lib.rs:482:5 [INFO] [stdout] | [INFO] [stdout] 482 | NODE, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EDGE` contains a capitalized acronym [INFO] [stdout] --> src/lib.rs:483:5 [INFO] [stdout] | [INFO] [stdout] 483 | EDGE, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Edge` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:524:64 [INFO] [stdout] | [INFO] [stdout] 524 | Some(&"graph") => parse_helper(AttrStmtKey::GRAPH, &tokens), [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:525:62 [INFO] [stdout] | [INFO] [stdout] 525 | Some(&"node") => parse_helper(AttrStmtKey::NODE, &tokens), [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:526:62 [INFO] [stdout] | [INFO] [stdout] 526 | Some(&"edge") => parse_helper(AttrStmtKey::EDGE, &tokens), [INFO] [stdout] | ^^^^^^^ help: change this to: `tokens` [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] --> src/lib.rs:527:26 [INFO] [stdout] | [INFO] [stdout] 527 | _ => Err((0, &"AttrStmt must starts with graph|node|edge")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"AttrStmt must starts with graph|node|edge"` [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: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:839:17 [INFO] [stdout] | [INFO] [stdout] 839 | / return Some(Graph { [INFO] [stdout] 840 | | kind: kind, [INFO] [stdout] 841 | | id: id, [INFO] [stdout] 842 | | stmt_list: stmtlist, [INFO] [stdout] 843 | | }) [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] 839 ~ Some(Graph { [INFO] [stdout] 840 + kind: kind, [INFO] [stdout] 841 + id: id, [INFO] [stdout] 842 + stmt_list: stmtlist, [INFO] [stdout] 843 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:845:23 [INFO] [stdout] | [INFO] [stdout] 845 | Err(_) => return None, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 845 - Err(_) => return None, [INFO] [stdout] 845 + Err(_) => None, [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] --> src/lib.rs:827:17 [INFO] [stdout] | [INFO] [stdout] 827 | / match IdWrapper::new(id_str) { [INFO] [stdout] 828 | | Ok(id_wrapper) => { [INFO] [stdout] 829 | | id = Some(id_wrapper); [INFO] [stdout] ... | [INFO] [stdout] 832 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 827 ~ if let Ok(id_wrapper) = IdWrapper::new(id_str) { [INFO] [stdout] 828 + id = Some(id_wrapper); [INFO] [stdout] 829 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:948:17 [INFO] [stdout] | [INFO] [stdout] 948 | assert!(!alist_5.is_ok(), alist_5.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `alist_5.is_err()` [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] --> src/lib.rs:951:17 [INFO] [stdout] | [INFO] [stdout] 951 | assert!(!alist_6.is_ok(), alist_6.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `alist_6.is_err()` [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] --> src/lib.rs:992:21 [INFO] [stdout] | [INFO] [stdout] 992 | assert!(!attr_list.is_ok(), attr_list.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `attr_list.is_err()` [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] --> src/lib.rs:997:21 [INFO] [stdout] | [INFO] [stdout] 997 | assert!(!attr_list.is_ok(), attr_list.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `attr_list.is_err()` [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 assertion is always `false` [INFO] [stdout] --> src/lib.rs:962:21 [INFO] [stdout] | [INFO] [stdout] 962 | assert!(false, "cannot be empty"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] = note: `#[warn(clippy::assertions_on_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:970:21 [INFO] [stdout] | [INFO] [stdout] 970 | assert!(false, "error at index {}: {}", idx_err, err_msg); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:982:21 [INFO] [stdout] | [INFO] [stdout] 982 | assert!(false, "error at index {}: {}", idx_err, err_msg); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1005:21 [INFO] [stdout] | [INFO] [stdout] 1005 | assert!(!node_stmt.is_ok(), node_stmt.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `node_stmt.is_err()` [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] --> src/lib.rs:1043:21 [INFO] [stdout] | [INFO] [stdout] 1043 | assert!(!node_stmt.is_ok(), node_stmt.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `node_stmt.is_err()` [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] --> src/lib.rs:1055:21 [INFO] [stdout] | [INFO] [stdout] 1055 | assert!(!node_stmt.is_ok(), node_stmt.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `node_stmt.is_err()` [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] --> src/lib.rs:1061:21 [INFO] [stdout] | [INFO] [stdout] 1061 | assert!(!node_stmt.is_ok(), node_stmt.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `node_stmt.is_err()` [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 assertion is always `false` [INFO] [stdout] --> src/lib.rs:1075:21 [INFO] [stdout] | [INFO] [stdout] 1075 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1088:21 [INFO] [stdout] | [INFO] [stdout] 1088 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1102:21 [INFO] [stdout] | [INFO] [stdout] 1102 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1112:21 [INFO] [stdout] | [INFO] [stdout] 1112 | assert!(false, subgraph); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1125:21 [INFO] [stdout] | [INFO] [stdout] 1125 | assert!(false, subgraph); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1145:21 [INFO] [stdout] | [INFO] [stdout] 1145 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1159:21 [INFO] [stdout] | [INFO] [stdout] 1159 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1189:21 [INFO] [stdout] | [INFO] [stdout] 1189 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1203:21 [INFO] [stdout] | [INFO] [stdout] 1203 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1222:21 [INFO] [stdout] | [INFO] [stdout] 1222 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1236:21 [INFO] [stdout] | [INFO] [stdout] 1236 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1250:21 [INFO] [stdout] | [INFO] [stdout] 1250 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1266:21 [INFO] [stdout] | [INFO] [stdout] 1266 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1279:21 [INFO] [stdout] | [INFO] [stdout] 1279 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/lib.rs:1298:21 [INFO] [stdout] | [INFO] [stdout] 1298 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:948:35 [INFO] [stdout] | [INFO] [stdout] 948 | assert!(!alist_5.is_ok(), alist_5.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `AList<'_>` [INFO] [stdout] | [INFO] [stdout] 948 | assert!(!alist_5.is_ok(), "{:?}", alist_5.unwrap()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:951:35 [INFO] [stdout] | [INFO] [stdout] 951 | assert!(!alist_6.is_ok(), alist_6.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `AList<'_>` [INFO] [stdout] | [INFO] [stdout] 951 | assert!(!alist_6.is_ok(), "{:?}", alist_6.unwrap()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:992:41 [INFO] [stdout] | [INFO] [stdout] 992 | assert!(!attr_list.is_ok(), attr_list.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `AttrList<'_>` [INFO] [stdout] | [INFO] [stdout] 992 | assert!(!attr_list.is_ok(), "{:?}", attr_list.unwrap()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:997:41 [INFO] [stdout] | [INFO] [stdout] 997 | assert!(!attr_list.is_ok(), attr_list.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `AttrList<'_>` [INFO] [stdout] | [INFO] [stdout] 997 | assert!(!attr_list.is_ok(), "{:?}", attr_list.unwrap()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1005:41 [INFO] [stdout] | [INFO] [stdout] 1005 | assert!(!node_stmt.is_ok(), node_stmt.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1043:41 [INFO] [stdout] | [INFO] [stdout] 1043 | assert!(!node_stmt.is_ok(), node_stmt.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1055:41 [INFO] [stdout] | [INFO] [stdout] 1055 | assert!(!node_stmt.is_ok(), node_stmt.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1061:41 [INFO] [stdout] | [INFO] [stdout] 1061 | assert!(!node_stmt.is_ok(), node_stmt.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1075:36 [INFO] [stdout] | [INFO] [stdout] 1075 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1075 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1075 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1088:36 [INFO] [stdout] | [INFO] [stdout] 1088 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1088 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1088 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1102:36 [INFO] [stdout] | [INFO] [stdout] 1102 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1102 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1102 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1112:36 [INFO] [stdout] | [INFO] [stdout] 1112 | assert!(false, subgraph); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1125:36 [INFO] [stdout] | [INFO] [stdout] 1125 | assert!(false, subgraph); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1145:36 [INFO] [stdout] | [INFO] [stdout] 1145 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1145 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1145 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1159:36 [INFO] [stdout] | [INFO] [stdout] 1159 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1159 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1159 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1189:36 [INFO] [stdout] | [INFO] [stdout] 1189 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1189 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1189 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1203:36 [INFO] [stdout] | [INFO] [stdout] 1203 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1203 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1203 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1222:36 [INFO] [stdout] | [INFO] [stdout] 1222 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1222 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1222 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1236:36 [INFO] [stdout] | [INFO] [stdout] 1236 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1236 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1236 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1246:55 [INFO] [stdout] | [INFO] [stdout] 1246 | assert!(stmt.attr_stmt.is_some(), stmt); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `Stmt<'_>` [INFO] [stdout] | [INFO] [stdout] 1246 | assert!(stmt.attr_stmt.is_some(), "{:?}", stmt); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1250:36 [INFO] [stdout] | [INFO] [stdout] 1250 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1250 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1250 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1260:57 [INFO] [stdout] | [INFO] [stdout] 1260 | assert!(stmt.assign_stmt.is_some(), stmt); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `Stmt<'_>` [INFO] [stdout] | [INFO] [stdout] 1260 | assert!(stmt.assign_stmt.is_some(), "{:?}", stmt); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1266:36 [INFO] [stdout] | [INFO] [stdout] 1266 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1266 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1266 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1276:54 [INFO] [stdout] | [INFO] [stdout] 1276 | assert!(stmt.subgraph.is_some(), stmt); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `Stmt<'_>` [INFO] [stdout] | [INFO] [stdout] 1276 | assert!(stmt.subgraph.is_some(), "{:?}", stmt); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1279:36 [INFO] [stdout] | [INFO] [stdout] 1279 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1279 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1279 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:1298:36 [INFO] [stdout] | [INFO] [stdout] 1298 | assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1298 - assert!(false, format!("{} {}", idx_err, err_msg)); [INFO] [stdout] 1298 + assert!(false, "{} {}", idx_err, err_msg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.74s [INFO] running `Command { std: "docker" "inspect" "fa38e7eece0f976ab6742abae4c51d515c8b2c97a263acfa511853fe3480d637", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa38e7eece0f976ab6742abae4c51d515c8b2c97a263acfa511853fe3480d637", kill_on_drop: false }` [INFO] [stdout] fa38e7eece0f976ab6742abae4c51d515c8b2c97a263acfa511853fe3480d637