[INFO] fetching crate dot_parse 0.2.0...
[INFO] testing dot_parse-0.2.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate dot_parse 0.2.0 into /workspace/builds/worker-5-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-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate dot_parse 0.2.0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 742d069d8ea8efaa8be68ca79ad28dcd93103ddef91d6be1c6f490743d4bcf6f
[INFO] running `Command { std: "docker" "start" "-a" "742d069d8ea8efaa8be68ca79ad28dcd93103ddef91d6be1c6f490743d4bcf6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "742d069d8ea8efaa8be68ca79ad28dcd93103ddef91d6be1c6f490743d4bcf6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "742d069d8ea8efaa8be68ca79ad28dcd93103ddef91d6be1c6f490743d4bcf6f", kill_on_drop: false }`
[INFO] [stdout] 742d069d8ea8efaa8be68ca79ad28dcd93103ddef91d6be1c6f490743d4bcf6f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fce01c28a97b1cadf0e32b16487b999d5f6941b1b30a6949d8038e2a2a38d5a7
[INFO] running `Command { std: "docker" "start" "-a" "fce01c28a97b1cadf0e32b16487b999d5f6941b1b30a6949d8038e2a2a38d5a7", kill_on_drop: false }`
[INFO] [stderr]    Compiling dot v0.1.4
[INFO] [stderr]    Compiling more-asserts v0.2.1
[INFO] [stderr]    Compiling dot_parse v0.2.0 (/opt/rustwide/workdir)
[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<NodeId<'a>, ((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<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stdout] 350 +     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, (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: 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: 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: 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<AttrList<'a>>,
[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<dot::Id<'a>>,
[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<AttrList<'a>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.89s
[INFO] running `Command { std: "docker" "inspect" "fce01c28a97b1cadf0e32b16487b999d5f6941b1b30a6949d8038e2a2a38d5a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fce01c28a97b1cadf0e32b16487b999d5f6941b1b30a6949d8038e2a2a38d5a7", kill_on_drop: false }`
[INFO] [stdout] fce01c28a97b1cadf0e32b16487b999d5f6941b1b30a6949d8038e2a2a38d5a7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 45d160a2e1903d893280c7c9cb66319a17ae40d6517ccc6cb8e7d289e9c999a7
[INFO] running `Command { std: "docker" "start" "-a" "45d160a2e1903d893280c7c9cb66319a17ae40d6517ccc6cb8e7d289e9c999a7", kill_on_drop: false }`
[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<NodeId<'a>, ((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<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stdout] 350 +     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, (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: 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: 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: 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<AttrList<'a>>,
[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<dot::Id<'a>>,
[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<AttrList<'a>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling dot_parse v0.2.0 (/opt/rustwide/workdir)
[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<NodeId<'a>, ((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<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stdout] 350 +     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, (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: 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: 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: 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<dot::Id<'a>>,
[INFO] [stdout] 578 |     stmt_list: StmtList<'a>,
[INFO] [stdout]     |     ^^^^^^^^^
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[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 `test` profile [unoptimized + debuginfo] target(s) in 0.99s
[INFO] running `Command { std: "docker" "inspect" "45d160a2e1903d893280c7c9cb66319a17ae40d6517ccc6cb8e7d289e9c999a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "45d160a2e1903d893280c7c9cb66319a17ae40d6517ccc6cb8e7d289e9c999a7", kill_on_drop: false }`
[INFO] [stdout] 45d160a2e1903d893280c7c9cb66319a17ae40d6517ccc6cb8e7d289e9c999a7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3d4114bb8b8da0c2df2a468864e1d02c8cc87dee5d484fb8c84f923b2c394fd1
[INFO] running `Command { std: "docker" "start" "-a" "3d4114bb8b8da0c2df2a468864e1d02c8cc87dee5d484fb8c84f923b2c394fd1", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/lib.rs:257:10
[INFO] [stderr]     |
[INFO] [stderr] 257 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/lib.rs:350:61
[INFO] [stderr]     |
[INFO] [stderr] 350 |     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stderr]     |                                                             ^                ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 350 -     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stderr] 350 +     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, (usize, &'a str) > {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/lib.rs:361:10
[INFO] [stderr]     |
[INFO] [stderr] 361 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/lib.rs:401:10
[INFO] [stderr]     |
[INFO] [stderr] 401 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/lib.rs:705:10
[INFO] [stderr]     |
[INFO] [stderr] 705 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/lib.rs:10:13
[INFO] [stderr]     |
[INFO] [stderr]  10 |             _ => false
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr] ...
[INFO] [stderr] 235 |             (Some(a), Some(_b)) => matches!(a, _b) && id_match(self, other),
[INFO] [stderr]     |                                    ---------------
[INFO] [stderr]     |                                    |           |
[INFO] [stderr]     |                                    |           matches any value
[INFO] [stderr]     |                                    in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]     = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/lib.rs:10:13
[INFO] [stderr]     |
[INFO] [stderr]  10 |             _ => false
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr] ...
[INFO] [stderr] 488 |         matches!(self, other)
[INFO] [stderr]     |         ---------------------
[INFO] [stderr]     |         |              |
[INFO] [stderr]     |         |              matches any value
[INFO] [stderr]     |         in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `matches` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> src/lib.rs:487:18
[INFO] [stderr]     |
[INFO] [stderr] 487 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> src/lib.rs:488:24
[INFO] [stderr]     |
[INFO] [stderr] 488 |         matches!(self, other)
[INFO] [stderr]     |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/lib.rs:604:21
[INFO] [stderr]     |
[INFO] [stderr] 603 |                     key_subgraph => parse_stmt_list_and_return(None, 2),
[INFO] [stderr]     |                     ------------ matches any value
[INFO] [stderr] 604 |                     _ => Err((0, "expecting subgraph")),
[INFO] [stderr]     |                     ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] 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] [stderr]    --> src/lib.rs:597:13
[INFO] [stderr]     |
[INFO] [stderr] 597 |         let key_subgraph: &str = "subgraph";
[INFO] [stderr]     |             ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/lib.rs:609:21
[INFO] [stderr]     |
[INFO] [stderr] 608 |                     (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3),
[INFO] [stderr]     |                     ---------------------- matches all the relevant values
[INFO] [stderr] 609 |                     (_, Ok(_)) => Err((0, "expecting subgraph")),
[INFO] [stderr]     |                     ^^^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_subgraph`
[INFO] [stderr]    --> src/lib.rs:597:13
[INFO] [stderr]     |
[INFO] [stderr] 597 |         let key_subgraph: &str = "subgraph";
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `right_brace`
[INFO] [stderr]    --> src/lib.rs:598:13
[INFO] [stderr]     |
[INFO] [stderr] 598 |         let right_brace: &str = "}";
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `right_brace`
[INFO] [stderr]    --> src/lib.rs:600:42
[INFO] [stderr]     |
[INFO] [stderr] 600 |             (Some(idx_left_brace), Some(&right_brace)) => match idx_left_brace {
[INFO] [stderr]     |                                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_brace`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_subgraph`
[INFO] [stderr]    --> src/lib.rs:603:21
[INFO] [stderr]     |
[INFO] [stderr] 603 |                     key_subgraph => parse_stmt_list_and_return(None, 2),
[INFO] [stderr]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_subgraph`
[INFO] [stderr]    --> src/lib.rs:608:22
[INFO] [stderr]     |
[INFO] [stderr] 608 |                     (key_subgraph, Ok(id)) => parse_stmt_list_and_return(Some(id), 3),
[INFO] [stderr]     |                      ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_subgraph`
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get` and `len` are never used
[INFO] [stderr]    --> src/lib.rs:421:8
[INFO] [stderr]     |
[INFO] [stderr] 384 | impl<'a> AList<'a> {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 421 |     fn get(&self, key: &str) -> Option<&IdWrapper<'a>> {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 425 |     fn len(&self) -> usize {
[INFO] [stderr]     |        ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `key` and `attr_list` are never read
[INFO] [stderr]    --> src/lib.rs:504:5
[INFO] [stderr]     |
[INFO] [stderr] 503 | pub struct AttrStmt<'a> {
[INFO] [stderr]     |            -------- fields in this struct
[INFO] [stderr] 504 |     key: AttrStmtKey,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 505 |     attr_list: AttrList<'a>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id` and `attr_list` are never read
[INFO] [stderr]    --> src/lib.rs:533:5
[INFO] [stderr]     |
[INFO] [stderr] 532 | pub struct NodeStmt<'a> {
[INFO] [stderr]     |            -------- fields in this struct
[INFO] [stderr] 533 |     id: NodeId<'a>,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 534 |     attr_list: Option<AttrList<'a>>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id` and `stmt_list` are never read
[INFO] [stderr]    --> src/lib.rs:577:5
[INFO] [stderr]     |
[INFO] [stderr] 576 | pub struct SubGraph<'a> {
[INFO] [stderr]     |            -------- fields in this struct
[INFO] [stderr] 577 |     id: Option<dot::Id<'a>>,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 578 |     stmt_list: StmtList<'a>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `attr_list` is never read
[INFO] [stderr]    --> src/lib.rs:718:5
[INFO] [stderr]     |
[INFO] [stderr] 715 | pub struct EdgeStmt<'a> {
[INFO] [stderr]     |            -------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 718 |     attr_list: Option<AttrList<'a>>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `dot_parse` (lib) generated 21 warnings (run `cargo fix --lib -p dot_parse` to apply 8 suggestions)
[INFO] [stderr] warning: field `attr_list` is never read
[INFO] [stderr]    --> src/lib.rs:505:5
[INFO] [stderr]     |
[INFO] [stderr] 503 | pub struct AttrStmt<'a> {
[INFO] [stderr]     |            -------- field in this struct
[INFO] [stderr] 504 |     key: AttrStmtKey,
[INFO] [stderr] 505 |     attr_list: AttrList<'a>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `stmt_list` is never read
[INFO] [stderr]    --> src/lib.rs:578:5
[INFO] [stderr]     |
[INFO] [stderr] 576 | pub struct SubGraph<'a> {
[INFO] [stderr]     |            -------- field in this struct
[INFO] [stderr] 577 |     id: Option<dot::Id<'a>>,
[INFO] [stderr] 578 |     stmt_list: StmtList<'a>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/lib.rs:948:35
[INFO] [stderr]     |
[INFO] [stderr] 948 |         assert!(!alist_5.is_ok(), alist_5.unwrap());
[INFO] [stderr]     |                                   ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: add a "{:?}" format string to use the `Debug` implementation of `AList<'_>`
[INFO] [stderr]     |
[INFO] [stderr] 948 |         assert!(!alist_5.is_ok(), "{:?}", alist_5.unwrap());
[INFO] [stderr]     |                                   +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/lib.rs:951:35
[INFO] [stderr]     |
[INFO] [stderr] 951 |         assert!(!alist_6.is_ok(), alist_6.unwrap());
[INFO] [stderr]     |                                   ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{:?}" format string to use the `Debug` implementation of `AList<'_>`
[INFO] [stderr]     |
[INFO] [stderr] 951 |         assert!(!alist_6.is_ok(), "{:?}", alist_6.unwrap());
[INFO] [stderr]     |                                   +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/lib.rs:992:41
[INFO] [stderr]     |
[INFO] [stderr] 992 |             assert!(!attr_list.is_ok(), attr_list.unwrap());
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{:?}" format string to use the `Debug` implementation of `AttrList<'_>`
[INFO] [stderr]     |
[INFO] [stderr] 992 |             assert!(!attr_list.is_ok(), "{:?}", attr_list.unwrap());
[INFO] [stderr]     |                                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/lib.rs:997:41
[INFO] [stderr]     |
[INFO] [stderr] 997 |             assert!(!attr_list.is_ok(), attr_list.unwrap());
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{:?}" format string to use the `Debug` implementation of `AttrList<'_>`
[INFO] [stderr]     |
[INFO] [stderr] 997 |             assert!(!attr_list.is_ok(), "{:?}", attr_list.unwrap());
[INFO] [stderr]     |                                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1005:41
[INFO] [stderr]      |
[INFO] [stderr] 1005 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stderr]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1043:41
[INFO] [stderr]      |
[INFO] [stderr] 1043 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stderr]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1055:41
[INFO] [stderr]      |
[INFO] [stderr] 1055 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stderr]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1061:41
[INFO] [stderr]      |
[INFO] [stderr] 1061 |             assert!(!node_stmt.is_ok(), node_stmt.unwrap());
[INFO] [stderr]      |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1075:36
[INFO] [stderr]      |
[INFO] [stderr] 1075 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1075 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1075 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1088:36
[INFO] [stderr]      |
[INFO] [stderr] 1088 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1088 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1088 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1102:36
[INFO] [stderr]      |
[INFO] [stderr] 1102 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1102 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1102 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1112:36
[INFO] [stderr]      |
[INFO] [stderr] 1112 |                     assert!(false, subgraph);
[INFO] [stderr]      |                                    ^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1125:36
[INFO] [stderr]      |
[INFO] [stderr] 1125 |                     assert!(false, subgraph);
[INFO] [stderr]      |                                    ^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1145:36
[INFO] [stderr]      |
[INFO] [stderr] 1145 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1145 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1145 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1159:36
[INFO] [stderr]      |
[INFO] [stderr] 1159 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1159 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1159 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1189:36
[INFO] [stderr]      |
[INFO] [stderr] 1189 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1189 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1189 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1203:36
[INFO] [stderr]      |
[INFO] [stderr] 1203 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1203 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1203 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1222:36
[INFO] [stderr]      |
[INFO] [stderr] 1222 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1222 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1222 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stdout] running 11 tests
[INFO] [stderr]     --> src/lib.rs:1236:36
[INFO] [stderr]      |
[INFO] [stderr] 1236 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1236 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1236 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1246:55
[INFO] [stderr]      |
[INFO] [stderr] 1246 |                     assert!(stmt.attr_stmt.is_some(), stmt);
[INFO] [stderr]      |                                                       ^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{:?}" format string to use the `Debug` implementation of `Stmt<'_>`
[INFO] [stderr]      |
[INFO] [stderr] 1246 |                     assert!(stmt.attr_stmt.is_some(), "{:?}", stmt);
[INFO] [stderr]      |                                                       +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1250:36
[INFO] [stderr]      |
[INFO] [stderr] 1250 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1250 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1250 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1260:57
[INFO] [stderr]      |
[INFO] [stderr] 1260 |                     assert!(stmt.assign_stmt.is_some(), stmt);
[INFO] [stderr]      |                                                         ^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{:?}" format string to use the `Debug` implementation of `Stmt<'_>`
[INFO] [stderr]      |
[INFO] [stderr] 1260 |                     assert!(stmt.assign_stmt.is_some(), "{:?}", stmt);
[INFO] [stderr]      |                                                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1266:36
[INFO] [stderr]      |
[INFO] [stderr] 1266 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1266 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1266 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1276:54
[INFO] [stderr]      |
[INFO] [stderr] 1276 |                     assert!(stmt.subgraph.is_some(), stmt);
[INFO] [stderr]      |                                                      ^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{:?}" format string to use the `Debug` implementation of `Stmt<'_>`
[INFO] [stderr]      |
[INFO] [stderr] 1276 |                     assert!(stmt.subgraph.is_some(), "{:?}", stmt);
[INFO] [stderr]      |                                                      +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1279:36
[INFO] [stderr]      |
[INFO] [stderr] 1279 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1279 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1279 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/lib.rs:1298:36
[INFO] [stderr]      |
[INFO] [stderr] 1298 |                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1298 -                     assert!(false, format!("{} {}", idx_err, err_msg));
[INFO] [stderr] 1298 +                     assert!(false, "{} {}", idx_err, err_msg);
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: `dot_parse` (lib test) generated 44 warnings (16 duplicates) (run `cargo fix --lib -p dot_parse --tests` to apply 20 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/libdot_parse-bf56f8c3f7574849)
[INFO] [stdout] test tests::parse_node_stmt ... ok
[INFO] [stdout] test tests::parse_edge_stmt ... ok
[INFO] [stdout] test tests::parse_nodeid ... ok
[INFO] [stdout] test tests::parse_edge_rhs ... ok
[INFO] [stdout] test tests::format_print ... ok
[INFO] [stdout] test tests::parse_alist ... ok
[INFO] [stdout] test tests::parse_attr_stmt ... ok
[INFO] [stdout] test tests::parse_stmt ... ok
[INFO] [stdout] test tests::parse_attrlist ... ok
[INFO] [stdout] test tests::parse_stmt_list ... ok
[INFO] [stdout] test tests::parse_subgraph ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin.rs (/opt/rustwide/target/debug/deps/dot_parse-1dbe939bf335f382)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests libdot_parse
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/lib.rs:257:10
[INFO] [stderr]     |
[INFO] [stderr] 257 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/lib.rs:350:61
[INFO] [stderr]     |
[INFO] [stderr] 350 |     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stderr]     |                                                             ^                ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 350 -     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, ((usize, &'a str))> {
[INFO] [stderr] 350 +     fn parse_from(tokens: &[&'a str]) -> Result<NodeId<'a>, (usize, &'a str) > {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/lib.rs:361:10
[INFO] [stderr]     |
[INFO] [stderr] 361 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/lib.rs:401:10
[INFO] [stderr]     |
[INFO] [stderr] 401 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/lib.rs:705:10
[INFO] [stderr]     |
[INFO] [stderr] 705 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: 5 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3d4114bb8b8da0c2df2a468864e1d02c8cc87dee5d484fb8c84f923b2c394fd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d4114bb8b8da0c2df2a468864e1d02c8cc87dee5d484fb8c84f923b2c394fd1", kill_on_drop: false }`
[INFO] [stdout] 3d4114bb8b8da0c2df2a468864e1d02c8cc87dee5d484fb8c84f923b2c394fd1
