[INFO] fetching crate recital 0.3.0...
[INFO] testing recital-0.3.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate recital 0.3.0 into /workspace/builds/worker-0-tc2/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-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate recital 0.3.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "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" "+beta-2026-04-21" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 1 package to latest 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c007bfc7164a412d33676ef25ce48f9edce990c77aaa9a2cb190bf98bee1b1b6
[INFO] running `Command { std: "docker" "start" "-a" "c007bfc7164a412d33676ef25ce48f9edce990c77aaa9a2cb190bf98bee1b1b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c007bfc7164a412d33676ef25ce48f9edce990c77aaa9a2cb190bf98bee1b1b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c007bfc7164a412d33676ef25ce48f9edce990c77aaa9a2cb190bf98bee1b1b6", kill_on_drop: false }`
[INFO] [stdout] c007bfc7164a412d33676ef25ce48f9edce990c77aaa9a2cb190bf98bee1b1b6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 057251d853c632b82eb45436a5afbb9ecfd5223e7ea44c8429f221c29549bc9b
[INFO] running `Command { std: "docker" "start" "-a" "057251d853c632b82eb45436a5afbb9ecfd5223e7ea44c8429f221c29549bc9b", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[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: 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.66s
[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 1`
[INFO] running `Command { std: "docker" "inspect" "057251d853c632b82eb45436a5afbb9ecfd5223e7ea44c8429f221c29549bc9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "057251d853c632b82eb45436a5afbb9ecfd5223e7ea44c8429f221c29549bc9b", kill_on_drop: false }`
[INFO] [stdout] 057251d853c632b82eb45436a5afbb9ecfd5223e7ea44c8429f221c29549bc9b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 77d7675926c57b48ace3a77abd3c1879f5ae9f3c1961e0e958082be357a7d87d
[INFO] running `Command { std: "docker" "start" "-a" "77d7675926c57b48ace3a77abd3c1879f5ae9f3c1961e0e958082be357a7d87d", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[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] [stderr]    Compiling recital v0.3.0 (/opt/rustwide/workdir)
[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: 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: 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: 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.64s
[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 1`
[INFO] running `Command { std: "docker" "inspect" "77d7675926c57b48ace3a77abd3c1879f5ae9f3c1961e0e958082be357a7d87d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "77d7675926c57b48ace3a77abd3c1879f5ae9f3c1961e0e958082be357a7d87d", kill_on_drop: false }`
[INFO] [stdout] 77d7675926c57b48ace3a77abd3c1879f5ae9f3c1961e0e958082be357a7d87d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f27272d6a4106441f9aa251b90dc762601720a86c08d69ad21ce73c40e6e131a
[INFO] running `Command { std: "docker" "start" "-a" "f27272d6a4106441f9aa251b90dc762601720a86c08d69ad21ce73c40e6e131a", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[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: 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 20 warnings (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 26 warnings (20 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[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 1`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/recital-d945354b1b044f5d)
[INFO] [stdout] 
[INFO] [stdout] running 31 tests
[INFO] [stdout] test parser::test::test_build ... ok
[INFO] [stdout] test parser::test::test_extensions ... ok
[INFO] [stdout] test parser::test::test_identifiers ... ok
[INFO] [stdout] test parser::test::test_is_id_char ... ok
[INFO] [stdout] test parser::test::test_from_str ... ok
[INFO] [stdout] test parser::test::test_number ... ok
[INFO] [stdout] test parser::test::test_parse_ids ... ok
[INFO] [stdout] test parser::test::test_prerelease ... ok
[INFO] [stdout] test parser::test::test_next_number ... ok
[INFO] [stdout] test parser::test::test_version ... ok
[INFO] [stdout] test resolve::tests::test_exact ... ok
[INFO] [stdout] test resolve::tests::test_and ... ok
[INFO] [stdout] test resolve::tests::test_exactly_not ... ok
[INFO] [stdout] test resolve::tests::test_greater_than ... ok
[INFO] [stdout] test resolve::tests::test_greater_than_or_equal_to ... ok
[INFO] [stdout] test resolve::tests::test_less_than ... ok
[INFO] [stdout] test resolve::tests::test_less_than_or_equal_to ... ok
[INFO] [stdout] test resolve::tests::test_nested ... ok
[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_pre ... ok
[INFO] [stdout] test version::tests::test_version_clear_identifiers ... ok
[INFO] [stdout] test version::tests::test_version_default ... ok
[INFO] [stdout] test version::tests::test_version_increment_major ... ok
[INFO] [stdout] test version::tests::test_version_display ... ok
[INFO] [stdout] test version::tests::test_version_cmp_spec ... ok
[INFO] [stdout] test version::tests::test_version_increment_patch ... ok
[INFO] [stdout] test version::tests::test_version_is_stable ... ok
[INFO] [stdout] test version::tests::test_version_increment_minor ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests recital
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test src/resolve.rs - resolve::Operation (line 173) ... ok
[INFO] [stdout] test src/parser.rs - parser::Version (line 115) ... ok
[INFO] [stdout] test src/resolve.rs - resolve::constraints (line 141) ... ok
[INFO] [stdout] test src/lib.rs - (line 55) ... ok
[INFO] [stdout] test src/version.rs - version (line 23) ... ok
[INFO] [stdout] test src/resolve.rs - resolve::constraints (line 126) ... ok
[INFO] [stdout] test src/version.rs - version (line 7) ... ok
[INFO] [stdout] test src/lib.rs - (line 25) ... ok
[INFO] [stdout] test src/version.rs - version::Version (line 190) ... ok
[INFO] [stdout] test src/resolve.rs - resolve (line 9) ... ok
[INFO] [stdout] test src/resolve.rs - resolve::Constraints (line 69) ... ok
[INFO] [stdout] test src/resolve.rs - resolve::resolve (line 234) ... ok
[INFO] [stdout] test src/resolve.rs - resolve (line 24) ... ok
[INFO] [stdout] test src/version.rs - version::id (line 116) ... ok
[INFO] [stdout] test src/version.rs - version::id (line 127) ... ok
[INFO] [stdout] test src/lib.rs - (line 85) ... ok
[INFO] [stdout] test src/lib.rs - (line 48) ... ok
[INFO] [stdout] test src/lib.rs - (line 36) ... ok
[INFO] [stdout] test src/version.rs - version::version (line 370) ... ok
[INFO] [stdout] test src/version.rs - version::version (line 356) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.44s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "f27272d6a4106441f9aa251b90dc762601720a86c08d69ad21ce73c40e6e131a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f27272d6a4106441f9aa251b90dc762601720a86c08d69ad21ce73c40e6e131a", kill_on_drop: false }`
[INFO] [stdout] f27272d6a4106441f9aa251b90dc762601720a86c08d69ad21ce73c40e6e131a
