[INFO] fetching crate actiondb 0.7.0...
[INFO] testing actiondb-0.7.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate actiondb 0.7.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate actiondb 0.7.0
[INFO] finished tweaking crates.io crate actiondb 0.7.0
[INFO] tweaked toml for crates.io crate actiondb 0.7.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate actiondb 0.7.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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 47 packages to latest compatible versions
[INFO] [stderr]       Adding clap v2.34.0 (available: v4.5.51)
[INFO] [stderr]       Adding log v0.3.9 (available: v0.4.28)
[INFO] [stderr]       Adding serde v0.7.15 (available: v1.0.228)
[INFO] [stderr]       Adding serde_json v0.7.4 (available: v1.0.145)
[INFO] [stderr]       Adding serde_yaml v0.2.5 (available: v0.9.34+deprecated)
[INFO] [stderr]       Adding uuid v0.1.18 (available: v1.18.1)
[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] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded log v0.3.9
[INFO] [stderr]   Downloaded serde_yaml v0.2.5
[INFO] [stderr]   Downloaded uuid v0.1.18
[INFO] [stderr]   Downloaded serde v0.7.15
[INFO] [stderr]   Downloaded itoa v0.1.1
[INFO] [stderr]   Downloaded serde_json v0.7.4
[INFO] [stderr]   Downloaded yaml-rust v0.3.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] b866c15fbb7301bb8755dd3c87c275d71050cd2ac2b08ebf0c3eb8953aae5fd4
[INFO] running `Command { std: "docker" "start" "-a" "b866c15fbb7301bb8755dd3c87c275d71050cd2ac2b08ebf0c3eb8953aae5fd4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b866c15fbb7301bb8755dd3c87c275d71050cd2ac2b08ebf0c3eb8953aae5fd4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b866c15fbb7301bb8755dd3c87c275d71050cd2ac2b08ebf0c3eb8953aae5fd4", kill_on_drop: false }`
[INFO] [stdout] b866c15fbb7301bb8755dd3c87c275d71050cd2ac2b08ebf0c3eb8953aae5fd4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 93a99a5055269aeb827b2c0a2c43faa103502db981890c9e851a52ccb26a4b91
[INFO] running `Command { std: "docker" "start" "-a" "93a99a5055269aeb827b2c0a2c43faa103502db981890c9e851a52ccb26a4b91", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling serde v0.7.15
[INFO] [stderr]    Compiling itoa v0.1.1
[INFO] [stderr]    Compiling rustc-serialize v0.3.25
[INFO] [stderr]    Compiling yaml-rust v0.3.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling log v0.3.9
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling serde_yaml v0.2.5
[INFO] [stderr]    Compiling serde_json v0.7.4
[INFO] [stderr]    Compiling uuid v0.1.18
[INFO] [stderr]    Compiling actiondb v0.7.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/parsers/mod.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn set_name(&mut self, Option<String>);
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Option<String>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 try!(Err(serde::de::Error::missing_field("uuid")))
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |         try!(visitor.end());
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:96:33
[INFO] [stdout]    |
[INFO] [stdout] 96 |         while let Some(field) = try!(visitor.visit_key()) {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:98:44
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 Field::NAME => name = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:99:44
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 Field::UUID => uuid = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:100:50
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 Field::PATTERN => pattern = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:101:48
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 Field::VALUES => values = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:102:44
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 Field::TAGS => tags = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:103:61
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 Field::TESTMESSAGES => test_messages = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:107:20
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let uuid = try!(PatternVisitor::parse_uuid::<V>(uuid));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |                         try!(Err(serde::de::Error::custom("Invalid field 'pattern'")))
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 try!(Err(serde::de::Error::missing_field("pattern")))
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         try!(visitor.end());
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:51:34
[INFO] [stdout]    |
[INFO] [stdout] 51 |         while let Some (field) = try!(visitor.visit_key()) {
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:53:52
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 Field::PATTERNS => patterns = Some(try!(visitor.visit_value()))
[INFO] [stdout]    |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 |             None => try!(visitor.missing_field("patterns")),
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         try!(visitor.end());
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:56:33
[INFO] [stdout]    |
[INFO] [stdout] 56 |         while let Some(field) = try!(visitor.visit_key()) {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:58:50
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 Field::MESSAGE => message = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:59:48
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 Field::VALUES => values = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:60:44
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 Field::TAGS => tags = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:66:21
[INFO] [stdout]    |
[INFO] [stdout] 66 |             None => try!(visitor.missing_field("message")),
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/message.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         try!(self.test_tags(result));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/message.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |             try!(TestMessage::test_value(key, value, &merged_values, result));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/message.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 try!(self.test_expected_tags_can_be_found_in_got_tags(expected_tags,
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |             try!(Self::check_pattern::<F::Matcher>(&mut matcher, pattern));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut pattern = try!(result);
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |             try!(Self::check_test_message(msg, &result, uuid));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:55:26
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let result = try!(matcher.parse(msg.message())
[INFO] [stdout]    |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut file = try!(File::open(pattern_file_path));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let file = try!(PatternLoader::load_file(pattern_file_path));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:34:20
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let file = try!(PatternLoader::load_file(pattern_file_path));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 match try!(extension.to_str().ok_or(BuildError::NotUtf8FileName)) {
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:45:39
[INFO] [stdout]    |
[INFO] [stdout] 45 |                         let content = try!(PatternLoader::read(pattern_file_path));
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:46:36
[INFO] [stdout]    |
[INFO] [stdout] 46 |                         let file = try!(serde_json::from_str::<PatternFile>(&content));
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:50:39
[INFO] [stdout]    |
[INFO] [stdout] 50 |                         let content = try!(PatternLoader::read(pattern_file_path));
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:51:36
[INFO] [stdout]    |
[INFO] [stdout] 51 |                         let file = try!(serde_yaml::from_str::<PatternFile>(&content));
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `clippy`
[INFO] [stdout]  --> src/grammar/parser/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[allow(clippy)]
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         try!(write!(fmt, "error at {}:{}: expected ", self.line, self.column));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             try!(write!(fmt, "EOF"));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |             try!(write!(fmt,
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             try!(write!(fmt, "one of `{}`", escape_default(iter.next().unwrap())));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |                 try!(write!(fmt, ", `{}`", escape_default(elem)));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:890:24
[INFO] [stdout]     |
[INFO] [stdout] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:890:36
[INFO] [stdout]     |
[INFO] [stdout] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stdout]     |                                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:907:48
[INFO] [stdout]     |
[INFO] [stdout] 907 | ...                   'a'...'z' |
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:909:48
[INFO] [stdout]     |
[INFO] [stdout] 909 | ...                   'A'...'Z' |
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:910:48
[INFO] [stdout]     |
[INFO] [stdout] 910 | ...                   '0'...'9' |
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]     --> src/grammar/parser/pattern_parser.rs:1164:32
[INFO] [stdout]      |
[INFO] [stdout] 1164 | ...                   '0'...'9' => Matched(next, ()),
[INFO] [stdout]      |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> src/parsers/set.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]    --> src/parsers/set.rs:103:26
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut hasher = SipHasher::new();
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> src/parsers/int.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/int.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> src/parsers/greedy.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/greedy.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |     parser: &'a Parser,
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     parser: &'a dyn Parser,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/parser.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |     parser: Box<Parser>,
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     parser: Box<dyn Parser>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/matcher/compiled_pattern.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Parser(Box<Parser>),
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Parser(Box<dyn Parser>),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |     parser: Box<Parser>,
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 129 |     parser: Box<dyn Parser>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/matcher/pattern/source.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type PatternSource = Source<Item=BuildResult>;
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type PatternSource = dyn Source<Item=BuildResult>;
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:256:61
[INFO] [stdout]     |
[INFO] [stdout] 256 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stdout]     |                                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 256 |                                           -> RuleResult<Box<dyn Parser>> {
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:268:65
[INFO] [stdout]     |
[INFO] [stdout] 268 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stdout]     |                                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 268 |                                               -> RuleResult<Box<dyn Parser>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:429:65
[INFO] [stdout]     |
[INFO] [stdout] 429 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stdout]     |                                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 429 |                                               -> RuleResult<Box<dyn Parser>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:22:34
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn boxed_clone(&self) -> Box<Parser>;
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn boxed_clone(&self) -> Box<dyn Parser>;
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |                    -> Box<Parser>;
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |                    -> Box<dyn Parser>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:60:27
[INFO] [stdout]    |
[INFO] [stdout] 60 |                    -> Box<Parser>;
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |                    -> Box<dyn Parser>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:61:72
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<Parser>;
[INFO] [stdout]    |                                                                        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<dyn Parser>;
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/interface.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<dyn Parser>;
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/interface.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<dyn Parser>;
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/mod.rs:23:34
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn boxed_clone(&self) -> Box<Matcher>;
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn boxed_clone(&self) -> Box<dyn Matcher>;
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:37:28
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(parser: &'a Parser, value: &'b str) -> ParseResult<'a, 'b> {
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(parser: &'a dyn Parser, value: &'b str) -> ParseResult<'a, 'b> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:44:33
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn parser(&self) -> &'a Parser {
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn parser(&self) -> &'a dyn Parser {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/set.rs:96:34
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/int.rs:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/greedy.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/parser.rs:103:30
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn parser(&self) -> &Box<Parser> {
[INFO] [stdout]     |                              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn parser(&self) -> &Box<dyn Parser> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/parser_factory.rs:38:27
[INFO] [stdout]    |
[INFO] [stdout] 38 |                    -> Box<Parser> {
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |                    -> Box<dyn Parser> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/parser_factory.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |                    -> Box<Parser> {
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |                    -> Box<dyn Parser> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/parser_factory.rs:54:72
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<Parser> {
[INFO] [stdout]    |                                                                        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<dyn Parser> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/matcher.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn boxed_clone(&self) -> Box<Matcher> {
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn boxed_clone(&self) -> Box<dyn Matcher> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:183:30
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn parser(&self) -> &Box<Parser> {
[INFO] [stdout]     |                              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn parser(&self) -> &Box<dyn Parser> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:267:34
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn boxed_clone(&self) -> Box<Matcher> {
[INFO] [stdout]     |                                  ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn boxed_clone(&self) -> Box<dyn Matcher> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/parser.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(parser: Box<Parser>) -> ParserNode {
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(parser: Box<dyn Parser>) -> ParserNode {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/parser.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn parser(&self) -> &Parser {
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn parser(&self) -> &dyn Parser {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:214:42
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn lookup_parser(&mut self, parser: &Parser) -> Option<usize> {
[INFO] [stdout]     |                                          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn lookup_parser(&mut self, parser: &dyn Parser) -> Option<usize> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:277:49
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn insert_parser(&mut self, parser: Box<Parser>) -> &mut ParserNode {
[INFO] [stdout]     |                                                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn insert_parser(&mut self, parser: Box<dyn Parser>) -> &mut ParserNode {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/compiled_pattern.rs:40:42
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn parser(&mut self, parser: Box<Parser>) -> &mut CompiledPatternBuilder {
[INFO] [stdout]    |                                          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn parser(&mut self, parser: Box<dyn Parser>) -> &mut CompiledPatternBuilder {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/impls.rs:49:59
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn insert_literal(&mut self, literal: String) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn insert_literal(&mut self, literal: String) -> &mut dyn Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/impls.rs:72:45
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<dyn Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/impls.rs:72:62
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut dyn Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:144:28
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn new(parser: Box<Parser>) -> ParserE {
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn new(parser: Box<dyn Parser>) -> ParserE {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]    --> src/parsers/set.rs:103:37
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut hasher = SipHasher::new();
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/int.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/greedy.rs:45:37
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:306:33
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut entry: &mut Entry<ST = Self> = match token {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut entry: &mut dyn Entry<ST = Self> = match token {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:61:57
[INFO] [stdout]    |
[INFO] [stdout] 61 |             BuildError::TestMessage(ref error) => error.description(),
[INFO] [stdout]    |                                                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:62:48
[INFO] [stdout]    |
[INFO] [stdout] 62 |             BuildError::Io(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:63:55
[INFO] [stdout]    |
[INFO] [stdout] 63 |             BuildError::DeserJson(ref error) => error.description(),
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:64:55
[INFO] [stdout]    |
[INFO] [stdout] 64 |             BuildError::DeserYaml(ref error) => error.description(),
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:72:57
[INFO] [stdout]    |
[INFO] [stdout] 72 |             BuildError::TestMessage(ref error) => error.cause(),
[INFO] [stdout]    |                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:73:48
[INFO] [stdout]    |
[INFO] [stdout] 73 |             BuildError::Io(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:74:55
[INFO] [stdout]    |
[INFO] [stdout] 74 |             BuildError::DeserJson(ref error) => error.cause(),
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:75:55
[INFO] [stdout]    |
[INFO] [stdout] 75 |             BuildError::DeserYaml(ref error) => error.cause(),
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:113:33
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut entry: &mut Entry<SA=SuffixTable> = match token {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut entry: &mut dyn Entry<SA=SuffixTable> = match token {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParserEntry`
[INFO] [stdout]   --> src/matcher/trie/node/mod.rs:11:44
[INFO] [stdout]    |
[INFO] [stdout] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry};
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LiteralEntry`
[INFO] [stdout]   --> src/matcher/trie/node/mod.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry};
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut entry: &mut Entry<ST = Self> = match token {
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut entry: &mut Entry<SA=SuffixTable> = match token {
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parser` is never used
[INFO] [stdout]   --> src/matcher/suffix_array/interface.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub trait ParserEntry: Entry + Clone {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] 33 |     fn parse<'a, 'b>(&'a self, value: &'b str) -> Option<MatchResult<'a, 'b>>;
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.75s
[INFO] running `Command { std: "docker" "inspect" "93a99a5055269aeb827b2c0a2c43faa103502db981890c9e851a52ccb26a4b91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93a99a5055269aeb827b2c0a2c43faa103502db981890c9e851a52ccb26a4b91", kill_on_drop: false }`
[INFO] [stdout] 93a99a5055269aeb827b2c0a2c43faa103502db981890c9e851a52ccb26a4b91
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] c1639fe8308b7c75c9ee9f82e115c7fab3fa69b8707d89e2098355d58768bee2
[INFO] running `Command { std: "docker" "start" "-a" "c1639fe8308b7c75c9ee9f82e115c7fab3fa69b8707d89e2098355d58768bee2", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/parsers/mod.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn set_name(&mut self, Option<String>);
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Option<String>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 try!(Err(serde::de::Error::missing_field("uuid")))
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |         try!(visitor.end());
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:96:33
[INFO] [stdout]    |
[INFO] [stdout] 96 |         while let Some(field) = try!(visitor.visit_key()) {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:98:44
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 Field::NAME => name = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:99:44
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 Field::UUID => uuid = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:100:50
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 Field::PATTERN => pattern = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:101:48
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 Field::VALUES => values = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:102:44
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 Field::TAGS => tags = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:103:61
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 Field::TESTMESSAGES => test_messages = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:107:20
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let uuid = try!(PatternVisitor::parse_uuid::<V>(uuid));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |                         try!(Err(serde::de::Error::custom("Invalid field 'pattern'")))
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 try!(Err(serde::de::Error::missing_field("pattern")))
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         try!(visitor.end());
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:51:34
[INFO] [stdout]    |
[INFO] [stdout] 51 |         while let Some (field) = try!(visitor.visit_key()) {
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:53:52
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 Field::PATTERNS => patterns = Some(try!(visitor.visit_value()))
[INFO] [stdout]    |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 |             None => try!(visitor.missing_field("patterns")),
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         try!(visitor.end());
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:56:33
[INFO] [stdout]    |
[INFO] [stdout] 56 |         while let Some(field) = try!(visitor.visit_key()) {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:58:50
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 Field::MESSAGE => message = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:59:48
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 Field::VALUES => values = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:60:44
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 Field::TAGS => tags = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:66:21
[INFO] [stdout]    |
[INFO] [stdout] 66 |             None => try!(visitor.missing_field("message")),
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/message.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         try!(self.test_tags(result));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/message.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |             try!(TestMessage::test_value(key, value, &merged_values, result));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/message.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 try!(self.test_expected_tags_can_be_found_in_got_tags(expected_tags,
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |             try!(Self::check_pattern::<F::Matcher>(&mut matcher, pattern));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut pattern = try!(result);
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |             try!(Self::check_test_message(msg, &result, uuid));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:55:26
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let result = try!(matcher.parse(msg.message())
[INFO] [stdout]    |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut file = try!(File::open(pattern_file_path));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let file = try!(PatternLoader::load_file(pattern_file_path));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:34:20
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let file = try!(PatternLoader::load_file(pattern_file_path));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 match try!(extension.to_str().ok_or(BuildError::NotUtf8FileName)) {
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:45:39
[INFO] [stdout]    |
[INFO] [stdout] 45 |                         let content = try!(PatternLoader::read(pattern_file_path));
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:46:36
[INFO] [stdout]    |
[INFO] [stdout] 46 |                         let file = try!(serde_json::from_str::<PatternFile>(&content));
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:50:39
[INFO] [stdout]    |
[INFO] [stdout] 50 |                         let content = try!(PatternLoader::read(pattern_file_path));
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:51:36
[INFO] [stdout]    |
[INFO] [stdout] 51 |                         let file = try!(serde_yaml::from_str::<PatternFile>(&content));
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `clippy`
[INFO] [stdout]  --> src/grammar/parser/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[allow(clippy)]
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         try!(write!(fmt, "error at {}:{}: expected ", self.line, self.column));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             try!(write!(fmt, "EOF"));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |             try!(write!(fmt,
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             try!(write!(fmt, "one of `{}`", escape_default(iter.next().unwrap())));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |                 try!(write!(fmt, ", `{}`", escape_default(elem)));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:890:24
[INFO] [stdout]     |
[INFO] [stdout] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:890:36
[INFO] [stdout]     |
[INFO] [stdout] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stdout]     |                                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:907:48
[INFO] [stdout]     |
[INFO] [stdout] 907 | ...                   'a'...'z' |
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:909:48
[INFO] [stdout]     |
[INFO] [stdout] 909 | ...                   'A'...'Z' |
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:910:48
[INFO] [stdout]     |
[INFO] [stdout] 910 | ...                   '0'...'9' |
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]     --> src/grammar/parser/pattern_parser.rs:1164:32
[INFO] [stdout]      |
[INFO] [stdout] 1164 | ...                   '0'...'9' => Matched(next, ()),
[INFO] [stdout]      |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> src/parsers/set.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]    --> src/parsers/set.rs:103:26
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut hasher = SipHasher::new();
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> src/parsers/int.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/int.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> src/parsers/greedy.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/greedy.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |     parser: &'a Parser,
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     parser: &'a dyn Parser,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/parser.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |     parser: Box<Parser>,
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     parser: Box<dyn Parser>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/matcher/compiled_pattern.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Parser(Box<Parser>),
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Parser(Box<dyn Parser>),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |     parser: Box<Parser>,
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 129 |     parser: Box<dyn Parser>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/matcher/pattern/source.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type PatternSource = Source<Item=BuildResult>;
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type PatternSource = dyn Source<Item=BuildResult>;
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:256:61
[INFO] [stdout]     |
[INFO] [stdout] 256 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stdout]     |                                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 256 |                                           -> RuleResult<Box<dyn Parser>> {
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:268:65
[INFO] [stdout]     |
[INFO] [stdout] 268 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stdout]     |                                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 268 |                                               -> RuleResult<Box<dyn Parser>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:429:65
[INFO] [stdout]     |
[INFO] [stdout] 429 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stdout]     |                                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 429 |                                               -> RuleResult<Box<dyn Parser>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:22:34
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn boxed_clone(&self) -> Box<Parser>;
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn boxed_clone(&self) -> Box<dyn Parser>;
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |                    -> Box<Parser>;
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |                    -> Box<dyn Parser>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:60:27
[INFO] [stdout]    |
[INFO] [stdout] 60 |                    -> Box<Parser>;
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |                    -> Box<dyn Parser>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:61:72
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<Parser>;
[INFO] [stdout]    |                                                                        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<dyn Parser>;
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/interface.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<dyn Parser>;
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/interface.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<dyn Parser>;
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/mod.rs:23:34
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn boxed_clone(&self) -> Box<Matcher>;
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn boxed_clone(&self) -> Box<dyn Matcher>;
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:37:28
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(parser: &'a Parser, value: &'b str) -> ParseResult<'a, 'b> {
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(parser: &'a dyn Parser, value: &'b str) -> ParseResult<'a, 'b> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:44:33
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn parser(&self) -> &'a Parser {
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn parser(&self) -> &'a dyn Parser {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/set.rs:96:34
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/int.rs:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/greedy.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/parser.rs:103:30
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn parser(&self) -> &Box<Parser> {
[INFO] [stdout]     |                              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn parser(&self) -> &Box<dyn Parser> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/parser_factory.rs:38:27
[INFO] [stdout]    |
[INFO] [stdout] 38 |                    -> Box<Parser> {
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |                    -> Box<dyn Parser> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/parser_factory.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |                    -> Box<Parser> {
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |                    -> Box<dyn Parser> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/parser_factory.rs:54:72
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<Parser> {
[INFO] [stdout]    |                                                                        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<dyn Parser> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/matcher.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn boxed_clone(&self) -> Box<Matcher> {
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn boxed_clone(&self) -> Box<dyn Matcher> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:183:30
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn parser(&self) -> &Box<Parser> {
[INFO] [stdout]     |                              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn parser(&self) -> &Box<dyn Parser> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:267:34
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn boxed_clone(&self) -> Box<Matcher> {
[INFO] [stdout]     |                                  ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn boxed_clone(&self) -> Box<dyn Matcher> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling actiondb v0.7.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/parser.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(parser: Box<Parser>) -> ParserNode {
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(parser: Box<dyn Parser>) -> ParserNode {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/parser.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn parser(&self) -> &Parser {
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn parser(&self) -> &dyn Parser {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:214:42
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn lookup_parser(&mut self, parser: &Parser) -> Option<usize> {
[INFO] [stdout]     |                                          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn lookup_parser(&mut self, parser: &dyn Parser) -> Option<usize> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:277:49
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn insert_parser(&mut self, parser: Box<Parser>) -> &mut ParserNode {
[INFO] [stdout]     |                                                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn insert_parser(&mut self, parser: Box<dyn Parser>) -> &mut ParserNode {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/compiled_pattern.rs:40:42
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn parser(&mut self, parser: Box<Parser>) -> &mut CompiledPatternBuilder {
[INFO] [stdout]    |                                          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn parser(&mut self, parser: Box<dyn Parser>) -> &mut CompiledPatternBuilder {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/impls.rs:49:59
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn insert_literal(&mut self, literal: String) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn insert_literal(&mut self, literal: String) -> &mut dyn Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/impls.rs:72:45
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<dyn Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/impls.rs:72:62
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut dyn Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:144:28
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn new(parser: Box<Parser>) -> ParserE {
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn new(parser: Box<dyn Parser>) -> ParserE {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]    --> src/parsers/set.rs:103:37
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut hasher = SipHasher::new();
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/int.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/greedy.rs:45:37
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:306:33
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut entry: &mut Entry<ST = Self> = match token {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut entry: &mut dyn Entry<ST = Self> = match token {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:61:57
[INFO] [stdout]    |
[INFO] [stdout] 61 |             BuildError::TestMessage(ref error) => error.description(),
[INFO] [stdout]    |                                                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:62:48
[INFO] [stdout]    |
[INFO] [stdout] 62 |             BuildError::Io(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:63:55
[INFO] [stdout]    |
[INFO] [stdout] 63 |             BuildError::DeserJson(ref error) => error.description(),
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:64:55
[INFO] [stdout]    |
[INFO] [stdout] 64 |             BuildError::DeserYaml(ref error) => error.description(),
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:72:57
[INFO] [stdout]    |
[INFO] [stdout] 72 |             BuildError::TestMessage(ref error) => error.cause(),
[INFO] [stdout]    |                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:73:48
[INFO] [stdout]    |
[INFO] [stdout] 73 |             BuildError::Io(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:74:55
[INFO] [stdout]    |
[INFO] [stdout] 74 |             BuildError::DeserJson(ref error) => error.cause(),
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:75:55
[INFO] [stdout]    |
[INFO] [stdout] 75 |             BuildError::DeserYaml(ref error) => error.cause(),
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:113:33
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut entry: &mut Entry<SA=SuffixTable> = match token {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut entry: &mut dyn Entry<SA=SuffixTable> = match token {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParserEntry`
[INFO] [stdout]   --> src/matcher/trie/node/mod.rs:11:44
[INFO] [stdout]    |
[INFO] [stdout] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry};
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LiteralEntry`
[INFO] [stdout]   --> src/matcher/trie/node/mod.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry};
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut entry: &mut Entry<ST = Self> = match token {
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut entry: &mut Entry<SA=SuffixTable> = match token {
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parser` is never used
[INFO] [stdout]   --> src/matcher/suffix_array/interface.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub trait ParserEntry: Entry + Clone {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] 33 |     fn parse<'a, 'b>(&'a self, value: &'b str) -> Option<MatchResult<'a, 'b>>;
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/parsers/mod.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn set_name(&mut self, Option<String>);
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Option<String>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 try!(Err(serde::de::Error::missing_field("uuid")))
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |         try!(visitor.end());
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:96:33
[INFO] [stdout]    |
[INFO] [stdout] 96 |         while let Some(field) = try!(visitor.visit_key()) {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:98:44
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 Field::NAME => name = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/deser.rs:99:44
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 Field::UUID => uuid = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:100:50
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 Field::PATTERN => pattern = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:101:48
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 Field::VALUES => values = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:102:44
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 Field::TAGS => tags = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:103:61
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 Field::TESTMESSAGES => test_messages = Some(try!(visitor.visit_value())),
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:107:20
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let uuid = try!(PatternVisitor::parse_uuid::<V>(uuid));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |                         try!(Err(serde::de::Error::custom("Invalid field 'pattern'")))
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matcher/pattern/deser.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 try!(Err(serde::de::Error::missing_field("pattern")))
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         try!(visitor.end());
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:51:34
[INFO] [stdout]    |
[INFO] [stdout] 51 |         while let Some (field) = try!(visitor.visit_key()) {
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:53:52
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 Field::PATTERNS => patterns = Some(try!(visitor.visit_value()))
[INFO] [stdout]    |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/file/deser.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 |             None => try!(visitor.missing_field("patterns")),
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         try!(visitor.end());
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:56:33
[INFO] [stdout]    |
[INFO] [stdout] 56 |         while let Some(field) = try!(visitor.visit_key()) {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:58:50
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 Field::MESSAGE => message = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:59:48
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 Field::VALUES => values = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:60:44
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 Field::TAGS => tags = Some(try!(visitor.visit_value())),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/deser.rs:66:21
[INFO] [stdout]    |
[INFO] [stdout] 66 |             None => try!(visitor.missing_field("message")),
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/message.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         try!(self.test_tags(result));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/message.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |             try!(TestMessage::test_value(key, value, &merged_values, result));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern/testmessage/message.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 try!(self.test_expected_tags_can_be_found_in_got_tags(expected_tags,
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |             try!(Self::check_pattern::<F::Matcher>(&mut matcher, pattern));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut pattern = try!(result);
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |             try!(Self::check_test_message(msg, &result, uuid));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_source/mod.rs:55:26
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let result = try!(matcher.parse(msg.message())
[INFO] [stdout]    |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut file = try!(File::open(pattern_file_path));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let file = try!(PatternLoader::load_file(pattern_file_path));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:34:20
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let file = try!(PatternLoader::load_file(pattern_file_path));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 match try!(extension.to_str().ok_or(BuildError::NotUtf8FileName)) {
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:45:39
[INFO] [stdout]    |
[INFO] [stdout] 45 |                         let content = try!(PatternLoader::read(pattern_file_path));
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:46:36
[INFO] [stdout]    |
[INFO] [stdout] 46 |                         let file = try!(serde_json::from_str::<PatternFile>(&content));
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:50:39
[INFO] [stdout]    |
[INFO] [stdout] 50 |                         let content = try!(PatternLoader::read(pattern_file_path));
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/pattern_loader.rs:51:36
[INFO] [stdout]    |
[INFO] [stdout] 51 |                         let file = try!(serde_yaml::from_str::<PatternFile>(&content));
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `clippy`
[INFO] [stdout]  --> src/grammar/parser/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[allow(clippy)]
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         try!(write!(fmt, "error at {}:{}: expected ", self.line, self.column));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             try!(write!(fmt, "EOF"));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |             try!(write!(fmt,
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             try!(write!(fmt, "one of `{}`", escape_default(iter.next().unwrap())));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/grammar/parser/pattern_parser.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |                 try!(write!(fmt, ", `{}`", escape_default(elem)));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:890:24
[INFO] [stdout]     |
[INFO] [stdout] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:890:36
[INFO] [stdout]     |
[INFO] [stdout] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stdout]     |                                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:907:48
[INFO] [stdout]     |
[INFO] [stdout] 907 | ...                   'a'...'z' |
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:909:48
[INFO] [stdout]     |
[INFO] [stdout] 909 | ...                   'A'...'Z' |
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:910:48
[INFO] [stdout]     |
[INFO] [stdout] 910 | ...                   '0'...'9' |
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]     --> src/grammar/parser/pattern_parser.rs:1164:32
[INFO] [stdout]      |
[INFO] [stdout] 1164 | ...                   '0'...'9' => Matched(next, ()),
[INFO] [stdout]      |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> src/parsers/set.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]    --> src/parsers/set.rs:103:26
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut hasher = SipHasher::new();
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> src/parsers/int.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/int.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> src/parsers/greedy.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/greedy.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |     parser: &'a Parser,
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     parser: &'a dyn Parser,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/parser.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |     parser: Box<Parser>,
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     parser: Box<dyn Parser>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/matcher/compiled_pattern.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Parser(Box<Parser>),
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Parser(Box<dyn Parser>),
[INFO] [stdout]   |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |     parser: Box<Parser>,
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 129 |     parser: Box<dyn Parser>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/matcher/pattern/source.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type PatternSource = Source<Item=BuildResult>;
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type PatternSource = dyn Source<Item=BuildResult>;
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:256:61
[INFO] [stdout]     |
[INFO] [stdout] 256 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stdout]     |                                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 256 |                                           -> RuleResult<Box<dyn Parser>> {
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:268:65
[INFO] [stdout]     |
[INFO] [stdout] 268 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stdout]     |                                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 268 |                                               -> RuleResult<Box<dyn Parser>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/grammar/parser/pattern_parser.rs:429:65
[INFO] [stdout]     |
[INFO] [stdout] 429 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stdout]     |                                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 429 |                                               -> RuleResult<Box<dyn Parser>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:22:34
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn boxed_clone(&self) -> Box<Parser>;
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn boxed_clone(&self) -> Box<dyn Parser>;
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |                    -> Box<Parser>;
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |                    -> Box<dyn Parser>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:60:27
[INFO] [stdout]    |
[INFO] [stdout] 60 |                    -> Box<Parser>;
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |                    -> Box<dyn Parser>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:61:72
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<Parser>;
[INFO] [stdout]    |                                                                        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<dyn Parser>;
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/interface.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<dyn Parser>;
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/interface.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<dyn Parser>;
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/mod.rs:23:34
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn boxed_clone(&self) -> Box<Matcher>;
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn boxed_clone(&self) -> Box<dyn Matcher>;
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:37:28
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(parser: &'a Parser, value: &'b str) -> ParseResult<'a, 'b> {
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(parser: &'a dyn Parser, value: &'b str) -> ParseResult<'a, 'b> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/mod.rs:44:33
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn parser(&self) -> &'a Parser {
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn parser(&self) -> &'a dyn Parser {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/set.rs:96:34
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/int.rs:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parsers/greedy.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stdout]    |                                  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/parser.rs:103:30
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn parser(&self) -> &Box<Parser> {
[INFO] [stdout]     |                              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn parser(&self) -> &Box<dyn Parser> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/parser_factory.rs:38:27
[INFO] [stdout]    |
[INFO] [stdout] 38 |                    -> Box<Parser> {
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |                    -> Box<dyn Parser> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/parser_factory.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |                    -> Box<Parser> {
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |                    -> Box<dyn Parser> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/parser_factory.rs:54:72
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<Parser> {
[INFO] [stdout]    |                                                                        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<dyn Parser> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/matcher.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn boxed_clone(&self) -> Box<Matcher> {
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn boxed_clone(&self) -> Box<dyn Matcher> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:183:30
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn parser(&self) -> &Box<Parser> {
[INFO] [stdout]     |                              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn parser(&self) -> &Box<dyn Parser> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:267:34
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn boxed_clone(&self) -> Box<Matcher> {
[INFO] [stdout]     |                                  ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn boxed_clone(&self) -> Box<dyn Matcher> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/grammar/test.rs:12:61
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn assert_parser_equals(got: Option<&TokenType>, expected: &Parser) {
[INFO] [stdout]    |                                                             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn assert_parser_equals(got: Option<&TokenType>, expected: &dyn Parser) {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/parser.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(parser: Box<Parser>) -> ParserNode {
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(parser: Box<dyn Parser>) -> ParserNode {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/trie/node/parser.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn parser(&self) -> &Parser {
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn parser(&self) -> &dyn Parser {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:214:42
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn lookup_parser(&mut self, parser: &Parser) -> Option<usize> {
[INFO] [stdout]     |                                          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn lookup_parser(&mut self, parser: &dyn Parser) -> Option<usize> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:277:49
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn insert_parser(&mut self, parser: Box<Parser>) -> &mut ParserNode {
[INFO] [stdout]     |                                                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub fn insert_parser(&mut self, parser: Box<dyn Parser>) -> &mut ParserNode {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/compiled_pattern.rs:40:42
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn parser(&mut self, parser: Box<Parser>) -> &mut CompiledPatternBuilder {
[INFO] [stdout]    |                                          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn parser(&mut self, parser: Box<dyn Parser>) -> &mut CompiledPatternBuilder {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/impls.rs:49:59
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn insert_literal(&mut self, literal: String) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn insert_literal(&mut self, literal: String) -> &mut dyn Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/impls.rs:72:45
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<dyn Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/suffix_array/impls.rs:72:62
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut dyn Entry<SA=SuffixTable> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:144:28
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn new(parser: Box<Parser>) -> ParserE {
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn new(parser: Box<dyn Parser>) -> ParserE {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]    --> src/parsers/set.rs:103:37
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut hasher = SipHasher::new();
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/int.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]   --> src/parsers/greedy.rs:45:37
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut hasher = SipHasher::new();
[INFO] [stdout]    |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:306:33
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut entry: &mut Entry<ST = Self> = match token {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut entry: &mut dyn Entry<ST = Self> = match token {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:61:57
[INFO] [stdout]    |
[INFO] [stdout] 61 |             BuildError::TestMessage(ref error) => error.description(),
[INFO] [stdout]    |                                                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:62:48
[INFO] [stdout]    |
[INFO] [stdout] 62 |             BuildError::Io(ref error) => error.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:63:55
[INFO] [stdout]    |
[INFO] [stdout] 63 |             BuildError::DeserJson(ref error) => error.description(),
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:64:55
[INFO] [stdout]    |
[INFO] [stdout] 64 |             BuildError::DeserYaml(ref error) => error.description(),
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:72:57
[INFO] [stdout]    |
[INFO] [stdout] 72 |             BuildError::TestMessage(ref error) => error.cause(),
[INFO] [stdout]    |                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:73:48
[INFO] [stdout]    |
[INFO] [stdout] 73 |             BuildError::Io(ref error) => error.cause(),
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:74:55
[INFO] [stdout]    |
[INFO] [stdout] 74 |             BuildError::DeserJson(ref error) => error.cause(),
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/matcher/pattern_source/error.rs:75:55
[INFO] [stdout]    |
[INFO] [stdout] 75 |             BuildError::DeserYaml(ref error) => error.cause(),
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:113:33
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut entry: &mut Entry<SA=SuffixTable> = match token {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut entry: &mut dyn Entry<SA=SuffixTable> = match token {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ObjectSafeHash`
[INFO] [stdout]  --> src/grammar/test.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use parsers::{SetParser, Parser, ObjectSafeHash, IntParser, GreedyParser, HasLengthConstraint};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LiteralEntry`
[INFO] [stdout]   --> src/matcher/trie/node/mod.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry};
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParserEntry`
[INFO] [stdout]   --> src/matcher/trie/node/mod.rs:11:44
[INFO] [stdout]    |
[INFO] [stdout] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry};
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Parser`
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:323:19
[INFO] [stdout]     |
[INFO] [stdout] 323 |     use parsers::{Parser, SetParser, IntParser, GreedyParser};
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/matcher/trie/node/mod.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut entry: &mut Entry<ST = Self> = match token {
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/matcher/suffix_array/impls.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut entry: &mut Entry<SA=SuffixTable> = match token {
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parser` is never used
[INFO] [stdout]   --> src/matcher/suffix_array/interface.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub trait ParserEntry: Entry + Clone {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] 33 |     fn parse<'a, 'b>(&'a self, value: &'b str) -> Option<MatchResult<'a, 'b>>;
[INFO] [stdout] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.99s
[INFO] running `Command { std: "docker" "inspect" "c1639fe8308b7c75c9ee9f82e115c7fab3fa69b8707d89e2098355d58768bee2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c1639fe8308b7c75c9ee9f82e115c7fab3fa69b8707d89e2098355d58768bee2", kill_on_drop: false }`
[INFO] [stdout] c1639fe8308b7c75c9ee9f82e115c7fab3fa69b8707d89e2098355d58768bee2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] c2d4bfeb934699dcb7a1a483b4f0d4202c3284d9b70dc5d41ee2b85d486cb01f
[INFO] running `Command { std: "docker" "start" "-a" "c2d4bfeb934699dcb7a1a483b4f0d4202c3284d9b70dc5d41ee2b85d486cb01f", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]   --> src/parsers/mod.rs:21:28
[INFO] [stderr]    |
[INFO] [stderr] 21 |     fn set_name(&mut self, Option<String>);
[INFO] [stderr]    |                            ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Option<String>`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stderr]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/deser.rs:77:17
[INFO] [stderr]    |
[INFO] [stderr] 77 |                 try!(Err(serde::de::Error::missing_field("uuid")))
[INFO] [stderr]    |                 ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/matcher/pattern/deser.rs:130:9
[INFO] [stderr]     |
[INFO] [stderr] 130 |         try!(visitor.end());
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/deser.rs:96:33
[INFO] [stderr]    |
[INFO] [stderr] 96 |         while let Some(field) = try!(visitor.visit_key()) {
[INFO] [stderr]    |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/deser.rs:98:44
[INFO] [stderr]    |
[INFO] [stderr] 98 |                 Field::NAME => name = Some(try!(visitor.visit_value())),
[INFO] [stderr]    |                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/deser.rs:99:44
[INFO] [stderr]    |
[INFO] [stderr] 99 |                 Field::UUID => uuid = Some(try!(visitor.visit_value())),
[INFO] [stderr]    |                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/matcher/pattern/deser.rs:100:50
[INFO] [stderr]     |
[INFO] [stderr] 100 |                 Field::PATTERN => pattern = Some(try!(visitor.visit_value())),
[INFO] [stderr]     |                                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/matcher/pattern/deser.rs:101:48
[INFO] [stderr]     |
[INFO] [stderr] 101 |                 Field::VALUES => values = Some(try!(visitor.visit_value())),
[INFO] [stderr]     |                                                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/matcher/pattern/deser.rs:102:44
[INFO] [stderr]     |
[INFO] [stderr] 102 |                 Field::TAGS => tags = Some(try!(visitor.visit_value())),
[INFO] [stderr]     |                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/matcher/pattern/deser.rs:103:61
[INFO] [stderr]     |
[INFO] [stderr] 103 |                 Field::TESTMESSAGES => test_messages = Some(try!(visitor.visit_value())),
[INFO] [stderr]     |                                                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/matcher/pattern/deser.rs:107:20
[INFO] [stderr]     |
[INFO] [stderr] 107 |         let uuid = try!(PatternVisitor::parse_uuid::<V>(uuid));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/matcher/pattern/deser.rs:120:25
[INFO] [stderr]     |
[INFO] [stderr] 120 |                         try!(Err(serde::de::Error::custom("Invalid field 'pattern'")))
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/matcher/pattern/deser.rs:126:17
[INFO] [stderr]     |
[INFO] [stderr] 126 |                 try!(Err(serde::de::Error::missing_field("pattern")))
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/file/deser.rs:62:9
[INFO] [stderr]    |
[INFO] [stderr] 62 |         try!(visitor.end());
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/file/deser.rs:51:34
[INFO] [stderr]    |
[INFO] [stderr] 51 |         while let Some (field) = try!(visitor.visit_key()) {
[INFO] [stderr]    |                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/file/deser.rs:53:52
[INFO] [stderr]    |
[INFO] [stderr] 53 |                 Field::PATTERNS => patterns = Some(try!(visitor.visit_value()))
[INFO] [stderr]    |                                                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/file/deser.rs:59:21
[INFO] [stderr]    |
[INFO] [stderr] 59 |             None => try!(visitor.missing_field("patterns")),
[INFO] [stderr]    |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/testmessage/deser.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 |         try!(visitor.end());
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/testmessage/deser.rs:56:33
[INFO] [stderr]    |
[INFO] [stderr] 56 |         while let Some(field) = try!(visitor.visit_key()) {
[INFO] [stderr]    |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/testmessage/deser.rs:58:50
[INFO] [stderr]    |
[INFO] [stderr] 58 |                 Field::MESSAGE => message = Some(try!(visitor.visit_value())),
[INFO] [stderr]    |                                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/testmessage/deser.rs:59:48
[INFO] [stderr]    |
[INFO] [stderr] 59 |                 Field::VALUES => values = Some(try!(visitor.visit_value())),
[INFO] [stderr]    |                                                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/testmessage/deser.rs:60:44
[INFO] [stderr]    |
[INFO] [stderr] 60 |                 Field::TAGS => tags = Some(try!(visitor.visit_value())),
[INFO] [stderr]    |                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/testmessage/deser.rs:66:21
[INFO] [stderr]    |
[INFO] [stderr] 66 |             None => try!(visitor.missing_field("message")),
[INFO] [stderr]    |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/testmessage/message.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 39 |         try!(self.test_tags(result));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/testmessage/message.rs:47:13
[INFO] [stderr]    |
[INFO] [stderr] 47 |             try!(TestMessage::test_value(key, value, &merged_values, result));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern/testmessage/message.rs:87:17
[INFO] [stderr]    |
[INFO] [stderr] 87 |                 try!(self.test_expected_tags_can_be_found_in_got_tags(expected_tags,
[INFO] [stderr]    |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_source/mod.rs:16:13
[INFO] [stderr]    |
[INFO] [stderr] 16 |             try!(Self::check_pattern::<F::Matcher>(&mut matcher, pattern));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_source/mod.rs:33:27
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let mut pattern = try!(result);
[INFO] [stderr]    |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_source/mod.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |             try!(Self::check_test_message(msg, &result, uuid));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_source/mod.rs:55:26
[INFO] [stderr]    |
[INFO] [stderr] 55 |             let result = try!(matcher.parse(msg.message())
[INFO] [stderr]    |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_loader.rs:19:24
[INFO] [stderr]    |
[INFO] [stderr] 19 |         let mut file = try!(File::open(pattern_file_path));
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_loader.rs:27:20
[INFO] [stderr]    |
[INFO] [stderr] 27 |         let file = try!(PatternLoader::load_file(pattern_file_path));
[INFO] [stderr]    |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_loader.rs:34:20
[INFO] [stderr]    |
[INFO] [stderr] 34 |         let file = try!(PatternLoader::load_file(pattern_file_path));
[INFO] [stderr]    |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_loader.rs:43:23
[INFO] [stderr]    |
[INFO] [stderr] 43 |                 match try!(extension.to_str().ok_or(BuildError::NotUtf8FileName)) {
[INFO] [stderr]    |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_loader.rs:45:39
[INFO] [stderr]    |
[INFO] [stderr] 45 |                         let content = try!(PatternLoader::read(pattern_file_path));
[INFO] [stderr]    |                                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_loader.rs:46:36
[INFO] [stderr]    |
[INFO] [stderr] 46 |                         let file = try!(serde_json::from_str::<PatternFile>(&content));
[INFO] [stderr]    |                                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_loader.rs:50:39
[INFO] [stderr]    |
[INFO] [stderr] 50 |                         let content = try!(PatternLoader::read(pattern_file_path));
[INFO] [stderr]    |                                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/matcher/pattern_loader.rs:51:36
[INFO] [stderr]    |
[INFO] [stderr] 51 |                         let file = try!(serde_yaml::from_str::<PatternFile>(&content));
[INFO] [stderr]    |                                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `clippy`
[INFO] [stderr]  --> src/grammar/parser/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | #[allow(clippy)]
[INFO] [stderr]   |         ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/grammar/parser/pattern_parser.rs:33:9
[INFO] [stderr]    |
[INFO] [stderr] 33 |         try!(write!(fmt, "error at {}:{}: expected ", self.line, self.column));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/grammar/parser/pattern_parser.rs:35:13
[INFO] [stderr]    |
[INFO] [stderr] 35 |             try!(write!(fmt, "EOF"));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/grammar/parser/pattern_parser.rs:37:13
[INFO] [stderr]    |
[INFO] [stderr] 37 |             try!(write!(fmt,
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/grammar/parser/pattern_parser.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |             try!(write!(fmt, "one of `{}`", escape_default(iter.next().unwrap())));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/grammar/parser/pattern_parser.rs:44:17
[INFO] [stderr]    |
[INFO] [stderr] 44 |                 try!(write!(fmt, ", `{}`", escape_default(elem)));
[INFO] [stderr]    |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:890:24
[INFO] [stderr]     |
[INFO] [stderr] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:890:36
[INFO] [stderr]     |
[INFO] [stderr] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stderr]     |                                    ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:907:48
[INFO] [stderr]     |
[INFO] [stderr] 907 | ...                   'a'...'z' |
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:909:48
[INFO] [stderr]     |
[INFO] [stderr] 909 | ...                   'A'...'Z' |
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:910:48
[INFO] [stderr]     |
[INFO] [stderr] 910 | ...                   '0'...'9' |
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]     --> src/grammar/parser/pattern_parser.rs:1164:32
[INFO] [stderr]      |
[INFO] [stderr] 1164 | ...                   '0'...'9' => Matched(next, ()),
[INFO] [stderr]      |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stderr]  --> src/parsers/set.rs:3:17
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stderr]   |                 ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stderr]    --> src/parsers/set.rs:103:26
[INFO] [stderr]     |
[INFO] [stderr] 103 |         let mut hasher = SipHasher::new();
[INFO] [stderr]     |                          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stderr]  --> src/parsers/int.rs:1:17
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stderr]   |                 ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stderr]   --> src/parsers/int.rs:62:26
[INFO] [stderr]    |
[INFO] [stderr] 62 |         let mut hasher = SipHasher::new();
[INFO] [stderr]    |                          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stderr]  --> src/parsers/greedy.rs:1:17
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::hash::{SipHasher, Hash, Hasher};
[INFO] [stderr]   |                 ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stderr]   --> src/parsers/greedy.rs:45:26
[INFO] [stderr]    |
[INFO] [stderr] 45 |         let mut hasher = SipHasher::new();
[INFO] [stderr]    |                          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/mod.rs:32:17
[INFO] [stderr]    |
[INFO] [stderr] 32 |     parser: &'a Parser,
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 32 |     parser: &'a dyn Parser,
[INFO] [stderr]    |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/trie/node/parser.rs:10:17
[INFO] [stderr]    |
[INFO] [stderr] 10 |     parser: Box<Parser>,
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 10 |     parser: Box<dyn Parser>,
[INFO] [stderr]    |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/matcher/compiled_pattern.rs:7:16
[INFO] [stderr]   |
[INFO] [stderr] 7 |     Parser(Box<Parser>),
[INFO] [stderr]   |                ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]   |
[INFO] [stderr] 7 |     Parser(Box<dyn Parser>),
[INFO] [stderr]   |                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/matcher/suffix_array/impls.rs:129:17
[INFO] [stderr]     |
[INFO] [stderr] 129 |     parser: Box<Parser>,
[INFO] [stderr]     |                 ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 129 |     parser: Box<dyn Parser>,
[INFO] [stderr]     |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/matcher/pattern/source.rs:7:26
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub type PatternSource = Source<Item=BuildResult>;
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub type PatternSource = dyn Source<Item=BuildResult>;
[INFO] [stderr]   |                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:256:61
[INFO] [stderr]     |
[INFO] [stderr] 256 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stderr]     |                                         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 256 |                                           -> RuleResult<Box<dyn Parser>> {
[INFO] [stderr]     |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:268:65
[INFO] [stderr]     |
[INFO] [stderr] 268 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stderr]     |                                         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 268 |                                               -> RuleResult<Box<dyn Parser>> {
[INFO] [stderr]     |                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:429:65
[INFO] [stderr]     |
[INFO] [stderr] 429 | ...                   -> RuleResult<Box<Parser>> {
[INFO] [stderr]     |                                         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 429 |                                               -> RuleResult<Box<dyn Parser>> {
[INFO] [stderr]     |                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/mod.rs:22:34
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn boxed_clone(&self) -> Box<Parser>;
[INFO] [stderr]    |                                  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn boxed_clone(&self) -> Box<dyn Parser>;
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/mod.rs:57:27
[INFO] [stderr]    |
[INFO] [stderr] 57 |                    -> Box<Parser>;
[INFO] [stderr]    |                           ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 57 |                    -> Box<dyn Parser>;
[INFO] [stderr]    |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/mod.rs:60:27
[INFO] [stderr]    |
[INFO] [stderr] 60 |                    -> Box<Parser>;
[INFO] [stderr]    |                           ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 60 |                    -> Box<dyn Parser>;
[INFO] [stderr]    |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/mod.rs:61:72
[INFO] [stderr]    |
[INFO] [stderr] 61 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<Parser>;
[INFO] [stderr]    |                                                                        ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 61 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<dyn Parser>;
[INFO] [stderr]    |                                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/trie/node/interface.rs:34:30
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stderr]    |                              ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn parser(&self) -> &Box<dyn Parser>;
[INFO] [stderr]    |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/suffix_array/interface.rs:34:30
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stderr]    |                              ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn parser(&self) -> &Box<dyn Parser>;
[INFO] [stderr]    |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/mod.rs:23:34
[INFO] [stderr]    |
[INFO] [stderr] 23 |     fn boxed_clone(&self) -> Box<Matcher>;
[INFO] [stderr]    |                                  ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 23 |     fn boxed_clone(&self) -> Box<dyn Matcher>;
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/mod.rs:37:28
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn new(parser: &'a Parser, value: &'b str) -> ParseResult<'a, 'b> {
[INFO] [stderr]    |                            ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn new(parser: &'a dyn Parser, value: &'b str) -> ParseResult<'a, 'b> {
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/mod.rs:44:33
[INFO] [stderr]    |
[INFO] [stderr] 44 |     pub fn parser(&self) -> &'a Parser {
[INFO] [stderr]    |                                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 44 |     pub fn parser(&self) -> &'a dyn Parser {
[INFO] [stderr]    |                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/set.rs:96:34
[INFO] [stderr]    |
[INFO] [stderr] 96 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stderr]    |                                  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 96 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/int.rs:34:34
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stderr]    |                                  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parsers/greedy.rs:73:34
[INFO] [stderr]    |
[INFO] [stderr] 73 |     fn boxed_clone(&self) -> Box<Parser> {
[INFO] [stderr]    |                                  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 73 |     fn boxed_clone(&self) -> Box<dyn Parser> {
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/matcher/trie/node/parser.rs:103:30
[INFO] [stderr]     |
[INFO] [stderr] 103 |     fn parser(&self) -> &Box<Parser> {
[INFO] [stderr]     |                              ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 103 |     fn parser(&self) -> &Box<dyn Parser> {
[INFO] [stderr]     |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/trie/parser_factory.rs:38:27
[INFO] [stderr]    |
[INFO] [stderr] 38 |                    -> Box<Parser> {
[INFO] [stderr]    |                           ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 38 |                    -> Box<dyn Parser> {
[INFO] [stderr]    |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/trie/parser_factory.rs:47:27
[INFO] [stderr]    |
[INFO] [stderr] 47 |                    -> Box<Parser> {
[INFO] [stderr]    |                           ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 47 |                    -> Box<dyn Parser> {
[INFO] [stderr]    |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/trie/parser_factory.rs:54:72
[INFO] [stderr]    |
[INFO] [stderr] 54 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<Parser> {
[INFO] [stderr]    |                                                                        ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 54 |     fn new_greedy(name: Option<&str>, end_string: Option<&str>) -> Box<dyn Parser> {
[INFO] [stderr]    |                                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/trie/matcher.rs:14:34
[INFO] [stderr]    |
[INFO] [stderr] 14 |     fn boxed_clone(&self) -> Box<Matcher> {
[INFO] [stderr]    |                                  ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 14 |     fn boxed_clone(&self) -> Box<dyn Matcher> {
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/pattern_source/error.rs:70:32
[INFO] [stderr]    |
[INFO] [stderr] 70 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 70 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/matcher/suffix_array/impls.rs:183:30
[INFO] [stderr]     |
[INFO] [stderr] 183 |     fn parser(&self) -> &Box<Parser> {
[INFO] [stderr]     |                              ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 183 |     fn parser(&self) -> &Box<dyn Parser> {
[INFO] [stderr]     |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/matcher/suffix_array/impls.rs:267:34
[INFO] [stderr]     |
[INFO] [stderr] 267 |     fn boxed_clone(&self) -> Box<Matcher> {
[INFO] [stderr]     |                                  ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 267 |     fn boxed_clone(&self) -> Box<dyn Matcher> {
[INFO] [stderr]     |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/trie/node/parser.rs:16:28
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub fn new(parser: Box<Parser>) -> ParserNode {
[INFO] [stderr]    |                            ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub fn new(parser: Box<dyn Parser>) -> ParserNode {
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/trie/node/parser.rs:24:30
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub fn parser(&self) -> &Parser {
[INFO] [stderr]    |                              ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub fn parser(&self) -> &dyn Parser {
[INFO] [stderr]    |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/matcher/trie/node/mod.rs:214:42
[INFO] [stderr]     |
[INFO] [stderr] 214 |     fn lookup_parser(&mut self, parser: &Parser) -> Option<usize> {
[INFO] [stderr]     |                                          ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 214 |     fn lookup_parser(&mut self, parser: &dyn Parser) -> Option<usize> {
[INFO] [stderr]     |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/matcher/trie/node/mod.rs:277:49
[INFO] [stderr]     |
[INFO] [stderr] 277 |     pub fn insert_parser(&mut self, parser: Box<Parser>) -> &mut ParserNode {
[INFO] [stderr]     |                                                 ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 277 |     pub fn insert_parser(&mut self, parser: Box<dyn Parser>) -> &mut ParserNode {
[INFO] [stderr]     |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/compiled_pattern.rs:40:42
[INFO] [stderr]    |
[INFO] [stderr] 40 |     pub fn parser(&mut self, parser: Box<Parser>) -> &mut CompiledPatternBuilder {
[INFO] [stderr]    |                                          ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 40 |     pub fn parser(&mut self, parser: Box<dyn Parser>) -> &mut CompiledPatternBuilder {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/suffix_array/impls.rs:49:59
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn insert_literal(&mut self, literal: String) -> &mut Entry<SA=SuffixTable> {
[INFO] [stderr]    |                                                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn insert_literal(&mut self, literal: String) -> &mut dyn Entry<SA=SuffixTable> {
[INFO] [stderr]    |                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/suffix_array/impls.rs:72:45
[INFO] [stderr]    |
[INFO] [stderr] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stderr]    |                                             ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 72 |     fn insert_parser(&mut self, parser: Box<dyn Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/matcher/suffix_array/impls.rs:72:62
[INFO] [stderr]    |
[INFO] [stderr] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut Entry<SA=SuffixTable> {
[INFO] [stderr]    |                                                              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 72 |     fn insert_parser(&mut self, parser: Box<Parser>) -> &mut dyn Entry<SA=SuffixTable> {
[INFO] [stderr]    |                                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/matcher/suffix_array/impls.rs:144:28
[INFO] [stderr]     |
[INFO] [stderr] 144 |     pub fn new(parser: Box<Parser>) -> ParserE {
[INFO] [stderr]     |                            ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 144 |     pub fn new(parser: Box<dyn Parser>) -> ParserE {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stderr]    --> src/parsers/set.rs:103:37
[INFO] [stderr]     |
[INFO] [stderr] 103 |         let mut hasher = SipHasher::new();
[INFO] [stderr]     |                                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stderr]   --> src/parsers/int.rs:62:37
[INFO] [stderr]    |
[INFO] [stderr] 62 |         let mut hasher = SipHasher::new();
[INFO] [stderr]    |                                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::hash::SipHasher::new`: use `std::hash::DefaultHasher` instead
[INFO] [stderr]   --> src/parsers/greedy.rs:45:37
[INFO] [stderr]    |
[INFO] [stderr] 45 |         let mut hasher = SipHasher::new();
[INFO] [stderr]    |                                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/matcher/trie/node/mod.rs:306:33
[INFO] [stderr]     |
[INFO] [stderr] 306 |             let mut entry: &mut Entry<ST = Self> = match token {
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 306 |             let mut entry: &mut dyn Entry<ST = Self> = match token {
[INFO] [stderr]     |                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/matcher/pattern_source/error.rs:61:57
[INFO] [stderr]    |
[INFO] [stderr] 61 |             BuildError::TestMessage(ref error) => error.description(),
[INFO] [stderr]    |                                                         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/matcher/pattern_source/error.rs:62:48
[INFO] [stderr]    |
[INFO] [stderr] 62 |             BuildError::Io(ref error) => error.description(),
[INFO] [stderr]    |                                                ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/matcher/pattern_source/error.rs:63:55
[INFO] [stderr]    |
[INFO] [stderr] 63 |             BuildError::DeserJson(ref error) => error.description(),
[INFO] [stderr]    |                                                       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/matcher/pattern_source/error.rs:64:55
[INFO] [stderr]    |
[INFO] [stderr] 64 |             BuildError::DeserYaml(ref error) => error.description(),
[INFO] [stderr]    |                                                       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/matcher/pattern_source/error.rs:72:57
[INFO] [stderr]    |
[INFO] [stderr] 72 |             BuildError::TestMessage(ref error) => error.cause(),
[INFO] [stderr]    |                                                         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/matcher/pattern_source/error.rs:73:48
[INFO] [stderr]    |
[INFO] [stderr] 73 |             BuildError::Io(ref error) => error.cause(),
[INFO] [stderr]    |                                                ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/matcher/pattern_source/error.rs:74:55
[INFO] [stderr]    |
[INFO] [stderr] 74 |             BuildError::DeserJson(ref error) => error.cause(),
[INFO] [stderr]    |                                                       ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/matcher/pattern_source/error.rs:75:55
[INFO] [stderr]    |
[INFO] [stderr] 75 |             BuildError::DeserYaml(ref error) => error.cause(),
[INFO] [stderr]    |                                                       ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/matcher/suffix_array/impls.rs:113:33
[INFO] [stderr]     |
[INFO] [stderr] 113 |             let mut entry: &mut Entry<SA=SuffixTable> = match token {
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 113 |             let mut entry: &mut dyn Entry<SA=SuffixTable> = match token {
[INFO] [stderr]     |                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ParserEntry`
[INFO] [stderr]   --> src/matcher/trie/node/mod.rs:11:44
[INFO] [stderr]    |
[INFO] [stderr] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry};
[INFO] [stderr]    |                                            ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `LiteralEntry`
[INFO] [stderr]   --> src/matcher/trie/node/mod.rs:11:30
[INFO] [stderr]    |
[INFO] [stderr] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry};
[INFO] [stderr]    |                              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/matcher/trie/node/mod.rs:306:17
[INFO] [stderr]     |
[INFO] [stderr] 306 |             let mut entry: &mut Entry<ST = Self> = match token {
[INFO] [stderr]     |                 ----^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/matcher/suffix_array/impls.rs:113:17
[INFO] [stderr]     |
[INFO] [stderr] 113 |             let mut entry: &mut Entry<SA=SuffixTable> = match token {
[INFO] [stderr]     |                 ----^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: method `parser` is never used
[INFO] [stderr]   --> src/matcher/suffix_array/interface.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub trait ParserEntry: Entry + Clone {
[INFO] [stderr]    |           ----------- method in this trait
[INFO] [stderr] 33 |     fn parse<'a, 'b>(&'a self, value: &'b str) -> Option<MatchResult<'a, 'b>>;
[INFO] [stderr] 34 |     fn parser(&self) -> &Box<Parser>;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/grammar/test.rs:12:61
[INFO] [stderr]    |
[INFO] [stderr] 12 | fn assert_parser_equals(got: Option<&TokenType>, expected: &Parser) {
[INFO] [stderr]    |                                                             ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 12 | fn assert_parser_equals(got: Option<&TokenType>, expected: &dyn Parser) {
[INFO] [stderr]    |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ObjectSafeHash`
[INFO] [stderr]  --> src/grammar/test.rs:2:34
[INFO] [stderr]   |
[INFO] [stderr] 2 | use parsers::{SetParser, Parser, ObjectSafeHash, IntParser, GreedyParser, HasLengthConstraint};
[INFO] [stderr]   |                                  ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ParserEntry`
[INFO] [stderr]   --> src/matcher/trie/node/mod.rs:11:44
[INFO] [stderr]    |
[INFO] [stderr] 11 | use self::interface::{Entry, LiteralEntry, ParserEntry};
[INFO] [stderr]    |                                            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Parser`
[INFO] [stderr]    --> src/matcher/trie/node/mod.rs:323:19
[INFO] [stderr]     |
[INFO] [stderr] 323 |     use parsers::{Parser, SetParser, IntParser, GreedyParser};
[INFO] [stderr]     |                   ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `actiondb` (lib) generated 111 warnings (run `cargo fix --lib -p actiondb` to apply 48 suggestions)
[INFO] [stderr] warning: `actiondb` (lib test) generated 114 warnings (110 duplicates) (run `cargo fix --lib -p actiondb --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/actiondb-cc8ad4795265579d)
[INFO] [stdout] 
[INFO] [stdout] running 81 tests
[INFO] [stdout] test grammar::test::test_given_greedy_parser_when_there_is_no_literal_after_it_then_we_take_all_the_remaining_intput_as_matching ... ok
[INFO] [stdout] test grammar::test::test_given_invalid_pattern_as_a_string_when_we_parse_them_then_we_get_error ... ok
[INFO] [stdout] test grammar::test::test_given_literal_as_a_string_when_it_is_parsed_then_we_stop_at_the_parsers_begin ... ok
[INFO] [stdout] test grammar::test::test_given_parser_as_a_string_when_its_name_is_invalid_then_we_dont_get_the_instantiated_parser ... ok
[INFO] [stdout] test grammar::test::test_given_greedy_parser_when_we_parse_it_then_we_get_the_right_result ... ok
[INFO] [stdout] test grammar::test::test_given_parser_as_a_string_when_it_is_parsed_then_we_get_the_instantiated_parser ... ok
[INFO] [stdout] test grammar::test::test_given_int_parser_with_optional_parameters_when_we_parse_it_then_we_get_the_right_parser ... ok
[INFO] [stdout] test grammar::test::test_given_parser_as_a_string_when_its_type_isnt_exist_then_we_get_an_error ... ok
[INFO] [stdout] test grammar::test::test_given_parser_when_there_is_a_dot_in_its_name_then_it_is_ok ... ok
[INFO] [stdout] test grammar::test::test_given_string_which_contains_escaped_chars_when_we_parse_it_then_we_get_the_right_string ... ok
[INFO] [stdout] test grammar::test::test_given_valid_pattern_when_it_contains_cr_character_then_we_can_parse_it ... ok
[INFO] [stdout] test grammar::test::test_given_valid_pattern_when_it_does_not_have_a_name_then_we_can_parse_the_pattern ... ok
[INFO] [stdout] test grammar::test::test_given_pattern_as_a_string_when_it_is_parsed_with_the_grammar_we_got_the_right_compiled_pattern ... ok
[INFO] [stdout] test grammar::test::test_given_set_parser_with_optional_parameters_when_we_parse_it_then_we_get_the_right_parser ... ok
[INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_its_uuid_is_invalid_then_pattern_cannot_be_built_from_it ... ok
[INFO] [stdout] test matcher::pattern::test::test_given_json_document_when_it_does_not_contain_errors_then_pattern_can_be_created_from_it ... ok
[INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_with_invalid_uuid_when_we_try_to_create_pattern_then_it_fails ... ok
[INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_its_pattern_is_invalid_then_pattern_cannot_be_built_from_it ... ok
[INFO] [stdout] test grammar::test::test_given_parser_as_a_string_when_its_name_is_valid_then_we_get_the_instantiated_parser ... ok
[INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_it_does_not_have_the_pattern_field_then_it_cannot_be_created ... ok
[INFO] [stdout] test matcher::pattern::testmessage::test::test_given_json_test_message_when_it_does_not_have_a_message_field_then_error_is_returned ... ok
[INFO] [stdout] test matcher::pattern::testmessage::test::test_given_json_test_message_when_it_does_not_have_the_optional_fields_then_it_can_be_loaded_successfully ... ok
[INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_during_parsing_the_parsed_value_is_not_empty_but_we_cant_go_forward_then_the_parsing_is_unsuccessful ... ok
[INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_it_does_not_have_the_optional_paramaters_then_pattern_can_be_built_from_it ... ok
[INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_it_does_not_have_a_name_it_can_be_successfully_deserialized ... ok
[INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_a_parser_entry_is_inserted_it_is_only_added_if_it_is_a_new_parser ... ok
[INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_literals_are_inserted_then_it_can_find_the_string_with_the_longest_common_prefix ... ok
[INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_there_is_no_match_then_the_parsing_is_unsuccessful ... ok
[INFO] [stdout] test matcher::trie::node::literal::test::given_literal_node_when_it_is_compared_to_an_other_literal_node_then_only_their_first_chars_are_checked ... ok
[INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_a_literal_entry_is_found_then_it_is_returned ... ok
[INFO] [stdout] test matcher::trie::node::literal::test::given_literal_node_when_its_leafness_is_checked_the_right_result_is_returned ... ok
[INFO] [stdout] test matcher::trie::node::test::given_empty_trie_when_literals_are_inserted_then_they_can_be_looked_up ... ok
[INFO] [stdout] test matcher::suffix_array::test::test_given_parser_trie_when_a_parser_is_not_matched_then_the_parser_stack_is_unwind_so_an_untried_parser_is_tried ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_node_when_different_parsers_are_inserted_then_they_are_not_merged ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_empty_trie_when_literals_are_inserted_the_nodes_are_split_on_the_right_place ... ok
[INFO] [stdout] test matcher::suffix_array::test::test_given_suffix_array_when_the_match_is_too_short_then_we_dont_panic ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_empty_trie_when_literals_are_inserted_the_child_counts_are_right ... ok
[INFO] [stdout] test matcher::pattern::testmessage::test::test_given_json_test_message_when_it_is_deserialized_then_we_get_the_right_instance ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_node_when_the_same_parsers_are_inserted_then_they_are_merged_into_one_parsernode ... ok
[INFO] [stdout] test matcher::result::test::test_given_match_result_when_a_parse_result_is_inserted_then_we_use_only_the_ones_where_the_parser_has_a_name ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_a_parser_is_not_matched_then_the_parser_stack_is_unwind_so_an_untried_parser_is_tried ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_the_to_be_parsed_literal_is_a_prefix_in_the_tree_then_the_parse_result_is_none ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_the_to_be_parsed_literal_is_not_matched_then_the_parse_result_is_none ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_some_patterns_are_inserted_then_fully_matching_literals_are_returned_as_empty_vectors ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_some_patterns_are_inserted_then_literal_matches_have_precedence_over_parser_matches ... ok
[INFO] [stdout] test matcher::pattern::testmessage::test::test_given_json_test_message_when_it_contains_not_just_the_valid_fields_then_we_return_an_error ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_pattern_when_inserted_into_the_parser_tree_then_the_pattern_is_stored_in_the_leaf ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_empty_parser_node_when_it_is_used_for_parsing_then_it_returns_none ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_pattern_with_two_neighbouring_parser_when_the_pattern_is_inserted_into_the_trie_then_everything_is_ok ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_node_when_the_message_is_too_short_we_do_not_try_to_unwrap_a_childs_pattern ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_patterns_when_inserted_into_the_prefix_tree_then_the_proper_tree_is_built ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_trie_when_literals_are_looked_up_then_the_edges_in_the_trie_are_not_counted_as_literals ... ok
[INFO] [stdout] test parsers::int::test::test_given_int_parser_when_the_match_is_empty_then_the_result_isnt_successful ... ok
[INFO] [stdout] test parsers::greedy::test::test_given_greedy_parser_when_the_end_string_is_found_in_the_value_then_the_parser_matches ... ok
[INFO] [stdout] test parsers::int::test::test_given_matching_string_when_it_is_parsed_then_it_matches ... ok
[INFO] [stdout] test parsers::int::test::test_given_matching_string_which_is_longer_than_the_max_match_length_when_it_is_parsed_then_it_does_not_match ... ok
[INFO] [stdout] test parsers::has_length_constraint::test::test_given_parser_when_the_match_length_is_not_constrained_then_the_match_length_is_ok_in_every_case ... ok
[INFO] [stdout] test parsers::has_length_constraint::test::test_given_parser_when_the_maximum_match_length_is_set_then_the_longer_matches_are_discarded ... ok
[INFO] [stdout] test parsers::set::test::test_given_empty_string_when_parsed_it_wont_match ... ok
[INFO] [stdout] test parsers::has_length_constraint::test::test_given_parser_when_the_minimum_match_length_is_set_then_the_shorter_matches_are_discarded ... ok
[INFO] [stdout] test parsers::set::test::test_given_set_parser_and_when_differently_parametrized_instances_are_hashed_then_the_hashes_are_different ... ok
[INFO] [stdout] test parsers::greedy::test::test_given_greedy_parser_when_the_end_string_is_not_found_in_the_value_then_the_parser_doesnt_match ... ok
[INFO] [stdout] test utils::common_prefix::test::test_given_a_string_when_truncated_by_left_then_the_result_is_the_expected ... ok
[INFO] [stdout] test utils::common_prefix::test::test_given_a_string_when_truncated_by_right_then_the_result_is_the_expected ... ok
[INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_of_literal_nodes_when_binary_search_by_are_used_the_right_node_is_found ... ok
[INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_length_is_queried_it_is_ok ... ok
[INFO] [stdout] test matcher::trie::node::test::test_given_parser_trie_when_some_patterns_are_inserted_then_texts_can_be_parsed ... ok
[INFO] [stdout] test parsers::set::test::test_given_minimum_and_maximum_match_length_when_a_proper_length_match_occures_it_counts_as_a_match ... ok
[INFO] [stdout] test parsers::set::test::test_given_minimum_match_length_when_a_match_is_shorter_it_doesnt_count_as_a_match ... ok
[INFO] [stdout] test parsers::set::test::test_given_maximum_match_length_when_a_match_is_longer_it_doesnt_count_as_a_match ... ok
[INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_found_then_their_references_are_returned ... ok
[INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_pushed_they_be_get ... ok
[INFO] [stdout] test parsers::set::test::test_given_not_matching_string_when_parsed_it_wont_match ... ok
[INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_searched_they_can_be_found ... ok
[INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_searched_by_custom_cmp_func_they_can_be_found ... ok
[INFO] [stdout] test utils::sortedvec::test::test_given_sorted_vector_when_values_are_pushed_they_get_sorted ... ok
[INFO] [stdout] test parsers::set::test::test_given_matching_string_when_parsed_it_matches ... ok
[INFO] [stdout] test utils::common_prefix::test::given_a_string_when_longest_common_prefix_is_calulated_then_the_result_is_right ... ok
[INFO] [stderr]      Running tests/lib.rs (/opt/rustwide/target/debug/deps/lib-8c26afc3835d5583)
[INFO] [stdout] test grammar::test::test_given_invalid_string_when_we_parse_it_then_the_parser_returns_with_error - should panic ... ok
[INFO] [stdout] test grammar::test::test_given_set_parser_with_character_set_parameter_when_we_parse_it_then_we_get_the_right_parser ... ok
[INFO] [stdout] test matcher::pattern::test::test_given_json_pattern_when_test_messages_are_specified_then_they_are_parsed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 81 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test file::test_given_a_non_existing_pattern_file_when_it_is_deserialized_then_we_get_io_error ... ok
[INFO] [stdout] test file::test_given_an_invalid_json_pattern_file_when_it_is_deserialized_then_we_get_deserialization_error ... ok
[INFO] [stdout] test file::test_given_a_valid_json_pattern_file_when_it_is_deserialized_then_we_can_extract_the_patterns_from_it ... ok
[INFO] [stdout] test matcher::test_given_json_file_when_a_pattern_contains_cr_characters_then_we_handle_it_properly ... ok
[INFO] [stdout] test matcher::test_given_json_file_when_its_syntax_is_not_ok_then_matcher_cannot_be_built_from_it ... ok
[INFO] [stdout] test matcher::test_given_json_file_when_a_pattern_contains_test_values_then_we_only_check_the_expected_ones ... ok
[INFO] [stdout] test file::test_given_valid_yaml_pattern_file_when_it_is_deserialized_then_we_get_the_deserialized_contents ... ok
[INFO] [stdout] test matcher::test_given_json_file_when_its_syntax_is_ok_then_matcher_can_be_built_from_it ... ok
[INFO] [stdout] test matcher::test_given_json_file_when_we_check_the_test_messages_then_the_resulting_pattern_should_be_the_tested_one ... ok
[INFO] [stdout] test matcher::test_given_non_existing_json_file_when_it_is_loaded_then_matcher_cannot_be_created_from_it ... ok
[INFO] [stdout] test matcher::test_given_json_file_when_the_tests_contain_tags_but_the_pattern_does_not_have_them_then_we_fail ... ok
[INFO] [stdout] test matcher::test_given_json_file_when_a_pattern_contains_test_tags_then_we_only_check_the_expected_ones ... ok
[INFO] [stdout] test matcher::test_given_json_file_when_an_expected_value_is_not_found_then_we_fail ... ok
[INFO] [stdout] test matcher::test_given_json_file_when_matcher_is_created_by_factory_then_the_right_file_type_is_used_based_on_the_extension ... ok
[INFO] [stderr]    Doc-tests actiondb
[INFO] [stdout] test file::test_given_not_existing_yaml_pattern_file_when_it_is_opened_we_get_io_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr] warning: unknown lint: `clippy`
[INFO] [stderr]  --> src/grammar/parser/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | #[allow(clippy)]
[INFO] [stderr]   |         ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:890:24
[INFO] [stderr]     |
[INFO] [stderr] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:890:36
[INFO] [stderr]     |
[INFO] [stderr] 890 |                     'a'...'z' | 'A'...'Z' | '_' | '.' => Matched(next, ()),
[INFO] [stderr]     |                                    ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:907:48
[INFO] [stderr]     |
[INFO] [stderr] 907 | ...                   'a'...'z' |
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:909:48
[INFO] [stderr]     |
[INFO] [stderr] 909 | ...                   'A'...'Z' |
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/grammar/parser/pattern_parser.rs:910:48
[INFO] [stderr]     |
[INFO] [stderr] 910 | ...                   '0'...'9' |
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]     --> src/grammar/parser/pattern_parser.rs:1164:32
[INFO] [stderr]      |
[INFO] [stderr] 1164 | ...                   '0'...'9' => Matched(next, ()),
[INFO] [stderr]      |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: 7 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" "c2d4bfeb934699dcb7a1a483b4f0d4202c3284d9b70dc5d41ee2b85d486cb01f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2d4bfeb934699dcb7a1a483b4f0d4202c3284d9b70dc5d41ee2b85d486cb01f", kill_on_drop: false }`
[INFO] [stdout] c2d4bfeb934699dcb7a1a483b4f0d4202c3284d9b70dc5d41ee2b85d486cb01f
