[INFO] fetching crate garando_syntax 0.1.1...
[INFO] testing garando_syntax-0.1.1 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] extracting crate garando_syntax 0.1.1 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate garando_syntax 0.1.1
[INFO] finished tweaking crates.io crate garando_syntax 0.1.1
[INFO] tweaked toml for crates.io crate garando_syntax 0.1.1 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate garando_syntax 0.1.1 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 32 packages to latest compatible versions
[INFO] [stderr]       Adding bitflags v1.3.2 (available: v2.10.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 404211f0bbf6088bc337beff4a6abf46fd1ac0b1d8f1b556cc18194e8fd2f383
[INFO] running `Command { std: "docker" "start" "-a" "404211f0bbf6088bc337beff4a6abf46fd1ac0b1d8f1b556cc18194e8fd2f383", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "404211f0bbf6088bc337beff4a6abf46fd1ac0b1d8f1b556cc18194e8fd2f383", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "404211f0bbf6088bc337beff4a6abf46fd1ac0b1d8f1b556cc18194e8fd2f383", kill_on_drop: false }`
[INFO] [stdout] 404211f0bbf6088bc337beff4a6abf46fd1ac0b1d8f1b556cc18194e8fd2f383
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] de72e98c3a5c9b9c87b1b7bdb832c9f09507771fd94c5f12c20823e51ff894ed
[INFO] running `Command { std: "docker" "start" "-a" "de72e98c3a5c9b9c87b1b7bdb832c9f09507771fd94c5f12c20823e51ff894ed", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling dirs-sys v0.3.7
[INFO] [stderr]    Compiling dirs v2.0.2
[INFO] [stderr]    Compiling term v0.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling garando_pos v0.1.0
[INFO] [stderr]    Compiling garando_errors v0.1.0
[INFO] [stderr]    Compiling garando_syntax v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::ext`
[INFO] [stdout]   --> src/ext/build.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub use crate::ext;
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parse`
[INFO] [stdout]   --> src/ext/build.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub use crate::parse;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp_lhs`
[INFO] [stdout]    --> src/codemap.rs:499:27
[INFO] [stdout]     |
[INFO] [stdout] 499 |     fn merge_spans(&self, sp_lhs: Span, sp_rhs: Span) -> Option<Span> {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sp_lhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp_rhs`
[INFO] [stdout]    --> src/codemap.rs:499:41
[INFO] [stdout]     |
[INFO] [stdout] 499 |     fn merge_spans(&self, sp_lhs: Span, sp_rhs: Span) -> Option<Span> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sp_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_unsigned_leb128_to_buf` is never used
[INFO] [stdout]  --> src/rustc_data_structures/stable_hasher.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_unsigned_leb128_to_buf(buf: &mut [u8; 16], value: u64) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_signed_leb128_to_buf` is never used
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn write_signed_leb128_to_buf(buf: &mut [u8; 16], value: i64) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StableHasher` is never constructed
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct StableHasher<W> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StableHasherResult` is never used
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait StableHasherResult: Sized {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_uleb128` and `write_ileb128` are never used
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl<W> StableHasher<W> {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] 64 |     #[inline]
[INFO] [stdout] 65 |     fn write_uleb128(&mut self, value: u64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn write_ileb128(&mut self, value: i64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HashStable` is never used
[INFO] [stdout]    --> src/rustc_data_structures/stable_hasher.rs:150:11
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub trait HashStable<CTX> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blake2bCtx` is never constructed
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Blake2bCtx {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `b2b_g` is never used
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn b2b_g(v: &mut [u64; 16], a: usize, b: usize, c: usize, d: usize, x: u64, y: u64) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLAKE2B_IV` is never used
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const BLAKE2B_IV: [u64; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blake2b_compress` is never used
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn blake2b_compress(ctx: &mut Blake2bCtx, last: bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blake2b_update` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn blake2b_update(ctx: &mut Blake2bCtx, mut data: &[u8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blake2b_final` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn blake2b_final(ctx: &mut Blake2bCtx) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checked_mem_copy` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:206:4
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn checked_mem_copy<T1, T2>(from: &[T1], to: &mut [T2], byte_count: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blake2bHasher` is never constructed
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct Blake2bHasher(Blake2bCtx);
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalize` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 234 | impl Blake2bHasher {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 235 |     pub fn finalize(&mut self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_unsigned_leb128_to` is never used
[INFO] [stdout]  --> src/rustc_data_structures/leb128.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn write_unsigned_leb128_to<W>(mut value: u128, mut write: W) -> usize
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_signed_leb128_to` is never used
[INFO] [stdout]   --> src/rustc_data_structures/leb128.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn write_signed_leb128_to<W>(mut value: i128, mut write: W) -> usize
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/rustc_data_structures/stable_hasher.rs:188:33
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let val: u32 = unsafe { ::std::mem::transmute(*self) };
[INFO] [stdout]     |                                 ---------------------^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `f32::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/rustc_data_structures/stable_hasher.rs:195:33
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let val: u64 = unsafe { ::std::mem::transmute(*self) };
[INFO] [stdout]     |                                 ---------------------^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `f64::to_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codemap.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn files(&self) -> Ref<Vec<Rc<FileMap>>> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn files(&self) -> Ref<'_, Vec<Rc<FileMap>>> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:104:11
[INFO] [stdout]     |
[INFO] [stdout] 104 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 105 | ) -> PResult<ast::Crate> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 105 | ) -> PResult<'_, ast::Crate> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 113 | ) -> PResult<Vec<ast::Attribute>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 | ) -> PResult<'_, Vec<ast::Attribute>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:120:11
[INFO] [stdout]     |
[INFO] [stdout] 120 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 121 | ) -> PResult<P<ast::Expr>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 121 | ) -> PResult<'_, P<ast::Expr>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:132:11
[INFO] [stdout]     |
[INFO] [stdout] 132 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 133 | ) -> PResult<Option<P<ast::Item>>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 133 | ) -> PResult<'_, Option<P<ast::Item>>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:140:11
[INFO] [stdout]     |
[INFO] [stdout] 140 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 141 | ) -> PResult<ast::MetaItem> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 141 | ) -> PResult<'_, ast::MetaItem> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:148:11
[INFO] [stdout]     |
[INFO] [stdout] 148 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 149 | ) -> PResult<Option<ast::Stmt>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 149 | ) -> PResult<'_, Option<ast::Stmt>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:158:41
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn new_parser_from_source_str(sess: &ParseSess, name: String, source: String) -> Parser {
[INFO] [stdout]     |                                         ^^^^^^^^^^ the lifetime is elided here       ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn new_parser_from_source_str(sess: &ParseSess, name: String, source: String) -> Parser<'_> {
[INFO] [stdout]     |                                                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:187:32
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn filemap_to_parser(sess: &ParseSess, filemap: Rc<FileMap>) -> Parser {
[INFO] [stdout]     |                                ^^^^^^^^^^                           ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn filemap_to_parser(sess: &ParseSess, filemap: Rc<FileMap>) -> Parser<'_> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:204:34
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn new_parser_from_tts(sess: &ParseSess, tts: Vec<TokenTree>) -> Parser {
[INFO] [stdout]     |                                  ^^^^^^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn new_parser_from_tts(sess: &ParseSess, tts: Vec<TokenTree>) -> Parser<'_> {
[INFO] [stdout]     |                                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:233:31
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn stream_to_parser(sess: &ParseSess, stream: TokenStream) -> Parser {
[INFO] [stdout]     |                               ^^^^^^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn stream_to_parser(sess: &ParseSess, stream: TokenStream) -> Parser<'_> {
[INFO] [stdout]     |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/parser.rs:392:46
[INFO] [stdout]     |
[INFO] [stdout] 392 |     pub fn span_err(self, sp: Span, handler: &errors::Handler) -> DiagnosticBuilder {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 392 |     pub fn span_err(self, sp: Span, handler: &errors::Handler) -> DiagnosticBuilder<'_> {
[INFO] [stdout]     |                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&Box<[T]> as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<Box<[T]> as IntoIterator>::into_iter` in Rust 2024
[INFO] [stdout]    --> src/ptr.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 |         self.ptr.into_iter()
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/intoiterator-box-slice.html>
[INFO] [stdout]     = note: `#[warn(boxed_slice_into_iter)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 210 -         self.ptr.into_iter()
[INFO] [stdout] 210 +         self.ptr.iter()
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 210 -         self.ptr.into_iter()
[INFO] [stdout] 210 +         IntoIterator::into_iter(self.ptr)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |     walk_list!(visitor, visit_ty, &local.ty);
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:232:37
[INFO] [stdout]     |
[INFO] [stdout] 232 |     walk_list!(visitor, visit_expr, &local.init);
[INFO] [stdout]     |                                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:317:50
[INFO] [stdout]     |
[INFO] [stdout] 317 |             walk_list!(visitor, visit_trait_ref, opt_trait_reference);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:368:37
[INFO] [stdout]     |
[INFO] [stdout] 368 |     walk_list!(visitor, visit_expr, &variant.node.disr_expr);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:377:49
[INFO] [stdout]     |
[INFO] [stdout] 377 |             walk_list!(visitor, visit_lifetime, opt_lifetime);
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:448:43
[INFO] [stdout]     |
[INFO] [stdout] 448 |             walk_list!(visitor, visit_ty, &data.output);
[INFO] [stdout]     |                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:486:44
[INFO] [stdout]     |
[INFO] [stdout] 486 |             walk_list!(visitor, visit_pat, optional_subpattern);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:496:44
[INFO] [stdout]     |
[INFO] [stdout] 496 |             walk_list!(visitor, visit_pat, slice_pattern);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:533:39
[INFO] [stdout]     |
[INFO] [stdout] 533 |         walk_list!(visitor, visit_ty, &param.default);
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:617:45
[INFO] [stdout]     |
[INFO] [stdout] 617 |             walk_list!(visitor, visit_expr, default);
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:633:43
[INFO] [stdout]     |
[INFO] [stdout] 633 |             walk_list!(visitor, visit_ty, default);
[INFO] [stdout]     |                                           ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:727:45
[INFO] [stdout]     |
[INFO] [stdout] 727 |             walk_list!(visitor, visit_expr, optional_base);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:756:45
[INFO] [stdout]     |
[INFO] [stdout] 756 |             walk_list!(visitor, visit_expr, optional_else);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:767:45
[INFO] [stdout]     |
[INFO] [stdout] 767 |             walk_list!(visitor, visit_expr, optional_else);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:816:45
[INFO] [stdout]     |
[INFO] [stdout] 816 |             walk_list!(visitor, visit_expr, start);
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:817:45
[INFO] [stdout]     |
[INFO] [stdout] 817 |             walk_list!(visitor, visit_expr, end);
[INFO] [stdout]     |                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:827:45
[INFO] [stdout]     |
[INFO] [stdout] 827 |             walk_list!(visitor, visit_expr, opt_expr);
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:833:45
[INFO] [stdout]     |
[INFO] [stdout] 833 |             walk_list!(visitor, visit_expr, optional_expression);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:854:37
[INFO] [stdout]     |
[INFO] [stdout] 854 |     walk_list!(visitor, visit_expr, &arm.guard);
[INFO] [stdout]     |                                     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.15s
[INFO] running `Command { std: "docker" "inspect" "de72e98c3a5c9b9c87b1b7bdb832c9f09507771fd94c5f12c20823e51ff894ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de72e98c3a5c9b9c87b1b7bdb832c9f09507771fd94c5f12c20823e51ff894ed", kill_on_drop: false }`
[INFO] [stdout] de72e98c3a5c9b9c87b1b7bdb832c9f09507771fd94c5f12c20823e51ff894ed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 09e7b7660023307ca884370dba13f875ca3b573e0d2c8a143a97b0c3a277ef0b
[INFO] running `Command { std: "docker" "start" "-a" "09e7b7660023307ca884370dba13f875ca3b573e0d2c8a143a97b0c3a277ef0b", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `crate::ext`
[INFO] [stdout]   --> src/ext/build.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub use crate::ext;
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parse`
[INFO] [stdout]   --> src/ext/build.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub use crate::parse;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp_lhs`
[INFO] [stdout]    --> src/codemap.rs:499:27
[INFO] [stdout]     |
[INFO] [stdout] 499 |     fn merge_spans(&self, sp_lhs: Span, sp_rhs: Span) -> Option<Span> {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sp_lhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp_rhs`
[INFO] [stdout]    --> src/codemap.rs:499:41
[INFO] [stdout]     |
[INFO] [stdout] 499 |     fn merge_spans(&self, sp_lhs: Span, sp_rhs: Span) -> Option<Span> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sp_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_unsigned_leb128_to_buf` is never used
[INFO] [stdout]  --> src/rustc_data_structures/stable_hasher.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_unsigned_leb128_to_buf(buf: &mut [u8; 16], value: u64) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_signed_leb128_to_buf` is never used
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn write_signed_leb128_to_buf(buf: &mut [u8; 16], value: i64) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StableHasher` is never constructed
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct StableHasher<W> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StableHasherResult` is never used
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait StableHasherResult: Sized {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_uleb128` and `write_ileb128` are never used
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl<W> StableHasher<W> {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] 64 |     #[inline]
[INFO] [stdout] 65 |     fn write_uleb128(&mut self, value: u64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn write_ileb128(&mut self, value: i64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HashStable` is never used
[INFO] [stdout]    --> src/rustc_data_structures/stable_hasher.rs:150:11
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub trait HashStable<CTX> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blake2bCtx` is never constructed
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Blake2bCtx {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `b2b_g` is never used
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn b2b_g(v: &mut [u64; 16], a: usize, b: usize, c: usize, d: usize, x: u64, y: u64) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLAKE2B_IV` is never used
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const BLAKE2B_IV: [u64; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blake2b_compress` is never used
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn blake2b_compress(ctx: &mut Blake2bCtx, last: bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blake2b_update` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn blake2b_update(ctx: &mut Blake2bCtx, mut data: &[u8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blake2b_final` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn blake2b_final(ctx: &mut Blake2bCtx) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checked_mem_copy` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:206:4
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn checked_mem_copy<T1, T2>(from: &[T1], to: &mut [T2], byte_count: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blake2bHasher` is never constructed
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct Blake2bHasher(Blake2bCtx);
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalize` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 234 | impl Blake2bHasher {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 235 |     pub fn finalize(&mut self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_unsigned_leb128_to` is never used
[INFO] [stdout]  --> src/rustc_data_structures/leb128.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn write_unsigned_leb128_to<W>(mut value: u128, mut write: W) -> usize
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_signed_leb128_to` is never used
[INFO] [stdout]   --> src/rustc_data_structures/leb128.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn write_signed_leb128_to<W>(mut value: i128, mut write: W) -> usize
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/rustc_data_structures/stable_hasher.rs:188:33
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let val: u32 = unsafe { ::std::mem::transmute(*self) };
[INFO] [stdout]     |                                 ---------------------^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `f32::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/rustc_data_structures/stable_hasher.rs:195:33
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let val: u64 = unsafe { ::std::mem::transmute(*self) };
[INFO] [stdout]     |                                 ---------------------^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `f64::to_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codemap.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn files(&self) -> Ref<Vec<Rc<FileMap>>> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn files(&self) -> Ref<'_, Vec<Rc<FileMap>>> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:104:11
[INFO] [stdout]     |
[INFO] [stdout] 104 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 105 | ) -> PResult<ast::Crate> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 105 | ) -> PResult<'_, ast::Crate> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 113 | ) -> PResult<Vec<ast::Attribute>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 | ) -> PResult<'_, Vec<ast::Attribute>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:120:11
[INFO] [stdout]     |
[INFO] [stdout] 120 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 121 | ) -> PResult<P<ast::Expr>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 121 | ) -> PResult<'_, P<ast::Expr>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:132:11
[INFO] [stdout]     |
[INFO] [stdout] 132 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 133 | ) -> PResult<Option<P<ast::Item>>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 133 | ) -> PResult<'_, Option<P<ast::Item>>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:140:11
[INFO] [stdout]     |
[INFO] [stdout] 140 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 141 | ) -> PResult<ast::MetaItem> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 141 | ) -> PResult<'_, ast::MetaItem> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:148:11
[INFO] [stdout]     |
[INFO] [stdout] 148 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 149 | ) -> PResult<Option<ast::Stmt>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 149 | ) -> PResult<'_, Option<ast::Stmt>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:158:41
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn new_parser_from_source_str(sess: &ParseSess, name: String, source: String) -> Parser {
[INFO] [stdout]     |                                         ^^^^^^^^^^ the lifetime is elided here       ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn new_parser_from_source_str(sess: &ParseSess, name: String, source: String) -> Parser<'_> {
[INFO] [stdout]     |                                                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:187:32
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn filemap_to_parser(sess: &ParseSess, filemap: Rc<FileMap>) -> Parser {
[INFO] [stdout]     |                                ^^^^^^^^^^                           ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn filemap_to_parser(sess: &ParseSess, filemap: Rc<FileMap>) -> Parser<'_> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:204:34
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn new_parser_from_tts(sess: &ParseSess, tts: Vec<TokenTree>) -> Parser {
[INFO] [stdout]     |                                  ^^^^^^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn new_parser_from_tts(sess: &ParseSess, tts: Vec<TokenTree>) -> Parser<'_> {
[INFO] [stdout]     |                                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:233:31
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn stream_to_parser(sess: &ParseSess, stream: TokenStream) -> Parser {
[INFO] [stdout]     |                               ^^^^^^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn stream_to_parser(sess: &ParseSess, stream: TokenStream) -> Parser<'_> {
[INFO] [stdout]     |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/parser.rs:392:46
[INFO] [stdout]     |
[INFO] [stdout] 392 |     pub fn span_err(self, sp: Span, handler: &errors::Handler) -> DiagnosticBuilder {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 392 |     pub fn span_err(self, sp: Span, handler: &errors::Handler) -> DiagnosticBuilder<'_> {
[INFO] [stdout]     |                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&Box<[T]> as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<Box<[T]> as IntoIterator>::into_iter` in Rust 2024
[INFO] [stdout]    --> src/ptr.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 |         self.ptr.into_iter()
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/intoiterator-box-slice.html>
[INFO] [stdout]     = note: `#[warn(boxed_slice_into_iter)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 210 -         self.ptr.into_iter()
[INFO] [stdout] 210 +         self.ptr.iter()
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 210 -         self.ptr.into_iter()
[INFO] [stdout] 210 +         IntoIterator::into_iter(self.ptr)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |     walk_list!(visitor, visit_ty, &local.ty);
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:232:37
[INFO] [stdout]     |
[INFO] [stdout] 232 |     walk_list!(visitor, visit_expr, &local.init);
[INFO] [stdout]     |                                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:317:50
[INFO] [stdout]     |
[INFO] [stdout] 317 |             walk_list!(visitor, visit_trait_ref, opt_trait_reference);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:368:37
[INFO] [stdout]     |
[INFO] [stdout] 368 |     walk_list!(visitor, visit_expr, &variant.node.disr_expr);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:377:49
[INFO] [stdout]     |
[INFO] [stdout] 377 |             walk_list!(visitor, visit_lifetime, opt_lifetime);
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:448:43
[INFO] [stdout]     |
[INFO] [stdout] 448 |             walk_list!(visitor, visit_ty, &data.output);
[INFO] [stdout]     |                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:486:44
[INFO] [stdout]     |
[INFO] [stdout] 486 |             walk_list!(visitor, visit_pat, optional_subpattern);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:496:44
[INFO] [stdout]     |
[INFO] [stdout] 496 |             walk_list!(visitor, visit_pat, slice_pattern);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:533:39
[INFO] [stdout]     |
[INFO] [stdout] 533 |         walk_list!(visitor, visit_ty, &param.default);
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:617:45
[INFO] [stdout]     |
[INFO] [stdout] 617 |             walk_list!(visitor, visit_expr, default);
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:633:43
[INFO] [stdout]     |
[INFO] [stdout] 633 |             walk_list!(visitor, visit_ty, default);
[INFO] [stdout]     |                                           ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:727:45
[INFO] [stdout]     |
[INFO] [stdout] 727 |             walk_list!(visitor, visit_expr, optional_base);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:756:45
[INFO] [stdout]     |
[INFO] [stdout] 756 |             walk_list!(visitor, visit_expr, optional_else);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:767:45
[INFO] [stdout]     |
[INFO] [stdout] 767 |             walk_list!(visitor, visit_expr, optional_else);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:816:45
[INFO] [stdout]     |
[INFO] [stdout] 816 |             walk_list!(visitor, visit_expr, start);
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:817:45
[INFO] [stdout]     |
[INFO] [stdout] 817 |             walk_list!(visitor, visit_expr, end);
[INFO] [stdout]     |                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:827:45
[INFO] [stdout]     |
[INFO] [stdout] 827 |             walk_list!(visitor, visit_expr, opt_expr);
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:833:45
[INFO] [stdout]     |
[INFO] [stdout] 833 |             walk_list!(visitor, visit_expr, optional_expression);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling garando_syntax v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:854:37
[INFO] [stdout]     |
[INFO] [stdout] 854 |     walk_list!(visitor, visit_expr, &arm.guard);
[INFO] [stdout]     |                                     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ext`
[INFO] [stdout]   --> src/ext/build.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub use crate::ext;
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parse`
[INFO] [stdout]   --> src/ext/build.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub use crate::parse;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp_lhs`
[INFO] [stdout]    --> src/codemap.rs:499:27
[INFO] [stdout]     |
[INFO] [stdout] 499 |     fn merge_spans(&self, sp_lhs: Span, sp_rhs: Span) -> Option<Span> {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sp_lhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp_rhs`
[INFO] [stdout]    --> src/codemap.rs:499:41
[INFO] [stdout]     |
[INFO] [stdout] 499 |     fn merge_spans(&self, sp_lhs: Span, sp_rhs: Span) -> Option<Span> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sp_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_unsigned_leb128_to_buf` is never used
[INFO] [stdout]  --> src/rustc_data_structures/stable_hasher.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_unsigned_leb128_to_buf(buf: &mut [u8; 16], value: u64) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_signed_leb128_to_buf` is never used
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn write_signed_leb128_to_buf(buf: &mut [u8; 16], value: i64) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StableHasher` is never constructed
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct StableHasher<W> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StableHasherResult` is never used
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait StableHasherResult: Sized {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_uleb128` and `write_ileb128` are never used
[INFO] [stdout]   --> src/rustc_data_structures/stable_hasher.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl<W> StableHasher<W> {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] 64 |     #[inline]
[INFO] [stdout] 65 |     fn write_uleb128(&mut self, value: u64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn write_ileb128(&mut self, value: i64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HashStable` is never used
[INFO] [stdout]    --> src/rustc_data_structures/stable_hasher.rs:150:11
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub trait HashStable<CTX> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blake2bCtx` is never constructed
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Blake2bCtx {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `b2b_g` is never used
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn b2b_g(v: &mut [u64; 16], a: usize, b: usize, c: usize, d: usize, x: u64, y: u64) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLAKE2B_IV` is never used
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const BLAKE2B_IV: [u64; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blake2b_compress` is never used
[INFO] [stdout]   --> src/rustc_data_structures/blake2b.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn blake2b_compress(ctx: &mut Blake2bCtx, last: bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blake2b_update` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn blake2b_update(ctx: &mut Blake2bCtx, mut data: &[u8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blake2b_final` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn blake2b_final(ctx: &mut Blake2bCtx) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checked_mem_copy` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:206:4
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn checked_mem_copy<T1, T2>(from: &[T1], to: &mut [T2], byte_count: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blake2bHasher` is never constructed
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct Blake2bHasher(Blake2bCtx);
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalize` is never used
[INFO] [stdout]    --> src/rustc_data_structures/blake2b.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 234 | impl Blake2bHasher {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 235 |     pub fn finalize(&mut self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_unsigned_leb128_to` is never used
[INFO] [stdout]  --> src/rustc_data_structures/leb128.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn write_unsigned_leb128_to<W>(mut value: u128, mut write: W) -> usize
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_signed_leb128_to` is never used
[INFO] [stdout]   --> src/rustc_data_structures/leb128.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn write_signed_leb128_to<W>(mut value: i128, mut write: W) -> usize
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CodeMapExtension` is never used
[INFO] [stdout]    --> src/codemap.rs:772:11
[INFO] [stdout]     |
[INFO] [stdout] 772 |     trait CodeMapExtension {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/rustc_data_structures/stable_hasher.rs:188:33
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let val: u32 = unsafe { ::std::mem::transmute(*self) };
[INFO] [stdout]     |                                 ---------------------^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `f32::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/rustc_data_structures/stable_hasher.rs:195:33
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let val: u64 = unsafe { ::std::mem::transmute(*self) };
[INFO] [stdout]     |                                 ---------------------^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `f64::to_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codemap.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn files(&self) -> Ref<Vec<Rc<FileMap>>> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn files(&self) -> Ref<'_, Vec<Rc<FileMap>>> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:104:11
[INFO] [stdout]     |
[INFO] [stdout] 104 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 105 | ) -> PResult<ast::Crate> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 105 | ) -> PResult<'_, ast::Crate> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 113 | ) -> PResult<Vec<ast::Attribute>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 | ) -> PResult<'_, Vec<ast::Attribute>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:120:11
[INFO] [stdout]     |
[INFO] [stdout] 120 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 121 | ) -> PResult<P<ast::Expr>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 121 | ) -> PResult<'_, P<ast::Expr>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:132:11
[INFO] [stdout]     |
[INFO] [stdout] 132 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 133 | ) -> PResult<Option<P<ast::Item>>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 133 | ) -> PResult<'_, Option<P<ast::Item>>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:140:11
[INFO] [stdout]     |
[INFO] [stdout] 140 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 141 | ) -> PResult<ast::MetaItem> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 141 | ) -> PResult<'_, ast::MetaItem> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:148:11
[INFO] [stdout]     |
[INFO] [stdout] 148 |     sess: &ParseSess,
[INFO] [stdout]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 149 | ) -> PResult<Option<ast::Stmt>> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 149 | ) -> PResult<'_, Option<ast::Stmt>> {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:158:41
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn new_parser_from_source_str(sess: &ParseSess, name: String, source: String) -> Parser {
[INFO] [stdout]     |                                         ^^^^^^^^^^ the lifetime is elided here       ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn new_parser_from_source_str(sess: &ParseSess, name: String, source: String) -> Parser<'_> {
[INFO] [stdout]     |                                                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:187:32
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn filemap_to_parser(sess: &ParseSess, filemap: Rc<FileMap>) -> Parser {
[INFO] [stdout]     |                                ^^^^^^^^^^                           ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn filemap_to_parser(sess: &ParseSess, filemap: Rc<FileMap>) -> Parser<'_> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:204:34
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn new_parser_from_tts(sess: &ParseSess, tts: Vec<TokenTree>) -> Parser {
[INFO] [stdout]     |                                  ^^^^^^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn new_parser_from_tts(sess: &ParseSess, tts: Vec<TokenTree>) -> Parser<'_> {
[INFO] [stdout]     |                                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/mod.rs:233:31
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn stream_to_parser(sess: &ParseSess, stream: TokenStream) -> Parser {
[INFO] [stdout]     |                               ^^^^^^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn stream_to_parser(sess: &ParseSess, stream: TokenStream) -> Parser<'_> {
[INFO] [stdout]     |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse/parser.rs:392:46
[INFO] [stdout]     |
[INFO] [stdout] 392 |     pub fn span_err(self, sp: Span, handler: &errors::Handler) -> DiagnosticBuilder {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 392 |     pub fn span_err(self, sp: Span, handler: &errors::Handler) -> DiagnosticBuilder<'_> {
[INFO] [stdout]     |                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&Box<[T]> as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<Box<[T]> as IntoIterator>::into_iter` in Rust 2024
[INFO] [stdout]    --> src/ptr.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 |         self.ptr.into_iter()
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/intoiterator-box-slice.html>
[INFO] [stdout]     = note: `#[warn(boxed_slice_into_iter)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 210 -         self.ptr.into_iter()
[INFO] [stdout] 210 +         self.ptr.iter()
[INFO] [stdout]     |
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 210 -         self.ptr.into_iter()
[INFO] [stdout] 210 +         IntoIterator::into_iter(self.ptr)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |     walk_list!(visitor, visit_ty, &local.ty);
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:232:37
[INFO] [stdout]     |
[INFO] [stdout] 232 |     walk_list!(visitor, visit_expr, &local.init);
[INFO] [stdout]     |                                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:317:50
[INFO] [stdout]     |
[INFO] [stdout] 317 |             walk_list!(visitor, visit_trait_ref, opt_trait_reference);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:368:37
[INFO] [stdout]     |
[INFO] [stdout] 368 |     walk_list!(visitor, visit_expr, &variant.node.disr_expr);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:377:49
[INFO] [stdout]     |
[INFO] [stdout] 377 |             walk_list!(visitor, visit_lifetime, opt_lifetime);
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:448:43
[INFO] [stdout]     |
[INFO] [stdout] 448 |             walk_list!(visitor, visit_ty, &data.output);
[INFO] [stdout]     |                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:486:44
[INFO] [stdout]     |
[INFO] [stdout] 486 |             walk_list!(visitor, visit_pat, optional_subpattern);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:496:44
[INFO] [stdout]     |
[INFO] [stdout] 496 |             walk_list!(visitor, visit_pat, slice_pattern);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:533:39
[INFO] [stdout]     |
[INFO] [stdout] 533 |         walk_list!(visitor, visit_ty, &param.default);
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:617:45
[INFO] [stdout]     |
[INFO] [stdout] 617 |             walk_list!(visitor, visit_expr, default);
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:633:43
[INFO] [stdout]     |
[INFO] [stdout] 633 |             walk_list!(visitor, visit_ty, default);
[INFO] [stdout]     |                                           ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:727:45
[INFO] [stdout]     |
[INFO] [stdout] 727 |             walk_list!(visitor, visit_expr, optional_base);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:756:45
[INFO] [stdout]     |
[INFO] [stdout] 756 |             walk_list!(visitor, visit_expr, optional_else);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:767:45
[INFO] [stdout]     |
[INFO] [stdout] 767 |             walk_list!(visitor, visit_expr, optional_else);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:816:45
[INFO] [stdout]     |
[INFO] [stdout] 816 |             walk_list!(visitor, visit_expr, start);
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:817:45
[INFO] [stdout]     |
[INFO] [stdout] 817 |             walk_list!(visitor, visit_expr, end);
[INFO] [stdout]     |                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:827:45
[INFO] [stdout]     |
[INFO] [stdout] 827 |             walk_list!(visitor, visit_expr, opt_expr);
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:833:45
[INFO] [stdout]     |
[INFO] [stdout] 833 |             walk_list!(visitor, visit_expr, optional_expression);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/visit.rs:854:37
[INFO] [stdout]     |
[INFO] [stdout] 854 |     walk_list!(visitor, visit_expr, &arm.guard);
[INFO] [stdout]     |                                     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         while let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 181 -         for elem in $list {
[INFO] [stdout] 181 +         if let Some(elem) = $list {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.38s
[INFO] running `Command { std: "docker" "inspect" "09e7b7660023307ca884370dba13f875ca3b573e0d2c8a143a97b0c3a277ef0b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09e7b7660023307ca884370dba13f875ca3b573e0d2c8a143a97b0c3a277ef0b", kill_on_drop: false }`
[INFO] [stdout] 09e7b7660023307ca884370dba13f875ca3b573e0d2c8a143a97b0c3a277ef0b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a53a948f250de75ef3078457a057298ffd01cdf7f71523ddd9695c538593347a
[INFO] running `Command { std: "docker" "start" "-a" "a53a948f250de75ef3078457a057298ffd01cdf7f71523ddd9695c538593347a", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::ext`
[INFO] [stderr]   --> src/ext/build.rs:12:13
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub use crate::ext;
[INFO] [stderr]    |             ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::parse`
[INFO] [stderr]   --> src/ext/build.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 |     pub use crate::parse;
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sp_lhs`
[INFO] [stderr]    --> src/codemap.rs:499:27
[INFO] [stderr]     |
[INFO] [stderr] 499 |     fn merge_spans(&self, sp_lhs: Span, sp_rhs: Span) -> Option<Span> {
[INFO] [stderr]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sp_lhs`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sp_rhs`
[INFO] [stderr]    --> src/codemap.rs:499:41
[INFO] [stderr]     |
[INFO] [stderr] 499 |     fn merge_spans(&self, sp_lhs: Span, sp_rhs: Span) -> Option<Span> {
[INFO] [stderr]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sp_rhs`
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_unsigned_leb128_to_buf` is never used
[INFO] [stderr]  --> src/rustc_data_structures/stable_hasher.rs:6:4
[INFO] [stderr]   |
[INFO] [stderr] 6 | fn write_unsigned_leb128_to_buf(buf: &mut [u8; 16], value: u64) -> usize {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_signed_leb128_to_buf` is never used
[INFO] [stderr]   --> src/rustc_data_structures/stable_hasher.rs:10:4
[INFO] [stderr]    |
[INFO] [stderr] 10 | fn write_signed_leb128_to_buf(buf: &mut [u8; 16], value: i64) -> usize {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StableHasher` is never constructed
[INFO] [stderr]   --> src/rustc_data_structures/stable_hasher.rs:32:12
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub struct StableHasher<W> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `StableHasherResult` is never used
[INFO] [stderr]   --> src/rustc_data_structures/stable_hasher.rs:44:11
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub trait StableHasherResult: Sized {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `write_uleb128` and `write_ileb128` are never used
[INFO] [stderr]   --> src/rustc_data_structures/stable_hasher.rs:65:8
[INFO] [stderr]    |
[INFO] [stderr] 63 | impl<W> StableHasher<W> {
[INFO] [stderr]    | ----------------------- methods in this implementation
[INFO] [stderr] 64 |     #[inline]
[INFO] [stderr] 65 |     fn write_uleb128(&mut self, value: u64) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 |     fn write_ileb128(&mut self, value: i64) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `HashStable` is never used
[INFO] [stderr]    --> src/rustc_data_structures/stable_hasher.rs:150:11
[INFO] [stderr]     |
[INFO] [stderr] 150 | pub trait HashStable<CTX> {
[INFO] [stderr]     |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Blake2bCtx` is never constructed
[INFO] [stderr]   --> src/rustc_data_structures/blake2b.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct Blake2bCtx {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `b2b_g` is never used
[INFO] [stderr]   --> src/rustc_data_structures/blake2b.rs:42:4
[INFO] [stderr]    |
[INFO] [stderr] 42 | fn b2b_g(v: &mut [u64; 16], a: usize, b: usize, c: usize, d: usize, x: u64, y: u64) {
[INFO] [stderr]    |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLAKE2B_IV` is never used
[INFO] [stderr]   --> src/rustc_data_structures/blake2b.rs:54:7
[INFO] [stderr]    |
[INFO] [stderr] 54 | const BLAKE2B_IV: [u64; 8] = [
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `blake2b_compress` is never used
[INFO] [stderr]   --> src/rustc_data_structures/blake2b.rs:65:4
[INFO] [stderr]    |
[INFO] [stderr] 65 | fn blake2b_compress(ctx: &mut Blake2bCtx, last: bool) {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `blake2b_update` is never used
[INFO] [stderr]    --> src/rustc_data_structures/blake2b.rs:141:4
[INFO] [stderr]     |
[INFO] [stderr] 141 | fn blake2b_update(ctx: &mut Blake2bCtx, mut data: &[u8]) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `blake2b_final` is never used
[INFO] [stderr]    --> src/rustc_data_structures/blake2b.rs:178:4
[INFO] [stderr]     |
[INFO] [stderr] 178 | fn blake2b_final(ctx: &mut Blake2bCtx) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `checked_mem_copy` is never used
[INFO] [stderr]    --> src/rustc_data_structures/blake2b.rs:206:4
[INFO] [stderr]     |
[INFO] [stderr] 206 | fn checked_mem_copy<T1, T2>(from: &[T1], to: &mut [T2], byte_count: usize) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Blake2bHasher` is never constructed
[INFO] [stderr]    --> src/rustc_data_structures/blake2b.rs:218:12
[INFO] [stderr]     |
[INFO] [stderr] 218 | pub struct Blake2bHasher(Blake2bCtx);
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `finalize` is never used
[INFO] [stderr]    --> src/rustc_data_structures/blake2b.rs:235:12
[INFO] [stderr]     |
[INFO] [stderr] 234 | impl Blake2bHasher {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] 235 |     pub fn finalize(&mut self) -> &[u8] {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_unsigned_leb128_to` is never used
[INFO] [stderr]  --> src/rustc_data_structures/leb128.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn write_unsigned_leb128_to<W>(mut value: u128, mut write: W) -> usize
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_signed_leb128_to` is never used
[INFO] [stderr]   --> src/rustc_data_structures/leb128.rs:38:8
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub fn write_signed_leb128_to<W>(mut value: i128, mut write: W) -> usize
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/rustc_data_structures/stable_hasher.rs:188:33
[INFO] [stderr]     |
[INFO] [stderr] 188 |         let val: u32 = unsafe { ::std::mem::transmute(*self) };
[INFO] [stderr]     |                                 ---------------------^^^^^^^
[INFO] [stderr]     |                                 |
[INFO] [stderr]     |                                 help: replace this with: `f32::to_bits`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/rustc_data_structures/stable_hasher.rs:195:33
[INFO] [stderr]     |
[INFO] [stderr] 195 |         let val: u64 = unsafe { ::std::mem::transmute(*self) };
[INFO] [stderr]     |                                 ---------------------^^^^^^^
[INFO] [stderr]     |                                 |
[INFO] [stderr]     |                                 help: replace this with: `f64::to_bits`
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/codemap.rs:114:18
[INFO] [stderr]     |
[INFO] [stderr] 114 |     pub fn files(&self) -> Ref<Vec<Rc<FileMap>>> {
[INFO] [stderr]     |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 114 |     pub fn files(&self) -> Ref<'_, Vec<Rc<FileMap>>> {
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:104:11
[INFO] [stderr]     |
[INFO] [stderr] 104 |     sess: &ParseSess,
[INFO] [stderr]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stderr] 105 | ) -> PResult<ast::Crate> {
[INFO] [stderr]     |      ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 105 | ) -> PResult<'_, ast::Crate> {
[INFO] [stderr]     |              +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:112:11
[INFO] [stderr]     |
[INFO] [stderr] 112 |     sess: &ParseSess,
[INFO] [stderr]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stderr] 113 | ) -> PResult<Vec<ast::Attribute>> {
[INFO] [stderr]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 113 | ) -> PResult<'_, Vec<ast::Attribute>> {
[INFO] [stderr]     |              +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:120:11
[INFO] [stderr]     |
[INFO] [stderr] 120 |     sess: &ParseSess,
[INFO] [stderr]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stderr] 121 | ) -> PResult<P<ast::Expr>> {
[INFO] [stderr]     |      ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 121 | ) -> PResult<'_, P<ast::Expr>> {
[INFO] [stderr]     |              +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:132:11
[INFO] [stderr]     |
[INFO] [stderr] 132 |     sess: &ParseSess,
[INFO] [stderr]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stderr] 133 | ) -> PResult<Option<P<ast::Item>>> {
[INFO] [stderr]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 133 | ) -> PResult<'_, Option<P<ast::Item>>> {
[INFO] [stderr]     |              +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:140:11
[INFO] [stderr]     |
[INFO] [stderr] 140 |     sess: &ParseSess,
[INFO] [stderr]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stderr] 141 | ) -> PResult<ast::MetaItem> {
[INFO] [stderr]     |      ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 141 | ) -> PResult<'_, ast::MetaItem> {
[INFO] [stderr]     |              +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:148:11
[INFO] [stderr]     |
[INFO] [stderr] 148 |     sess: &ParseSess,
[INFO] [stderr]     |           ^^^^^^^^^^ the lifetime is elided here
[INFO] [stderr] 149 | ) -> PResult<Option<ast::Stmt>> {
[INFO] [stderr]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 149 | ) -> PResult<'_, Option<ast::Stmt>> {
[INFO] [stderr]     |              +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:158:41
[INFO] [stderr]     |
[INFO] [stderr] 158 | pub fn new_parser_from_source_str(sess: &ParseSess, name: String, source: String) -> Parser {
[INFO] [stderr]     |                                         ^^^^^^^^^^ the lifetime is elided here       ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 158 | pub fn new_parser_from_source_str(sess: &ParseSess, name: String, source: String) -> Parser<'_> {
[INFO] [stderr]     |                                                                                            ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:187:32
[INFO] [stderr]     |
[INFO] [stderr] 187 | pub fn filemap_to_parser(sess: &ParseSess, filemap: Rc<FileMap>) -> Parser {
[INFO] [stderr]     |                                ^^^^^^^^^^                           ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                                |
[INFO] [stderr]     |                                the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 187 | pub fn filemap_to_parser(sess: &ParseSess, filemap: Rc<FileMap>) -> Parser<'_> {
[INFO] [stderr]     |                                                                           ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:204:34
[INFO] [stderr]     |
[INFO] [stderr] 204 | pub fn new_parser_from_tts(sess: &ParseSess, tts: Vec<TokenTree>) -> Parser {
[INFO] [stderr]     |                                  ^^^^^^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 204 | pub fn new_parser_from_tts(sess: &ParseSess, tts: Vec<TokenTree>) -> Parser<'_> {
[INFO] [stderr]     |                                                                            ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/mod.rs:233:31
[INFO] [stderr]     |
[INFO] [stderr] 233 | pub fn stream_to_parser(sess: &ParseSess, stream: TokenStream) -> Parser {
[INFO] [stderr]     |                               ^^^^^^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 233 | pub fn stream_to_parser(sess: &ParseSess, stream: TokenStream) -> Parser<'_> {
[INFO] [stderr]     |                                                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse/parser.rs:392:46
[INFO] [stderr]     |
[INFO] [stderr] 392 |     pub fn span_err(self, sp: Span, handler: &errors::Handler) -> DiagnosticBuilder {
[INFO] [stderr]     |                                              ^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                                              |
[INFO] [stderr]     |                                              the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 392 |     pub fn span_err(self, sp: Span, handler: &errors::Handler) -> DiagnosticBuilder<'_> {
[INFO] [stderr]     |                                                                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&Box<[T]> as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<Box<[T]> as IntoIterator>::into_iter` in Rust 2024
[INFO] [stderr]    --> src/ptr.rs:210:18
[INFO] [stderr]     |
[INFO] [stderr] 210 |         self.ptr.into_iter()
[INFO] [stderr]     |                  ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2024
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/intoiterator-box-slice.html>
[INFO] [stderr]     = note: `#[warn(boxed_slice_into_iter)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 210 -         self.ptr.into_iter()
[INFO] [stderr] 210 +         self.ptr.iter()
[INFO] [stderr]     |
[INFO] [stderr] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 210 -         self.ptr.into_iter()
[INFO] [stderr] 210 +         IntoIterator::into_iter(self.ptr)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:231:35
[INFO] [stderr]     |
[INFO] [stderr] 231 |     walk_list!(visitor, visit_ty, &local.ty);
[INFO] [stderr]     |                                   ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:232:37
[INFO] [stderr]     |
[INFO] [stderr] 232 |     walk_list!(visitor, visit_expr, &local.init);
[INFO] [stderr]     |                                     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:317:50
[INFO] [stderr]     |
[INFO] [stderr] 317 |             walk_list!(visitor, visit_trait_ref, opt_trait_reference);
[INFO] [stderr]     |                                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:368:37
[INFO] [stderr]     |
[INFO] [stderr] 368 |     walk_list!(visitor, visit_expr, &variant.node.disr_expr);
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:377:49
[INFO] [stderr]     |
[INFO] [stderr] 377 |             walk_list!(visitor, visit_lifetime, opt_lifetime);
[INFO] [stderr]     |                                                 ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:448:43
[INFO] [stderr]     |
[INFO] [stderr] 448 |             walk_list!(visitor, visit_ty, &data.output);
[INFO] [stderr]     |                                           ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:486:44
[INFO] [stderr]     |
[INFO] [stderr] 486 |             walk_list!(visitor, visit_pat, optional_subpattern);
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:496:44
[INFO] [stderr]     |
[INFO] [stderr] 496 |             walk_list!(visitor, visit_pat, slice_pattern);
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:533:39
[INFO] [stderr]     |
[INFO] [stderr] 533 |         walk_list!(visitor, visit_ty, &param.default);
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:617:45
[INFO] [stderr]     |
[INFO] [stderr] 617 |             walk_list!(visitor, visit_expr, default);
[INFO] [stderr]     |                                             ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:633:43
[INFO] [stderr]     |
[INFO] [stderr] 633 |             walk_list!(visitor, visit_ty, default);
[INFO] [stderr]     |                                           ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:727:45
[INFO] [stderr]     |
[INFO] [stderr] 727 |             walk_list!(visitor, visit_expr, optional_base);
[INFO] [stderr]     |                                             ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:756:45
[INFO] [stderr]     |
[INFO] [stderr] 756 |             walk_list!(visitor, visit_expr, optional_else);
[INFO] [stderr]     |                                             ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:767:45
[INFO] [stderr]     |
[INFO] [stderr] 767 |             walk_list!(visitor, visit_expr, optional_else);
[INFO] [stderr]     |                                             ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:816:45
[INFO] [stderr]     |
[INFO] [stderr] 816 |             walk_list!(visitor, visit_expr, start);
[INFO] [stderr]     |                                             ^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:817:45
[INFO] [stderr]     |
[INFO] [stderr] 817 |             walk_list!(visitor, visit_expr, end);
[INFO] [stderr]     |                                             ^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:827:45
[INFO] [stderr]     |
[INFO] [stderr] 827 |             walk_list!(visitor, visit_expr, opt_expr);
[INFO] [stderr]     |                                             ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:833:45
[INFO] [stderr]     |
[INFO] [stderr] 833 |             walk_list!(visitor, visit_expr, optional_expression);
[INFO] [stderr]     |                                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/visit.rs:854:37
[INFO] [stderr]     |
[INFO] [stderr] 854 |     walk_list!(visitor, visit_expr, &arm.guard);
[INFO] [stderr]     |                                     ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         while let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 181 -         for elem in $list {
[INFO] [stderr] 181 +         if let Some(elem) = $list {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `garando_syntax` (lib) generated 55 warnings (run `cargo fix --lib -p garando_syntax` to apply 19 suggestions)
[INFO] [stderr] warning: trait `CodeMapExtension` is never used
[INFO] [stderr]    --> src/codemap.rs:772:11
[INFO] [stderr]     |
[INFO] [stderr] 772 |     trait CodeMapExtension {
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `garando_syntax` (lib test) generated 56 warnings (55 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/garando_syntax-56e24c7989bc69ac)
[INFO] [stdout] 
[INFO] [stdout] running 69 tests
[INFO] [stdout] test abi::lookup_Rust ... ok
[INFO] [stdout] test abi::lookup_baz ... ok
[INFO] [stdout] test abi::indices_are_correct ... ok
[INFO] [stdout] test abi::lookup_cdecl ... ok
[INFO] [stdout] test codemap::tests::span_to_snippet_and_lines_spanning_multiple_lines ... ok
[INFO] [stdout] test codemap::tests::t3 ... ok
[INFO] [stdout] test codemap::tests::t1 ... ok
[INFO] [stdout] test codemap::tests::t4 ... ok
[INFO] [stdout] test codemap::tests::t5 ... ok
[INFO] [stdout] test codemap::tests::t7 ... ok
[INFO] [stdout] test codemap::tests::t6 ... ok
[INFO] [stdout] test codemap::tests::t8 ... ok
[INFO] [stdout] test parse::lexer::comments::tests::test_block_doc_comment_3 ... ok
[INFO] [stdout] test parse::lexer::comments::tests::test_block_doc_comment_4 ... ok
[INFO] [stdout] test parse::lexer::comments::tests::test_block_doc_comment_2 ... ok
[INFO] [stdout] test parse::lexer::comments::tests::test_line_doc_comment ... ok
[INFO] [stdout] test parse::lexer::tests::character_escaped ... ok
[INFO] [stdout] test fold::tests::ident_transformation ... ok
[INFO] [stdout] test parse::lexer::tests::character_space ... ok
[INFO] [stdout] test parse::lexer::tests::character_a ... ok
[INFO] [stdout] test parse::lexer::tests::crlf_comments ... ok
[INFO] [stdout] test parse::lexer::tests::dcparsing_2 ... ok
[INFO] [stdout] test parse::lexer::tests::dcparsing_4 ... ok
[INFO] [stdout] test parse::lexer::tests::dcparsing_3 ... ok
[INFO] [stdout] test parse::lexer::tests::literal_suffixes ... ok
[INFO] [stdout] test parse::lexer::tests::doublecolonparsing ... ok
[INFO] [stdout] test parse::lexer::tests::lifetime_name ... ok
[INFO] [stdout] test parse::lexer::tests::line_doc_comments ... ok
[INFO] [stderr] error: expected identifier, found keyword `return`
[INFO] [stdout] test parse::lexer::tests::nested_block_comments ... ok
[INFO] [stderr]  --> bogofile:1:13
[INFO] [stdout] test parse::lexer::tests::raw_string ... ok
[INFO] [stderr]   |
[INFO] [stderr] 1 | ::abc::def::return
[INFO] [stderr]   |             ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to previous error(s)
[INFO] [stderr] 
[INFO] [stdout] test parse::tests::out_of_line_mod ... ok
[INFO] [stdout] test parse::tests::crlf_doc_comments ... ok
[INFO] [stdout] test fold::tests::ident_transformation_in_defs ... ok
[INFO] [stdout] test parse::tests::parse_exprs ... ok
[INFO] [stdout] test parse::lexer::tests::t1 ... ok
[INFO] [stdout] test parse::tests::parse_extern_crate ... ok
[INFO] [stdout] test parse::tests::attrs_fix_bug ... ok
[INFO] [stdout] test parse::tests::parse_stmt_1 ... ok
[INFO] [stdout] test parse::tests::parse_use ... ok
[INFO] [stdout] test parse::tests::ret_expr ... ok
[INFO] [stdout] test parse::tests::span_of_self_arg_pat_idents_are_correct ... ok
[INFO] [stdout] test parse::tests::string_to_tts_1 ... ok
[INFO] [stdout] test parse::tests::parse_fundecl ... ok
[INFO] [stdout] test parse::tests::parse_ident_pat ... ok
[INFO] [stdout] test parse::tests::string_to_tts_macro ... ok
[INFO] [stdout] test tokenstream::tests::test_concat ... ok
[INFO] [stdout] test parse::tests::ttdelim_span ... ok
[INFO] [stdout] test tokenstream::tests::test_diseq_0 ... ok
[INFO] [stdout] test parse::tests::path_exprs_1 ... ok
[INFO] [stdout] test tokenstream::tests::test_eq_0 ... ok
[INFO] [stdout] test tokenstream::tests::test_eq_1 ... ok
[INFO] [stdout] test tokenstream::tests::test_to_from_bijection ... ok
[INFO] [stdout] test tokenstream::tests::test_eq_3 ... ok
[INFO] [stdout] test tokenstream::tests::test_is_empty ... ok
[INFO] [stdout] test util::parser_testing::tests::eqmodws ... ok
[INFO] [stdout] test tokenstream::tests::test_diseq_1 ... ok
[INFO] [stdout] test util::parser_testing::tests::non_pattern_whitespace ... ok
[INFO] [stdout] test util::small_vector::tests::test_expect_one_one ... ok
[INFO] [stdout] test util::small_vector::tests::test_from_iter ... ok
[INFO] [stdout] test util::small_vector::tests::test_len ... ok
[INFO] [stdout] test parse::lexer::comments::tests::test_block_doc_comment_1 ... ok
[INFO] [stdout] test parse::tests::path_exprs_2 ... ok
[INFO] [stdout] test util::parser_testing::tests::pattern_whitespace ... ok
[INFO] [stdout] test util::small_vector::tests::test_move_iter ... ok
[INFO] [stdout] test util::small_vector::tests::test_push_get ... ok
[INFO] [stdout] test codemap::tests::t2 - should panic ... ok
[INFO] [stdout] test parse::tests::bad_path_expr_1 - should panic ... ok
[INFO] [stderr]    Doc-tests garando_syntax
[INFO] [stdout] test util::small_vector::tests::test_expect_one_many - should panic ... ok
[INFO] [stdout] test util::small_vector::tests::test_expect_one_zero - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 69 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test src/ast.rs - ast::Arm (line 722) ... ignored
[INFO] [stdout] test src/ast.rs - ast::QSelf (line 924) ... ignored
[INFO] [stdout] test src/parse/parser.rs - parse::parser::Parser<'a>::parse_where_clause (line 4708) ... ignored
[INFO] [stdout] test src/print/pp.rs - print::pp (line 4) ... ignored
[INFO] [stdout] test src/print/pp.rs - print::pp (line 73) ... ignored
[INFO] [stdout] test src/print/pp.rs - print::pp (line 79) ... ignored
[INFO] [stdout] test src/print/pp.rs - print::pp (line 86) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 7 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a53a948f250de75ef3078457a057298ffd01cdf7f71523ddd9695c538593347a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a53a948f250de75ef3078457a057298ffd01cdf7f71523ddd9695c538593347a", kill_on_drop: false }`
[INFO] [stdout] a53a948f250de75ef3078457a057298ffd01cdf7f71523ddd9695c538593347a
