[INFO] fetching crate garando_syntax 0.1.1... [INFO] testing garando_syntax-0.1.1 against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] extracting crate garando_syntax 0.1.1 into /workspace/builds/worker-6-tc1/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-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate garando_syntax 0.1.1 on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 31 packages to latest compatible versions [INFO] [stderr] Adding bitflags v1.3.2 (available: v2.9.3) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded garando_errors v0.1.0 [INFO] [stderr] Downloaded garando_pos v0.1.0 [INFO] [stderr] Downloaded term v0.6.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5e012fce18b762b4a25c8fb97f1c4958dc6a087753b38a81c613280c84d2f5d9 [INFO] running `Command { std: "docker" "start" "-a" "5e012fce18b762b4a25c8fb97f1c4958dc6a087753b38a81c613280c84d2f5d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5e012fce18b762b4a25c8fb97f1c4958dc6a087753b38a81c613280c84d2f5d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5e012fce18b762b4a25c8fb97f1c4958dc6a087753b38a81c613280c84d2f5d9", kill_on_drop: false }` [INFO] [stdout] 5e012fce18b762b4a25c8fb97f1c4958dc6a087753b38a81c613280c84d2f5d9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 38227a9ca2bbf38f4bc6f6fef379a12bfdccbb544c1e1058f181326612c70b75 [INFO] running `Command { std: "docker" "start" "-a" "38227a9ca2bbf38f4bc6f6fef379a12bfdccbb544c1e1058f181326612c70b75", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.106 [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.219 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling garando_pos v0.1.0 [INFO] [stderr] Compiling serde_json v1.0.143 [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 { [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 { [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 { [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 StableHasher { [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 { [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(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(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(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>> { [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>> { [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 { [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> { [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> { [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> { [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> { [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>> { [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>> { [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 { [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> { [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> { [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) -> 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) -> 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) -> 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) -> 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 ` 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 [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, ¶m.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.27s [INFO] running `Command { std: "docker" "inspect" "38227a9ca2bbf38f4bc6f6fef379a12bfdccbb544c1e1058f181326612c70b75", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "38227a9ca2bbf38f4bc6f6fef379a12bfdccbb544c1e1058f181326612c70b75", kill_on_drop: false }` [INFO] [stdout] 38227a9ca2bbf38f4bc6f6fef379a12bfdccbb544c1e1058f181326612c70b75 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8a5305e0878b1ea55865b474cc668ffa88432e4ffca99270c19815b2a7eda473 [INFO] running `Command { std: "docker" "start" "-a" "8a5305e0878b1ea55865b474cc668ffa88432e4ffca99270c19815b2a7eda473", 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 { [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 { [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 { [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 StableHasher { [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 { [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(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(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(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>> { [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>> { [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 { [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> { [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> { [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> { [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> { [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>> { [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>> { [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 { [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> { [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> { [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) -> 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) -> 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) -> 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) -> 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 ` 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 [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, ¶m.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] [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: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] [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 { [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 { [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 { [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 StableHasher { [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 { [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(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(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(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>> { [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>> { [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 { [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> { [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> { [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> { [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> { [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>> { [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>> { [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 { [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> { [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> { [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) -> 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) -> 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) -> 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) -> 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 ` 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 [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, ¶m.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.06s [INFO] running `Command { std: "docker" "inspect" "8a5305e0878b1ea55865b474cc668ffa88432e4ffca99270c19815b2a7eda473", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a5305e0878b1ea55865b474cc668ffa88432e4ffca99270c19815b2a7eda473", kill_on_drop: false }` [INFO] [stdout] 8a5305e0878b1ea55865b474cc668ffa88432e4ffca99270c19815b2a7eda473 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 849a0c18c08fe7ece34ad0ebb7501265b05060e2367c528dceca64e64e545b6f [INFO] running `Command { std: "docker" "start" "-a" "849a0c18c08fe7ece34ad0ebb7501265b05060e2367c528dceca64e64e545b6f", 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 { [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 { [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 { [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 StableHasher { [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 { [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(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(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(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>> { [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>> { [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 { [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> { [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> { [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> { [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> { [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>> { [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>> { [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 { [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> { [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> { [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) -> 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) -> 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) -> 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) -> 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 ` 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 [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, ¶m.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: 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) generated 55 warnings (run `cargo fix --lib -p garando_syntax` to apply 17 suggestions) [INFO] [stderr] warning: `garando_syntax` (lib test) generated 56 warnings (55 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/garando_syntax-5a8667ebf057b68a) [INFO] [stdout] [INFO] [stdout] running 69 tests [INFO] [stdout] test abi::indices_are_correct ... ok [INFO] [stdout] test abi::lookup_Rust ... ok [INFO] [stdout] test abi::lookup_baz ... 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::t1 ... ok [INFO] [stdout] test codemap::tests::t5 ... ok [INFO] [stdout] test codemap::tests::t4 ... ok [INFO] [stdout] test codemap::tests::t7 ... ok [INFO] [stdout] test codemap::tests::t3 ... ok [INFO] [stdout] test codemap::tests::t8 ... ok [INFO] [stdout] test parse::lexer::comments::tests::test_block_doc_comment_1 ... ok [INFO] [stdout] test parse::lexer::comments::tests::test_block_doc_comment_2 ... ok [INFO] [stdout] test parse::lexer::comments::tests::test_block_doc_comment_4 ... ok [INFO] [stdout] test fold::tests::ident_transformation_in_defs ... ok [INFO] [stdout] test fold::tests::ident_transformation ... ok [INFO] [stdout] test parse::lexer::tests::character_a ... ok [INFO] [stdout] test parse::lexer::tests::character_escaped ... ok [INFO] [stdout] test parse::lexer::tests::character_space ... ok [INFO] [stdout] test parse::lexer::tests::crlf_comments ... ok [INFO] [stdout] test parse::lexer::tests::line_doc_comments ... ok [INFO] [stdout] test codemap::tests::t6 ... ok [INFO] [stdout] test parse::lexer::tests::doublecolonparsing ... ok [INFO] [stdout] test parse::lexer::comments::tests::test_line_doc_comment ... ok [INFO] [stdout] test parse::lexer::tests::literal_suffixes ... ok [INFO] [stderr] error: expected identifier, found keyword `return` [INFO] [stderr] --> bogofile:1:13 [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::lexer::tests::lifetime_name ... ok [INFO] [stdout] test parse::lexer::tests::dcparsing_3 ... ok [INFO] [stdout] test parse::lexer::comments::tests::test_block_doc_comment_3 ... ok [INFO] [stdout] test parse::lexer::tests::raw_string ... ok [INFO] [stdout] test parse::lexer::tests::dcparsing_2 ... ok [INFO] [stdout] test parse::lexer::tests::t1 ... ok [INFO] [stdout] test parse::tests::parse_fundecl ... ok [INFO] [stdout] test parse::tests::attrs_fix_bug ... ok [INFO] [stdout] test parse::tests::out_of_line_mod ... ok [INFO] [stdout] test parse::tests::crlf_doc_comments ... ok [INFO] [stdout] test parse::lexer::tests::dcparsing_4 ... ok [INFO] [stdout] test parse::tests::path_exprs_1 ... ok [INFO] [stdout] test parse::tests::parse_extern_crate ... ok [INFO] [stdout] test parse::tests::path_exprs_2 ... ok [INFO] [stdout] test parse::tests::parse_exprs ... ok [INFO] [stdout] test parse::tests::parse_ident_pat ... ok [INFO] [stdout] test parse::tests::parse_stmt_1 ... ok [INFO] [stdout] test parse::lexer::tests::nested_block_comments ... ok [INFO] [stdout] test parse::tests::ret_expr ... ok [INFO] [stdout] test parse::tests::string_to_tts_macro ... ok [INFO] [stdout] test parse::tests::ttdelim_span ... ok [INFO] [stdout] test parse::tests::string_to_tts_1 ... ok [INFO] [stdout] test tokenstream::tests::test_diseq_0 ... ok [INFO] [stdout] test tokenstream::tests::test_concat ... ok [INFO] [stdout] test util::parser_testing::tests::eqmodws ... ok [INFO] [stdout] test util::parser_testing::tests::non_pattern_whitespace ... ok [INFO] [stdout] test tokenstream::tests::test_eq_0 ... ok [INFO] [stdout] test parse::tests::span_of_self_arg_pat_idents_are_correct ... ok [INFO] [stdout] test tokenstream::tests::test_diseq_1 ... ok [INFO] [stdout] test tokenstream::tests::test_to_from_bijection ... ok [INFO] [stdout] test util::parser_testing::tests::pattern_whitespace ... ok [INFO] [stdout] test tokenstream::tests::test_eq_1 ... ok [INFO] [stdout] test tokenstream::tests::test_eq_3 ... 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 util::small_vector::tests::test_move_iter ... ok [INFO] [stdout] test util::small_vector::tests::test_push_get ... ok [INFO] [stdout] test util::small_vector::tests::test_expect_one_one ... ok [INFO] [stdout] test tokenstream::tests::test_is_empty ... ok [INFO] [stdout] test parse::tests::parse_use ... ok [INFO] [stdout] test codemap::tests::t2 - should panic ... ok [INFO] [stdout] test parse::tests::bad_path_expr_1 - should panic ... ok [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.08s [INFO] [stdout] [INFO] [stderr] Doc-tests garando_syntax [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" "849a0c18c08fe7ece34ad0ebb7501265b05060e2367c528dceca64e64e545b6f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "849a0c18c08fe7ece34ad0ebb7501265b05060e2367c528dceca64e64e545b6f", kill_on_drop: false }` [INFO] [stdout] 849a0c18c08fe7ece34ad0ebb7501265b05060e2367c528dceca64e64e545b6f