[INFO] fetching crate recital 0.3.0...
[INFO] testing recital-0.3.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate recital 0.3.0 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate recital 0.3.0
[INFO] finished tweaking crates.io crate recital 0.3.0
[INFO] tweaked toml for crates.io crate recital 0.3.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate recital 0.3.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "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" "+1.99.0-beta.8" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 1 package to highest compatible version
[INFO] [stderr]       Adding nom v1.2.4 (available: v8.0.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `recital` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nom v1.2.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010
[INFO] running `Command { std: "docker" "start" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `recital` (manifest) generated 1 warning
[INFO] [stderr]    Compiling nom v1.2.4
[INFO] [stderr]    Compiling recital v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Alpha` and `Number`
[INFO] [stdout]   --> src/version.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 | use self::Identifier::{Alpha, Number};
[INFO] [stdout]    |                        ^^^^^  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/version.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         try!(write!(f, "{}.{}.{}", self.major, self.minor, self.patch));
[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/version.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |             try!(write!(f, "-{}", join!(self.pre)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/version.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             try!(write!(f, "+{}", join!(self.build)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | /// Parse a string as an `Identifier`.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | /// Parses a string of pre-release identifiers into a vector of `Identifier`s.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | /// Parses a string of build identifiers into a vector of `Identifier`s.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | /// Optionally parse pre-release and build identifiers.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:75:1
[INFO] [stdout]    |
[INFO] [stdout] 75 | /// Parses a numeric string as a `u64`.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | /// Parses a numeric string preceded by a dot (.) as u64.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:86:1
[INFO] [stdout]    |
[INFO] [stdout] 86 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:92:1
[INFO] [stdout]    |
[INFO] [stdout] 92 | /// Parse a string as a `Version`.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:93:1
[INFO] [stdout]    |
[INFO] [stdout] 93 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:94:1
[INFO] [stdout]    |
[INFO] [stdout] 94 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `take_while`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `take_while` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `take_while`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `take_while` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | / named!(
[INFO] [stdout] 57 | |     build<&[u8], Option<Vec<Identifier>> >,
[INFO] [stdout] 58 | |     opt!(complete!(preceded!(tag!("+"), identifiers)))
[INFO] [stdout] 59 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | / named!(
[INFO] [stdout] 64 | |     prerelease<&[u8], Option<Vec<Identifier>> >,
[INFO] [stdout] 65 | |     opt!(complete!(preceded!(tag!("-"), identifiers)))
[INFO] [stdout] 66 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | / named!(
[INFO] [stdout] 71 | |     extensions<&[u8], (Option<Vec<Identifier>>, Option<Vec<Identifier>>)>,
[INFO] [stdout] 72 | |     pair!(prerelease, build)
[INFO] [stdout] 73 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `pair`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `pair` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | / named!(
[INFO] [stdout] 78 | |     number<&[u8], u64>,
[INFO] [stdout] 79 | |     map_res!(
[INFO] [stdout] 80 | |         map_res!(digit, str::from_utf8),
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | / named!(
[INFO] [stdout] 78 | |     number<&[u8], u64>,
[INFO] [stdout] 79 | |     map_res!(
[INFO] [stdout] 80 | |         map_res!(digit, str::from_utf8),
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | / named!(
[INFO] [stdout] 88 | |     next_number<&[u8], u64>,
[INFO] [stdout] 89 | |     preceded!(char!('.'), number)
[INFO] [stdout] 90 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolve.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     And(Vec<Box<Constraint>>),
[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] 92 |     And(Vec<Box<dyn Constraint>>),
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolve.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Or(Vec<Box<Constraint>>),
[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] 95 |     Or(Vec<Box<dyn Constraint>>),
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.68s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `recital` (manifest) generated 1 warning
[INFO] [stdout] warning: unused imports: `Alpha` and `Number`
[INFO] [stdout]   --> src/version.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 | use self::Identifier::{Alpha, Number};
[INFO] [stdout]    |                        ^^^^^  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/version.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         try!(write!(f, "{}.{}.{}", self.major, self.minor, self.patch));
[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/version.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |             try!(write!(f, "-{}", join!(self.pre)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/version.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             try!(write!(f, "+{}", join!(self.build)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | /// Parse a string as an `Identifier`.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | /// Parses a string of pre-release identifiers into a vector of `Identifier`s.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | /// Parses a string of build identifiers into a vector of `Identifier`s.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | /// Optionally parse pre-release and build identifiers.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:75:1
[INFO] [stdout]    |
[INFO] [stdout] 75 | /// Parses a numeric string as a `u64`.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | /// Parses a numeric string preceded by a dot (.) as u64.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:86:1
[INFO] [stdout]    |
[INFO] [stdout] 86 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:92:1
[INFO] [stdout]    |
[INFO] [stdout] 92 | /// Parse a string as a `Version`.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:93:1
[INFO] [stdout]    |
[INFO] [stdout] 93 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:94:1
[INFO] [stdout]    |
[INFO] [stdout] 94 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `take_while`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `take_while` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `take_while`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `take_while` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | / named!(
[INFO] [stdout] 57 | |     build<&[u8], Option<Vec<Identifier>> >,
[INFO] [stdout] 58 | |     opt!(complete!(preceded!(tag!("+"), identifiers)))
[INFO] [stdout] 59 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | / named!(
[INFO] [stdout] 64 | |     prerelease<&[u8], Option<Vec<Identifier>> >,
[INFO] [stdout] 65 | |     opt!(complete!(preceded!(tag!("-"), identifiers)))
[INFO] [stdout] 66 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | / named!(
[INFO] [stdout] 71 | |     extensions<&[u8], (Option<Vec<Identifier>>, Option<Vec<Identifier>>)>,
[INFO] [stdout] 72 | |     pair!(prerelease, build)
[INFO] [stdout] 73 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `pair`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `pair` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | / named!(
[INFO] [stdout] 78 | |     number<&[u8], u64>,
[INFO] [stdout] 79 | |     map_res!(
[INFO] [stdout] 80 | |         map_res!(digit, str::from_utf8),
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | / named!(
[INFO] [stdout] 78 | |     number<&[u8], u64>,
[INFO] [stdout] 79 | |     map_res!(
[INFO] [stdout] 80 | |         map_res!(digit, str::from_utf8),
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | / named!(
[INFO] [stdout] 88 | |     next_number<&[u8], u64>,
[INFO] [stdout] 89 | |     preceded!(char!('.'), number)
[INFO] [stdout] 90 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolve.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     And(Vec<Box<Constraint>>),
[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] 92 |     And(Vec<Box<dyn Constraint>>),
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolve.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Or(Vec<Box<Constraint>>),
[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] 95 |     Or(Vec<Box<dyn Constraint>>),
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling recital v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Alpha` and `Number`
[INFO] [stdout]   --> src/version.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 | use self::Identifier::{Alpha, Number};
[INFO] [stdout]    |                        ^^^^^  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/version.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |         try!(write!(f, "{}.{}.{}", self.major, self.minor, self.patch));
[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/version.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |             try!(write!(f, "-{}", join!(self.pre)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/version.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             try!(write!(f, "+{}", join!(self.build)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | /// Parse a string as an `Identifier`.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | /// Parses a string of pre-release identifiers into a vector of `Identifier`s.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | /// Parses a string of build identifiers into a vector of `Identifier`s.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | /// Optionally parse pre-release and build identifiers.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:75:1
[INFO] [stdout]    |
[INFO] [stdout] 75 | /// Parses a numeric string as a `u64`.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | /// Parses a numeric string preceded by a dot (.) as u64.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:86:1
[INFO] [stdout]    |
[INFO] [stdout] 86 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/parser.rs:92:1
[INFO] [stdout]    |
[INFO] [stdout] 92 | /// Parse a string as a `Version`.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]   --> src/parser.rs:93:1
[INFO] [stdout]    |
[INFO] [stdout] 93 | #[allow(dead_code)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]   --> src/parser.rs:94:1
[INFO] [stdout]    |
[INFO] [stdout] 94 | named!(
[INFO] [stdout]    | ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `take_while`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `take_while` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | / named!(
[INFO] [stdout] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stdout] 42 | |     map!(
[INFO] [stdout] 43 | |         separated_list!(
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `take_while`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `take_while` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | / named!(
[INFO] [stdout] 57 | |     build<&[u8], Option<Vec<Identifier>> >,
[INFO] [stdout] 58 | |     opt!(complete!(preceded!(tag!("+"), identifiers)))
[INFO] [stdout] 59 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | / named!(
[INFO] [stdout] 64 | |     prerelease<&[u8], Option<Vec<Identifier>> >,
[INFO] [stdout] 65 | |     opt!(complete!(preceded!(tag!("-"), identifiers)))
[INFO] [stdout] 66 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | / named!(
[INFO] [stdout] 71 | |     extensions<&[u8], (Option<Vec<Identifier>>, Option<Vec<Identifier>>)>,
[INFO] [stdout] 72 | |     pair!(prerelease, build)
[INFO] [stdout] 73 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `pair`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `pair` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | / named!(
[INFO] [stdout] 78 | |     number<&[u8], u64>,
[INFO] [stdout] 79 | |     map_res!(
[INFO] [stdout] 80 | |         map_res!(digit, str::from_utf8),
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | / named!(
[INFO] [stdout] 78 | |     number<&[u8], u64>,
[INFO] [stdout] 79 | |     map_res!(
[INFO] [stdout] 80 | |         map_res!(digit, str::from_utf8),
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/parser.rs:87:1
[INFO] [stdout]    |
[INFO] [stdout] 87 | / named!(
[INFO] [stdout] 88 | |     next_number<&[u8], u64>,
[INFO] [stdout] 89 | |     preceded!(char!('.'), number)
[INFO] [stdout] 90 | | );
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/parser.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | / named!(
[INFO] [stdout]  95 | |     version<&[u8], Version>,
[INFO] [stdout]  96 | |     chain!(
[INFO] [stdout]  97 | |         major: number ~
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolve.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     And(Vec<Box<Constraint>>),
[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] 92 |     And(Vec<Box<dyn Constraint>>),
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolve.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Or(Vec<Box<Constraint>>),
[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] 95 |     Or(Vec<Box<dyn Constraint>>),
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolve.rs:156:45
[INFO] [stdout]     |
[INFO] [stdout] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |           let a = constraints!(And,
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 319 | |                              GreaterThanOrEqualTo(version!(1, 1, 0)),
[INFO] [stdout] 320 | |                              LessThan(version!(1, 2, 0)));
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolve.rs:156:45
[INFO] [stdout]     |
[INFO] [stdout] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |           let a = constraints!(Or,
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 329 | |                              Exactly(version!(1, 1, 0)),
[INFO] [stdout] 330 | |                              Exactly(version!(1, 2, 0)));
[INFO] [stdout]     | |________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolve.rs:156:45
[INFO] [stdout]     |
[INFO] [stdout] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |           let a = constraints!(And,
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 339 | |                              GreaterThanOrEqualTo(version!(1, 2, 1)),
[INFO] [stdout] 340 | |                              LessThan(version!(1, 5, 0)));
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolve.rs:156:45
[INFO] [stdout]     |
[INFO] [stdout] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |           let b = constraints!(And,
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 343 | |                              GreaterThan(version!(1, 5, 0)),
[INFO] [stdout] 344 | |                              LessThan(version!(2, 0, 0)));
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolve.rs:156:45
[INFO] [stdout]     |
[INFO] [stdout] 156 |             let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |         let c = constraints!(Or, a, b);
[INFO] [stdout]     |                 ---------------------- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolve.rs:156:45
[INFO] [stdout]     |
[INFO] [stdout] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |           let c = constraints!(And,
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 356 | |                              GreaterThan(version!(1, 2, 1)),
[INFO] [stdout] 357 | |                              LessThan(version!(2, 0, 0)));
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.63s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `recital` (manifest) generated 1 warning
[INFO] [stderr] warning: unused imports: `Alpha` and `Number`
[INFO] [stderr]   --> src/version.rs:32:24
[INFO] [stderr]    |
[INFO] [stderr] 32 | use self::Identifier::{Alpha, Number};
[INFO] [stderr]    |                        ^^^^^  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/version.rs:215:9
[INFO] [stderr]     |
[INFO] [stderr] 215 |         try!(write!(f, "{}.{}.{}", self.major, self.minor, self.patch));
[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/version.rs:232:13
[INFO] [stderr]     |
[INFO] [stderr] 232 |             try!(write!(f, "-{}", join!(self.pre)));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/version.rs:236:13
[INFO] [stderr]     |
[INFO] [stderr] 236 |             try!(write!(f, "+{}", join!(self.build)));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/parser.rs:38:1
[INFO] [stderr]    |
[INFO] [stderr] 38 | /// Parse a string as an `Identifier`.
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute `allow`
[INFO] [stderr]   --> src/parser.rs:39:1
[INFO] [stderr]    |
[INFO] [stderr] 39 | #[allow(dead_code)]
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stderr]   --> src/parser.rs:40:1
[INFO] [stderr]    |
[INFO] [stderr] 40 | named!(
[INFO] [stderr]    | ^^^^^
[INFO] [stderr]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/parser.rs:54:1
[INFO] [stderr]    |
[INFO] [stderr] 54 | /// Parses a string of pre-release identifiers into a vector of `Identifier`s.
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute `allow`
[INFO] [stderr]   --> src/parser.rs:55:1
[INFO] [stderr]    |
[INFO] [stderr] 55 | #[allow(dead_code)]
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stderr]   --> src/parser.rs:56:1
[INFO] [stderr]    |
[INFO] [stderr] 56 | named!(
[INFO] [stderr]    | ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/parser.rs:61:1
[INFO] [stderr]    |
[INFO] [stderr] 61 | /// Parses a string of build identifiers into a vector of `Identifier`s.
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute `allow`
[INFO] [stderr]   --> src/parser.rs:62:1
[INFO] [stderr]    |
[INFO] [stderr] 62 | #[allow(dead_code)]
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stderr]   --> src/parser.rs:63:1
[INFO] [stderr]    |
[INFO] [stderr] 63 | named!(
[INFO] [stderr]    | ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/parser.rs:68:1
[INFO] [stderr]    |
[INFO] [stderr] 68 | /// Optionally parse pre-release and build identifiers.
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute `allow`
[INFO] [stderr]   --> src/parser.rs:69:1
[INFO] [stderr]    |
[INFO] [stderr] 69 | #[allow(dead_code)]
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stderr]   --> src/parser.rs:70:1
[INFO] [stderr]    |
[INFO] [stderr] 70 | named!(
[INFO] [stderr]    | ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/parser.rs:75:1
[INFO] [stderr]    |
[INFO] [stderr] 75 | /// Parses a numeric string as a `u64`.
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute `allow`
[INFO] [stderr]   --> src/parser.rs:76:1
[INFO] [stderr]    |
[INFO] [stderr] 76 | #[allow(dead_code)]
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stderr]   --> src/parser.rs:77:1
[INFO] [stderr]    |
[INFO] [stderr] 77 | named!(
[INFO] [stderr]    | ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/parser.rs:85:1
[INFO] [stderr]    |
[INFO] [stderr] 85 | /// Parses a numeric string preceded by a dot (.) as u64.
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute `allow`
[INFO] [stderr]   --> src/parser.rs:86:1
[INFO] [stderr]    |
[INFO] [stderr] 86 | #[allow(dead_code)]
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stderr]   --> src/parser.rs:87:1
[INFO] [stderr]    |
[INFO] [stderr] 87 | named!(
[INFO] [stderr]    | ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/parser.rs:92:1
[INFO] [stderr]    |
[INFO] [stderr] 92 | /// Parse a string as a `Version`.
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute `allow`
[INFO] [stderr]   --> src/parser.rs:93:1
[INFO] [stderr]    |
[INFO] [stderr] 93 | #[allow(dead_code)]
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stderr]   --> src/parser.rs:94:1
[INFO] [stderr]    |
[INFO] [stderr] 94 | named!(
[INFO] [stderr]    | ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/parser.rs:40:1
[INFO] [stderr]    |
[INFO] [stderr] 40 | / named!(
[INFO] [stderr] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stderr] 42 | |     map!(
[INFO] [stderr] 43 | |         separated_list!(
[INFO] [stderr] ...  |
[INFO] [stderr] 52 | | );
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/parser.rs:40:1
[INFO] [stderr]    |
[INFO] [stderr] 40 | / named!(
[INFO] [stderr] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stderr] 42 | |     map!(
[INFO] [stderr] 43 | |         separated_list!(
[INFO] [stderr] ...  |
[INFO] [stderr] 52 | | );
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/parser.rs:40:1
[INFO] [stderr]    |
[INFO] [stderr] 40 | / named!(
[INFO] [stderr] 41 | |     identifiers<&[u8], Vec<Identifier> >,
[INFO] [stderr] 42 | |     map!(
[INFO] [stderr] 43 | |         separated_list!(
[INFO] [stderr] ...  |
[INFO] [stderr] 52 | | );
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `take_while`
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `take_while` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/parser.rs:56:1
[INFO] [stderr]    |
[INFO] [stderr] 56 | / named!(
[INFO] [stderr] 57 | |     build<&[u8], Option<Vec<Identifier>> >,
[INFO] [stderr] 58 | |     opt!(complete!(preceded!(tag!("+"), identifiers)))
[INFO] [stderr] 59 | | );
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/parser.rs:63:1
[INFO] [stderr]    |
[INFO] [stderr] 63 | / named!(
[INFO] [stderr] 64 | |     prerelease<&[u8], Option<Vec<Identifier>> >,
[INFO] [stderr] 65 | |     opt!(complete!(preceded!(tag!("-"), identifiers)))
[INFO] [stderr] 66 | | );
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/parser.rs:70:1
[INFO] [stderr]    |
[INFO] [stderr] 70 | / named!(
[INFO] [stderr] 71 | |     extensions<&[u8], (Option<Vec<Identifier>>, Option<Vec<Identifier>>)>,
[INFO] [stderr] 72 | |     pair!(prerelease, build)
[INFO] [stderr] 73 | | );
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `pair`
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `pair` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/parser.rs:77:1
[INFO] [stderr]    |
[INFO] [stderr] 77 | / named!(
[INFO] [stderr] 78 | |     number<&[u8], u64>,
[INFO] [stderr] 79 | |     map_res!(
[INFO] [stderr] 80 | |         map_res!(digit, str::from_utf8),
[INFO] [stderr] ...  |
[INFO] [stderr] 83 | | );
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map_res`
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `map_res` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/parser.rs:87:1
[INFO] [stderr]    |
[INFO] [stderr] 87 | / named!(
[INFO] [stderr] 88 | |     next_number<&[u8], u64>,
[INFO] [stderr] 89 | |     preceded!(char!('.'), number)
[INFO] [stderr] 90 | | );
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `preceded`
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `preceded` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/parser.rs:94:1
[INFO] [stderr]     |
[INFO] [stderr]  94 | / named!(
[INFO] [stderr]  95 | |     version<&[u8], Version>,
[INFO] [stderr]  96 | |     chain!(
[INFO] [stderr]  97 | |         major: number ~
[INFO] [stderr] ...   |
[INFO] [stderr] 111 | | );
[INFO] [stderr]     | |_^
[INFO] [stderr]     |
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `chaining_parser`
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `chaining_parser` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolve.rs:92:17
[INFO] [stderr]    |
[INFO] [stderr] 92 |     And(Vec<Box<Constraint>>),
[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] 92 |     And(Vec<Box<dyn Constraint>>),
[INFO] [stderr]    |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolve.rs:95:16
[INFO] [stderr]    |
[INFO] [stderr] 95 |     Or(Vec<Box<Constraint>>),
[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] 95 |     Or(Vec<Box<dyn Constraint>>),
[INFO] [stderr]    |                +++
[INFO] [stderr] 
[INFO] [stderr] warning: `recital` (lib) generated 35 warnings (6 duplicates) (run `cargo fix --lib -p recital` to apply 10 suggestions)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/resolve.rs:156:45
[INFO] [stderr]     |
[INFO] [stderr] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 318 |           let a = constraints!(And,
[INFO] [stderr]     |  _________________-
[INFO] [stderr] 319 | |                              GreaterThanOrEqualTo(version!(1, 1, 0)),
[INFO] [stderr] 320 | |                              LessThan(version!(1, 2, 0)));
[INFO] [stderr]     | |_________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/resolve.rs:156:45
[INFO] [stderr]     |
[INFO] [stderr] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 328 |           let a = constraints!(Or,
[INFO] [stderr]     |  _________________-
[INFO] [stderr] 329 | |                              Exactly(version!(1, 1, 0)),
[INFO] [stderr] 330 | |                              Exactly(version!(1, 2, 0)));
[INFO] [stderr]     | |________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/resolve.rs:156:45
[INFO] [stderr]     |
[INFO] [stderr] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 338 |           let a = constraints!(And,
[INFO] [stderr]     |  _________________-
[INFO] [stderr] 339 | |                              GreaterThanOrEqualTo(version!(1, 2, 1)),
[INFO] [stderr] 340 | |                              LessThan(version!(1, 5, 0)));
[INFO] [stderr]     | |_________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/resolve.rs:156:45
[INFO] [stderr]     |
[INFO] [stderr] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 342 |           let b = constraints!(And,
[INFO] [stderr]     |  _________________-
[INFO] [stderr] 343 | |                              GreaterThan(version!(1, 5, 0)),
[INFO] [stderr] 344 | |                              LessThan(version!(2, 0, 0)));
[INFO] [stderr]     | |_________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/resolve.rs:156:45
[INFO] [stderr]     |
[INFO] [stderr] 156 |             let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stderr]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 346 |         let c = constraints!(Or, a, b);
[INFO] [stderr]     |                 ---------------------- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/resolve.rs:156:45
[INFO] [stderr]     |
[INFO] [stderr] 156 |               let mut constraints = Vec::<Box<$crate::resolve::Constraint>>::new();
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 355 |           let c = constraints!(And,
[INFO] [stderr]     |  _________________-
[INFO] [stderr] 356 | |                              GreaterThan(version!(1, 2, 1)),
[INFO] [stderr] 357 | |                              LessThan(version!(2, 0, 0)));
[INFO] [stderr]     | |_________________________________________________________- in this macro invocation
[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: this warning originates in the macro `constraints` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `recital` (lib test) generated 41 warnings (35 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/recital-3c33fc40db834459)
[INFO] [stdout] 
[INFO] [stdout] running 31 tests
[INFO] [stdout] test parser::test::test_build ... ok
[INFO] [stdout] test parser::test::test_from_str ... ok
[INFO] [stdout] test parser::test::test_is_id_char ... ok
[INFO] [stdout] test parser::test::test_parse_ids ... ok
[INFO] [stdout] test parser::test::test_next_number ... ok
[INFO] [stdout] test parser::test::test_prerelease ... ok
[INFO] [stdout] test parser::test::test_extensions ... ok
[INFO] [stdout] test parser::test::test_identifiers ... ok
[INFO] [stdout] test resolve::tests::test_and ... ok
[INFO] [stdout] test resolve::tests::test_exact ... ok
[INFO] [stdout] test parser::test::test_version ... ok
[INFO] [stdout] test resolve::tests::test_nested ... ok
[INFO] [stderr]    Doc-tests recital
[INFO] [stdout] test resolve::tests::test_or ... ok
[INFO] [stdout] test resolve::tests::test_resolve ... ok
[INFO] [stdout] test version::tests::test_identifier_display ... ok
[INFO] [stdout] test version::tests::test_version_clear_build ... ok
[INFO] [stdout] test version::tests::test_version_clear_identifiers ... ok
[INFO] [stdout] test version::tests::test_version_clear_pre ... ok
[INFO] [stdout] test version::tests::test_version_cmp_spec ... ok
[INFO] [stdout] test parser::test::test_number ... ok
[INFO] [stdout] test resolve::tests::test_less_than ... ok
[INFO] [stdout] test version::tests::test_version_default ... ok
[INFO] [stdout] test version::tests::test_version_display ... ok
[INFO] [stdout] test resolve::tests::test_less_than_or_equal_to ... ok
[INFO] [stdout] test version::tests::test_version_increment_minor ... ok
[INFO] [stdout] test resolve::tests::test_exactly_not ... ok
[INFO] [stdout] test version::tests::test_version_increment_patch ... ok
[INFO] [stdout] test version::tests::test_version_is_stable ... ok
[INFO] [stdout] test resolve::tests::test_greater_than_or_equal_to ... ok
[INFO] [stdout] test resolve::tests::test_greater_than ... ok
[INFO] [stdout] test version::tests::test_version_increment_major ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test src/lib.rs - (line 36) ... ok
[INFO] [stdout] test src/parser.rs - parser::Version (line 115) ... ok
[INFO] [stdout] test src/lib.rs - (line 55) ... ok
[INFO] [stdout] test src/lib.rs - (line 85) ... ok
[INFO] [stdout] test src/resolve.rs - resolve (line 9) ... ok
[INFO] [stdout] test src/lib.rs - (line 25) ... ok
[INFO] [stdout] test src/resolve.rs - resolve (line 24) ... ok
[INFO] [stdout] test src/resolve.rs - resolve::Operation (line 173) ... ok
[INFO] [stdout] test src/lib.rs - (line 48) ... ok
[INFO] [stdout] test src/version.rs - version (line 23) ... ok
[INFO] [stdout] test src/resolve.rs - resolve::Constraints (line 69) ... ok
[INFO] [stdout] test src/resolve.rs - resolve::constraints (line 126) ... ok
[INFO] [stdout] test src/resolve.rs - resolve::constraints (line 141) ... ok
[INFO] [stdout] test src/version.rs - version (line 7) ... ok
[INFO] [stdout] test src/version.rs - version::version (line 356) ... ok
[INFO] [stdout] test src/version.rs - version::id (line 127) ... ok
[INFO] [stdout] test src/resolve.rs - resolve::resolve (line 234) ... ok
[INFO] [stdout] test src/version.rs - version::Version (line 190) ... ok
[INFO] [stdout] test src/version.rs - version::id (line 116) ... ok
[INFO] [stdout] test src/version.rs - version::version (line 370) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.44s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010", kill_on_drop: false }`
[INFO] [stdout] de6aef02f5fcd42231dffd7e54954a0ef75b11ff833f198f41a944eee3976010
