Skip to content

Conversation

@WaffleLapkin
Copy link
Member

@WaffleLapkin WaffleLapkin commented Nov 6, 2025

Based on #148214, easiest to review commit-by-commit.

This adds two lints:

  • unmustuse_in_always_ok checks for expressions of type Result<T, I> or ControlFlow<I, T> where
    • I is uninhabited
    • T is not a generic param
    • T is not unit
    • T does not have #[must_use] annotation
  • mustuse_in_always_ok checks for expressions of type Result<T, I> or ControlFlow<I, T> where
    • I is uninhabited
    • T is not a generic param
    • T does have #[must_use] annotation (or is otherwise decided that it must be used)

The idea is to run crater with -D... such that we can detect where these cases occur.

r? @jackh726

…use lint

(or more accurately `Result<T, Uninhabited>`/`ControlFlow<Uninhabited, T>`).

This generalizes a previous change where we only did this for `T = ()`.
god I actually hate nested functions now lol. just use modules >:(
@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Nov 6, 2025
@WaffleLapkin WaffleLapkin force-pushed the unmustuse_in_always_ok branch from 7260bf5 to 310b963 Compare November 6, 2025 13:22
@WaffleLapkin
Copy link
Member Author

@bors try

@jackh726 I thinkt the cratere command should be @/craterbot check +rustflags=-Dunmustuse_in_always_ok, unless I'm missing something...

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Nov 6, 2025
[DO NOT MERGE] crater proposed changes in unused must use lint
@rust-log-analyzer
Copy link
Collaborator

The job pr-check-2 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] build_helper test:false 0.700
error: this type will no longer be must used: std::result::Result<std::path::PathBuf, std::convert::Infallible>
   --> src/bootstrap/src/core/config/config.rs:738:34
    |
738 |           let initial_sysroot = t!(PathBuf::from_str(
    |  __________________________________^
739 | |             command(&initial_rustc)
740 | |                 .args(["--print", "sysroot"])
741 | |                 .run_in_dry_run()
...   |
744 | |                 .trim()
745 | |         ));
    | |_________^
    |
    = note: `-D unmustuse-in-always-ok` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(unmustuse_in_always_ok)]`

[RUSTC-TIMING] bootstrap test:false 9.892
error: could not compile `bootstrap` (lib) due to 1 previous error
Bootstrap failed while executing `clippy ci --stage 2`
Build completed unsuccessfully in 0:04:43

@WaffleLapkin
Copy link
Member Author

for context:

lints emitted for libraries

warning: this type will no longer be must used: result::Result<&T, !>
   --> library/core/src/cell/once.rs:164:15
    |
164 |         match self.get_or_try_init(|| Ok::<T, !>(f())) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: result::Result<&mut T, !>
   --> library/core/src/cell/once.rs:200:15
    |
200 |         match self.get_mut_or_try_init(|| Ok::<T, !>(f())) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: result::Result<usize, Infallible>
   --> library/core/src/iter/adapters/step_by.rs:444:28
    |
421 | / macro_rules! spec_int_ranges {
422 | |     ($($t:ty)*) => ($(
423 | |
424 | |         const _: () = assert!(usize::BITS >= <$t>::BITS);
...   |
444 | |                 let step = <$t>::try_from(self.original_step().get()).unwrap_or(<$t>::MAX);
    | |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...   |
506 | |     )*)
507 | | }
    | |_- in this expansion of `spec_int_ranges!`
...
568 |   spec_int_ranges!(u8 u16 u32 u64 usize);
    |   -------------------------------------- in this macro invocation

warning: this type will no longer be must used: result::Result<usize, Infallible>
   --> library/core/src/iter/adapters/step_by.rs:493:28
    |
421 | / macro_rules! spec_int_ranges {
422 | |     ($($t:ty)*) => ($(
423 | |
424 | |         const _: () = assert!(usize::BITS >= <$t>::BITS);
...   |
493 | |                 let step = <$t>::try_from(self.original_step().get()).unwrap_or(<$t>::MAX);
    | |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...   |
506 | |     )*)
507 | | }
    | |_- in this expansion of `spec_int_ranges!`
...
568 |   spec_int_ranges!(u8 u16 u32 u64 usize);
    |   -------------------------------------- in this macro invocation

warning: this type will no longer be must used: result::Result<usize, Infallible>
   --> library/core/src/iter/range.rs:275:27
    |
248 | / macro_rules! step_integer_impls {
249 | |     {
250 | |         narrower than or same width as usize:
251 | |             $( [ $u_narrower:ident $i_narrower:ident ] ),+;
...   |
275 | |                     match Self::try_from(n) {
    | |                           ^^^^^^^^^^^^^^^^^
...   |
423 | |     };
424 | | }
    | |_- in this expansion of `step_integer_impls!`
...
427 | / step_integer_impls! {
428 | |     narrower than or same width as usize: [u8 i8], [u16 i16], [u32 i32], [u64 i64], [usize isize];
429 | |     wider than usize: [u128 i128];
430 | | }
    | |_- in this macro invocation

warning: this type will no longer be must used: result::Result<usize, Infallible>
   --> library/core/src/iter/range.rs:283:27
    |
248 | / macro_rules! step_integer_impls {
249 | |     {
250 | |         narrower than or same width as usize:
251 | |             $( [ $u_narrower:ident $i_narrower:ident ] ),+;
...   |
283 | |                     match Self::try_from(n) {
    | |                           ^^^^^^^^^^^^^^^^^
...   |
423 | |     };
424 | | }
    | |_- in this expansion of `step_integer_impls!`
...
427 | / step_integer_impls! {
428 | |     narrower than or same width as usize: [u8 i8], [u16 i16], [u32 i32], [u64 i64], [usize isize];
429 | |     wider than usize: [u128 i128];
430 | | }
    | |_- in this macro invocation

warning: this type will no longer be must used: result::Result<usize, Infallible>
   --> library/core/src/iter/range.rs:313:27
    |
248 | / macro_rules! step_integer_impls {
249 | |     {
250 | |         narrower than or same width as usize:
251 | |             $( [ $u_narrower:ident $i_narrower:ident ] ),+;
...   |
313 | |                     match $u_narrower::try_from(n) {
    | |                           ^^^^^^^^^^^^^^^^^^^^^^^^
...   |
423 | |     };
424 | | }
    | |_- in this expansion of `step_integer_impls!`
...
427 | / step_integer_impls! {
428 | |     narrower than or same width as usize: [u8 i8], [u16 i16], [u32 i32], [u64 i64], [usize isize];
429 | |     wider than usize: [u128 i128];
430 | | }
    | |_- in this macro invocation

warning: this type will no longer be must used: result::Result<usize, Infallible>
   --> library/core/src/iter/range.rs:334:27
    |
248 | / macro_rules! step_integer_impls {
249 | |     {
250 | |         narrower than or same width as usize:
251 | |             $( [ $u_narrower:ident $i_narrower:ident ] ),+;
...   |
334 | |                     match $u_narrower::try_from(n) {
    | |                           ^^^^^^^^^^^^^^^^^^^^^^^^
...   |
423 | |     };
424 | | }
    | |_- in this expansion of `step_integer_impls!`
...
427 | / step_integer_impls! {
428 | |     narrower than or same width as usize: [u8 i8], [u16 i16], [u32 i32], [u64 i64], [usize isize];
429 | |     wider than usize: [u128 i128];
430 | | }
    | |_- in this macro invocation

warning: this type will no longer be must used: result::Result<u32, Infallible>
  --> library/core/src/net/parser.rs:22:38
   |
17 | / macro_rules! impl_helper {
18 | |     ($($t:ty)*) => ($(impl ReadNumberHelper for $t {
19 | |         const ZERO: Self = 0;
20 | |         #[inline]
21 | |         fn checked_mul(&self, other: u32) -> Option<Self> {
22 | |             Self::checked_mul(*self, other.try_into().ok()?)
   | |                                      ^^^^^^^^^^^^^^^^
...  |
28 | |     })*)
29 | | }
   | |_- in this expansion of `impl_helper!`
30 |
31 |   impl_helper! { u8 u16 u32 }
   |   --------------------------- in this macro invocation

warning: this type will no longer be must used: result::Result<u32, Infallible>
  --> library/core/src/net/parser.rs:26:38
   |
17 | / macro_rules! impl_helper {
18 | |     ($($t:ty)*) => ($(impl ReadNumberHelper for $t {
19 | |         const ZERO: Self = 0;
20 | |         #[inline]
...  |
26 | |             Self::checked_add(*self, other.try_into().ok()?)
   | |                                      ^^^^^^^^^^^^^^^^
27 | |         }
28 | |     })*)
29 | | }
   | |_- in this expansion of `impl_helper!`
30 |
31 |   impl_helper! { u8 u16 u32 }
   |   --------------------------- in this macro invocation

warning: `core` (lib) generated 10 warnings
warning: this type will no longer be must used: Result<ByteString, Infallible>
   --> library/alloc/src/bstr.rs:328:53
    |
328 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
    |  _____________________________________________________^
329 | |         Ok(ByteString(s.as_bytes().to_vec()))
330 | |     }
    | |_____^
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: Result<ByteString, Infallible>
   --> library/alloc/src/bstr.rs:329:9
    |
329 |         Ok(ByteString(s.as_bytes().to_vec()))
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: Result<String, Infallible>
    --> library/alloc/src/string.rs:2826:55
     |
2826 |       fn from_str(s: &str) -> Result<String, Self::Err> {
     |  _______________________________________________________^
2827 | |         Ok(String::from(s))
2828 | |     }
     | |_____^

warning: this type will no longer be must used: Result<String, Infallible>
    --> library/alloc/src/string.rs:2827:9
     |
2827 |         Ok(String::from(s))
     |         ^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: Result<InPlaceDrop<T>, !>
   --> library/alloc/src/vec/in_place_collect.rs:339:27
    |
339 |       move |mut sink, item| {
    |  ___________________________^
340 | |         unsafe {
...   |
350 | |         Ok(sink)
351 | |     }
    | |_____^

warning: this type will no longer be must used: Result<InPlaceDrop<T>, !>
   --> library/alloc/src/vec/in_place_collect.rs:350:9
    |
350 |         Ok(sink)
    |         ^^^^^^^^

warning: this type will no longer be must used: Result<InPlaceDrop<T>, !>
   --> library/alloc/src/vec/in_place_collect.rs:378:13
    |
378 |             self.try_fold::<_, _, Result<_, !>>(sink, write_in_place_with_drop(end)).into_ok();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: `alloc` (lib) generated 7 warnings
warning: this type will no longer be must used: core::result::Result<OsString, Infallible>
    --> library/std/src/ffi/os_str.rs:1747:53
     |
1747 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
     |  _____________________________________________________^
1748 | |         Ok(OsString::from(s))
1749 | |     }
     | |_____^
     |
     = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: core::result::Result<OsString, Infallible>
    --> library/std/src/ffi/os_str.rs:1748:9
     |
1748 |         Ok(OsString::from(s))
     |         ^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: core::result::Result<PathBuf, Infallible>
    --> library/std/src/path.rs:1978:53
     |
1978 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
     |  _____________________________________________________^
1979 | |         Ok(PathBuf::from(s))
1980 | |     }
     | |_____^

warning: this type will no longer be must used: core::result::Result<PathBuf, Infallible>
    --> library/std/src/path.rs:1979:9
     |
1979 |         Ok(PathBuf::from(s))
     |         ^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: core::result::Result<&T, !>
   --> library/std/src/sync/once_lock.rs:315:15
    |
315 |         match self.get_or_try_init(|| Ok::<T, !>(f())) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: core::result::Result<&mut T, !>
   --> library/std/src/sync/once_lock.rs:355:15
    |
355 |         match self.get_mut_or_try_init(|| Ok::<T, !>(f())) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: core::result::Result<i64, Infallible>
   --> library/std/src/sys/pal/unix/time.rs:197:21
    |
197 |             tv_sec: self.tv_sec.try_into().ok()?,
    |                     ^^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: core::result::Result<i64, Infallible>
   --> library/std/src/sys/pal/unix/time.rs:198:22
    |
198 |             tv_nsec: self.tv_nsec.as_inner().try_into().ok()?,
    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: core::result::Result<u32, Infallible>
    --> library/std/src/sys/fs/unix.rs:2395:50
     |
2395 |         cvt(unsafe { libc::mkfifo(path.as_ptr(), mode.try_into().unwrap()) }).map(|_| ())
     |                                                  ^^^^^^^^^^^^^^^

warning: this type will no longer be must used: core::result::Result<usize, Infallible>
   --> library/std/src/sys/process/unix/unix.rs:300:37
    |
300 |                 cvt(libc::setgroups(_g.len().try_into().unwrap(), _g.as_ptr()))?;
    |                                     ^^^^^^^^^^^^^^^^^^^

lints emitted for the compiler

warning: this type will no longer be must used: Result<&mut [T], !>
   --> compiler/rustc_arena/src/lib.rs:205:9
    |
205 |         self.try_alloc_from_iter(iter.into_iter().map(Ok::<T, !>)).into_ok()
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: Result<&mut [T], !>
   --> compiler/rustc_arena/src/lib.rs:584:39
    |
584 |             (_, _) => outline(move || self.try_alloc_from_iter(iter.map(Ok::<T, !>)).into_ok()),
    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: `rustc_arena` (lib) generated 2 warnings
warning: this type will no longer be must used: Result<OwnedSlice, !>
  --> compiler/rustc_data_structures/src/owned_slice.rs:62:5
   |
62 |     try_slice_owned(owner, |x| Ok::<_, !>(slicer(x))).into_ok()
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: Result<&[u8], !>
  --> compiler/rustc_data_structures/src/owned_slice.rs:62:32
   |
62 |     try_slice_owned(owner, |x| Ok::<_, !>(slicer(x))).into_ok()
   |                                ^^^^^^^^^^^^^^^^^^^^^

warning: `rustc_data_structures` (lib) generated 2 warnings
warning: this type will no longer be must used: ControlFlow<!>
  --> compiler/rustc_ast_ir/src/visit.rs:22:52
   |
22 |       fn branch(self) -> ControlFlow<Self::Residual> {
   |  ____________________________________________________^
23 | |         ControlFlow::Continue(())
24 | |     }
   | |_____^
   |
   = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: ControlFlow<!>
  --> compiler/rustc_ast_ir/src/visit.rs:23:9
   |
23 |         ControlFlow::Continue(())
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: `rustc_ast_ir` (lib) generated 2 warnings
warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 |   macro_rules! try_visit {
     |   ---------------------- in this expansion of `try_visit!` (#2)
  46 |       ($e:expr) => {
  47 |           match $crate::visit::VisitorResult::branch($e) {
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_ast/src/mut_visit.rs:262:1
     |
 262 |   super::common_visitor_and_walkers!((mut) MutVisitor);
     |   ---------------------------------------------------- in this macro invocation (#1)
     |
    ::: compiler/rustc_ast/src/visit.rs:313:1
     |
 313 | / macro_rules! common_visitor_and_walkers {
 314 | |     ($(($mut: ident))? $Visitor:ident$(<$lt:lifetime>)?) => {
 315 | |         $(${ignore($lt)}
 316 | |             #[derive(Copy, Clone)]
...    |
 774 | |             try_visit!(kind.walk(*span, *id, vis, ctxt, visitor));
     | |             ----------------------------------------------------- in this macro invocation (#2)
...    |
1112 | |     };
1113 | | }
     | |_- in this expansion of `super::common_visitor_and_walkers!` (#1)
     |
     = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 |   macro_rules! try_visit {
     |   ---------------------- in this expansion of `try_visit!` (#2)
  46 |       ($e:expr) => {
  47 |           match $crate::visit::VisitorResult::branch($e) {
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_ast/src/mut_visit.rs:262:1
     |
 262 |   super::common_visitor_and_walkers!((mut) MutVisitor);
     |   ---------------------------------------------------- in this macro invocation (#1)
     |
    ::: compiler/rustc_ast/src/visit.rs:313:1
     |
 313 | / macro_rules! common_visitor_and_walkers {
 314 | |     ($(($mut: ident))? $Visitor:ident$(<$lt:lifetime>)?) => {
 315 | |         $(${ignore($lt)}
 316 | |             #[derive(Copy, Clone)]
...    |
 809 | |                         try_visit!(vis.visit_fn(kind, span, id));
     | |                         ---------------------------------------- in this macro invocation (#2)
...    |
1112 | |     };
1113 | | }
     | |_- in this expansion of `super::common_visitor_and_walkers!` (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 |   macro_rules! try_visit {
     |   ---------------------- in this expansion of `try_visit!` (#2)
  46 |       ($e:expr) => {
  47 |           match $crate::visit::VisitorResult::branch($e) {
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_ast/src/mut_visit.rs:262:1
     |
 262 |   super::common_visitor_and_walkers!((mut) MutVisitor);
     |   ---------------------------------------------------- in this macro invocation (#1)
     |
    ::: compiler/rustc_ast/src/visit.rs:313:1
     |
 313 | / macro_rules! common_visitor_and_walkers {
 314 | |     ($(($mut: ident))? $Visitor:ident$(<$lt:lifetime>)?) => {
 315 | |         $(${ignore($lt)}
 316 | |             #[derive(Copy, Clone)]
...    |
 868 | |                         try_visit!(vis.visit_fn(kind, span, id))
     | |                         ---------------------------------------- in this macro invocation (#2)
...    |
1112 | |     };
1113 | | }
     | |_- in this expansion of `super::common_visitor_and_walkers!` (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 |   macro_rules! try_visit {
     |   ---------------------- in this expansion of `try_visit!` (#2)
  46 |       ($e:expr) => {
  47 |           match $crate::visit::VisitorResult::branch($e) {
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_ast/src/mut_visit.rs:262:1
     |
 262 |   super::common_visitor_and_walkers!((mut) MutVisitor);
     |   ---------------------------------------------------- in this macro invocation (#1)
     |
    ::: compiler/rustc_ast/src/visit.rs:313:1
     |
 313 | / macro_rules! common_visitor_and_walkers {
 314 | |     ($(($mut: ident))? $Visitor:ident$(<$lt:lifetime>)?) => {
 315 | |         $(${ignore($lt)}
 316 | |             #[derive(Copy, Clone)]
...    |
 898 | |                         try_visit!(vis.visit_fn(kind, span, id))
     | |                         ---------------------------------------- in this macro invocation (#2)
...    |
1112 | |     };
1113 | | }
     | |_- in this expansion of `super::common_visitor_and_walkers!` (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 |   macro_rules! try_visit {
     |   ---------------------- in this expansion of `try_visit!` (#2)
  46 |       ($e:expr) => {
  47 |           match $crate::visit::VisitorResult::branch($e) {
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_ast/src/mut_visit.rs:262:1
     |
 262 |   super::common_visitor_and_walkers!((mut) MutVisitor);
     |   ---------------------------------------------------- in this macro invocation (#1)
     |
    ::: compiler/rustc_ast/src/visit.rs:313:1
     |
 313 | / macro_rules! common_visitor_and_walkers {
 314 | |     ($(($mut: ident))? $Visitor:ident$(<$lt:lifetime>)?) => {
 315 | |         $(${ignore($lt)}
 316 | |             #[derive(Copy, Clone)]
...    |
 931 | |             try_visit!(vis.visit_generics(generics));
     | |             ---------------------------------------- in this macro invocation (#2)
...    |
1112 | |     };
1113 | | }
     | |_- in this expansion of `super::common_visitor_and_walkers!` (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 |   macro_rules! try_visit {
     |   ---------------------- in this expansion of `try_visit!` (#2)
  46 |       ($e:expr) => {
  47 |           match $crate::visit::VisitorResult::branch($e) {
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_ast/src/mut_visit.rs:262:1
     |
 262 |   super::common_visitor_and_walkers!((mut) MutVisitor);
     |   ---------------------------------------------------- in this macro invocation (#1)
     |
    ::: compiler/rustc_ast/src/visit.rs:313:1
     |
 313 | / macro_rules! common_visitor_and_walkers {
 314 | |     ($(($mut: ident))? $Visitor:ident$(<$lt:lifetime>)?) => {
 315 | |         $(${ignore($lt)}
 316 | |             #[derive(Copy, Clone)]
...    |
 936 | |             try_visit!(vis.visit_ty(self_ty));
     | |             --------------------------------- in this macro invocation (#2)
...    |
1112 | |     };
1113 | | }
     | |_- in this expansion of `super::common_visitor_and_walkers!` (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 |   macro_rules! try_visit {
     |   ---------------------- in this expansion of `try_visit!` (#2)
  46 |       ($e:expr) => {
  47 |           match $crate::visit::VisitorResult::branch($e) {
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_ast/src/mut_visit.rs:262:1
     |
 262 |   super::common_visitor_and_walkers!((mut) MutVisitor);
     |   ---------------------------------------------------- in this macro invocation (#1)
     |
    ::: compiler/rustc_ast/src/visit.rs:313:1
     |
 313 | / macro_rules! common_visitor_and_walkers {
 314 | |     ($(($mut: ident))? $Visitor:ident$(<$lt:lifetime>)?) => {
 315 | |         $(${ignore($lt)}
 316 | |             #[derive(Copy, Clone)]
...    |
 944 | |             try_visit!(vis.visit_method_receiver_expr(receiver));
     | |             ---------------------------------------------------- in this macro invocation (#2)
...    |
1112 | |     };
1113 | | }
     | |_- in this expansion of `super::common_visitor_and_walkers!` (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 |   macro_rules! try_visit {
     |   ---------------------- in this expansion of `try_visit!` (#2)
  46 |       ($e:expr) => {
  47 |           match $crate::visit::VisitorResult::branch($e) {
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_ast/src/mut_visit.rs:262:1
     |
 262 |   super::common_visitor_and_walkers!((mut) MutVisitor);
     |   ---------------------------------------------------- in this macro invocation (#1)
     |
    ::: compiler/rustc_ast/src/visit.rs:313:1
     |
 313 | / macro_rules! common_visitor_and_walkers {
 314 | |     ($(($mut: ident))? $Visitor:ident$(<$lt:lifetime>)?) => {
 315 | |         $(${ignore($lt)}
 316 | |             #[derive(Copy, Clone)]
...    |
1000 | |                     try_visit!(vis.visit_fn(kind, *span, *id));
     | |                     ------------------------------------------ in this macro invocation (#2)
...    |
1112 | |     };
1113 | | }
     | |_- in this expansion of `super::common_visitor_and_walkers!` (#1)

warning: `rustc_ast` (lib) generated 8 warnings
warning: this type will no longer be must used: Result<i32, Infallible>
  --> compiler/rustc_error_messages/src/diagnostic_impls.rs:60:36
   |
53 | / macro_rules! into_diag_arg_for_number {
54 | |     ($( $ty:ty ),+ $(,)?) => {
55 | |         $(
56 | |             impl $crate::IntoDiagArg for $ty {
...  |
60 | |                     if let Ok(n) = TryInto::<i32>::try_into(self) {
   | |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...  |
69 | | }
   | |_- in this expansion of `into_diag_arg_for_number!`
...
83 |   into_diag_arg_for_number!(i8, u8, i16, u16, i32, u32, i64, u64, i128, u128, isize, usize);
   |   ----------------------------------------------------------------------------------------- in this macro invocation
   |
   = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: `rustc_error_messages` (lib) generated 1 warning
warning: this type will no longer be must used: Result<Arc<T>, Infallible>
   --> compiler/rustc_type_ir/src/fold.rs:308:15
    |
308 |         match fold_arc::<T, Infallible>(self, |t| Ok(t.fold_with(folder))) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: `rustc_type_ir` (lib) generated 1 warning
warning: this type will no longer be must used: Result<u64, Infallible>
   --> compiler/rustc_query_system/src/dep_graph/serialized.rs:762:33
    |
762 |         IntEncodedWithFixedSize(node_max.try_into().unwrap()).encode(&mut encoder);
    |                                 ^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: `rustc_query_system` (lib) generated 1 warning
warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_ast_passes/src/ast_validation.rs:903:9
    |
903 |         walk_list!(self, visit_attribute, attrs);
    |         ---------------------------------------- in this macro invocation (#1)
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_ast_passes/src/ast_validation.rs:909:9
    |
909 |         walk_list!(self, visit_attribute, attrs);
    |         ---------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_ast_passes/src/ast_validation.rs:1050:21
     |
1050 |                     walk_list!(this, visit_assoc_item, items, AssocCtxt::Impl { of_trait: true });
     |                     ----------------------------------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_ast_passes/src/ast_validation.rs:1065:21
     |
1065 |                     walk_list!(this, visit_assoc_item, items, AssocCtxt::Impl { of_trait: false });
     |                     ------------------------------------------------------------------------------ in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_ast_passes/src/ast_validation.rs:1189:21
     |
1189 |                     walk_list!(this, visit_param_bound, bounds, BoundKind::SuperTraits)
     |                     ------------------------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_ast_passes/src/ast_validation.rs:1192:21
     |
1192 |                     walk_list!(this, visit_assoc_item, items, AssocCtxt::Trait);
     |                     ----------------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_ast_passes/src/ast_validation.rs:1213:29
     |
1213 | ...                   walk_list!(this, visit_field_def, fields);
     |                       ----------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_ast_passes/src/ast_validation.rs:1228:29
     |
1228 | ...                   walk_list!(this, visit_field_def, fields);
     |                       ----------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_ast_passes/src/ast_validation.rs:1348:17
     |
1348 |                 walk_list!(self, visit_ty, &data.inputs);
     |                 ---------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_ast_passes/src/ast_validation.rs:1385:9
     |
1385 |         walk_list!(self, visit_generic_param, &generics.params);
     |         ------------------------------------------------------- in this macro invocation (#1)

warning: `rustc_ast_passes` (lib) generated 10 warnings
warning: this type will no longer be must used: Result<bool, !>
  --> compiler/rustc_middle/src/ty/inhabitedness/inhabited_predicate.rs:56:26
   |
56 |           let Ok(result) = self.apply_inner::<!>(
   |  __________________________^
57 | |             tcx,
58 | |             typing_env,
59 | |             &mut Default::default(),
60 | |             &|id| Ok(tcx.is_descendant_of(module_def_id, id)),
61 | |             reveal_opaque,
62 | |         );
   | |_________^
   |
   = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: Result<bool, !>
  --> compiler/rustc_middle/src/ty/inhabitedness/inhabited_predicate.rs:60:19
   |
60 |             &|id| Ok(tcx.is_descendant_of(module_def_id, id)),
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: Result<bool, !>
  --> compiler/rustc_middle/src/ty/inhabitedness/inhabited_predicate.rs:75:13
   |
75 | /             self.apply_inner::<!>(tcx, typing_env, &mut Default::default(), &|_| Ok(true), &|_| {
76 | |                 None
77 | |             });
   | |______________^

warning: this type will no longer be must used: Result<bool, !>
  --> compiler/rustc_middle/src/ty/inhabitedness/inhabited_predicate.rs:75:82
   |
75 |             self.apply_inner::<!>(tcx, typing_env, &mut Default::default(), &|_| Ok(true), &|_| {
   |                                                                                  ^^^^^^^^

warning: this type will no longer be must used: Result<rustc_abi::TyAndLayout<'_, ty::Ty<'_>>, !>
    --> compiler/rustc_middle/src/ty/layout.rs:1110:38
     |
1110 | ...                   result = field.to_result().ok().and_then(|field| {
     |                                ^^^^^^^^^^^^^^^^^

warning: this type continue be must used: Result<IeeeFloat<HalfS>, Infallible>
    --> compiler/rustc_middle/src/ty/print/pretty.rs:1789:31
     |
1789 |                     let val = Half::try_from(int).unwrap();
     |                               ^^^^^^^^^^^^^^^^^^^
     |
     = note: `#[warn(mustuse_in_always_ok)]` on by default

warning: this type continue be must used: Result<IeeeFloat<SingleS>, Infallible>
    --> compiler/rustc_middle/src/ty/print/pretty.rs:1793:31
     |
1793 |                     let val = Single::try_from(int).unwrap();
     |                               ^^^^^^^^^^^^^^^^^^^^^

warning: this type continue be must used: Result<IeeeFloat<DoubleS>, Infallible>
    --> compiler/rustc_middle/src/ty/print/pretty.rs:1797:31
     |
1797 |                     let val = Double::try_from(int).unwrap();
     |                               ^^^^^^^^^^^^^^^^^^^^^

warning: this type continue be must used: Result<IeeeFloat<QuadS>, Infallible>
    --> compiler/rustc_middle/src/ty/print/pretty.rs:1801:31
     |
1801 |                     let val = Quad::try_from(int).unwrap();
     |                               ^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: Result<u128, Infallible>
   --> compiler/rustc_middle/src/ty/consts/int.rs:459:21
    |
451 | /  macro_rules! from_scalar_int_for_x {
452 | |      ($($ty:ty),*) => {
453 | |          $(
454 | |              impl From<ScalarInt> for $ty {
...   |
459 | |/                     int.to_uint(Size::from_bytes(size_of::<$ty>()))
460 | ||                        .try_into().unwrap()
    | ||__________________________________^
...   |
465 | |  }
    | |__- in this expansion of `from_scalar_int_for_x!`
...
468 |    from_scalar_int_for_x!(u8, u16, u32, u64, u128);
    |    ----------------------------------------------- in this macro invocation

warning: this type will no longer be must used: Result<i128, Infallible>
   --> compiler/rustc_middle/src/ty/consts/int.rs:509:21
    |
501 | /  macro_rules! from_scalar_int_for_x_signed {
502 | |      ($($ty:ty),*) => {
503 | |          $(
504 | |              impl From<ScalarInt> for $ty {
...   |
509 | |/                     int.to_int(Size::from_bytes(size_of::<$ty>()))
510 | ||                        .try_into().unwrap()
    | ||__________________________________^
...   |
515 | |  }
    | |__- in this expansion of `from_scalar_int_for_x_signed!`
...
518 |    from_scalar_int_for_x_signed!(i8, i16, i32, i64, i128);
    |    ------------------------------------------------------ in this macro invocation

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 58 | macro_rules! visit_opt {
    | ---------------------- in this expansion of `rustc_ast::visit::visit_opt!` (#1)
...
 61 |             $crate::try_visit!($visitor.$method(x $(, $($extra_args,)* )?));
    |             --------------------------------------------------------------- in this macro invocation (#2)
    |
   ::: compiler/rustc_builtin_macros/src/deriving/coerce_pointee.rs:438:17
    |
438 |                 rustc_ast::visit::visit_opt!(error_on_pointee, visit_ty, default);
    |                 ----------------------------------------------------------------- in this macro invocation (#1)
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 58 | macro_rules! visit_opt {
    | ---------------------- in this expansion of `visit_opt!` (#1)
...
 61 |             $crate::try_visit!($visitor.$method(x $(, $($extra_args,)* )?));
    |             --------------------------------------------------------------- in this macro invocation (#2)
    |
   ::: compiler/rustc_builtin_macros/src/deriving/default.rs:298:9
    |
298 |         visit_opt!(self, visit_anon_const, &v.disr_expr);
    |         ------------------------------------------------ in this macro invocation (#1)

warning: `rustc_builtin_macros` (lib) generated 2 warnings
warning: this type will no longer be must used: Result<u64, Infallible>
   --> compiler/rustc_transmute/src/layout/tree.rs:307:37
    |
307 |                     Ok(Self::number(width.try_into().unwrap()))
    |                                     ^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: Result<u64, Infallible>
   --> compiler/rustc_transmute/src/layout/tree.rs:312:37
    |
312 |                     Ok(Self::number(width.try_into().unwrap()))
    |                                     ^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: Result<u64, Infallible>
   --> compiler/rustc_transmute/src/layout/tree.rs:317:37
    |
317 |                     Ok(Self::number(width.try_into().unwrap()))
    |                                     ^^^^^^^^^^^^^^^^

warning: `rustc_transmute` (lib) generated 3 warnings
warning: `rustc_middle` (lib) generated 11 warnings
warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `visit::walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/build_reduced_graph.rs:1361:25
     |
1361 |                         visit::walk_list!(self, visit_attribute, &item.attrs);
     |                         ----------------------------------------------------- in this macro invocation (#1)
     |
     = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `visit::walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/build_reduced_graph.rs:1584:13
     |
1584 |             visit::walk_list!(self, visit_item, &krate.items);
     |             ------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `visit::walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/build_reduced_graph.rs:1585:13
     |
1585 |             visit::walk_list!(self, visit_attribute, &krate.attrs);
     |             ------------------------------------------------------ in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:1265:17
     |
1265 |                 walk_list!(self, visit_param_bound, bounds, BoundKind::Bound);
     |                 ------------------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:1389:9
     |
1389 |         walk_list!(self, visit_attribute, &v.attrs);
     |         ------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:1411:9
     |
1411 |         walk_list!(self, visit_attribute, attrs);
     |         ---------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `try_visit!`
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_resolve/src/late.rs:1412:9
     |
1412 |         try_visit!(self.visit_vis(vis));
     |         ------------------------------- in this macro invocation

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  58 | macro_rules! visit_opt {
     | ---------------------- in this expansion of `visit_opt!` (#1)
...
  61 |             $crate::try_visit!($visitor.$method(x $(, $($extra_args,)* )?));
     |             --------------------------------------------------------------- in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:1413:9
     |
1413 |         visit_opt!(self, visit_ident, ident);
     |         ------------------------------------ in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `try_visit!`
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
    ::: compiler/rustc_resolve/src/late.rs:1414:9
     |
1414 |         try_visit!(self.visit_ty(ty));
     |         ----------------------------- in this macro invocation

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:2641:29
     |
2641 | ...                   walk_list!(this, visit_param_bound, bounds, BoundKind::SuperTraits);
     |                       ------------------------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:2660:29
     |
2660 | ...                   walk_list!(this, visit_param_bound, bounds, BoundKind::Bound);
     |                       ------------------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  58 | macro_rules! visit_opt {
     | ---------------------- in this expansion of `visit_opt!` (#1)
...
  61 |             $crate::try_visit!($visitor.$method(x $(, $($extra_args,)* )?));
     |             --------------------------------------------------------------- in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:3564:9
     |
3564 |         visit_opt!(self, visit_ty, &local.ty);
     |         ------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  58 | macro_rules! visit_opt {
     | ---------------------- in this expansion of `visit_opt!` (#1)
...
  61 |             $crate::try_visit!($visitor.$method(x $(, $($extra_args,)* )?));
     |             --------------------------------------------------------------- in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:3761:13
     |
3761 |             visit_opt!(this, visit_expr, &arm.guard);
     |             ---------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  58 | macro_rules! visit_opt {
     | ---------------------- in this expansion of `visit_opt!` (#1)
...
  61 |             $crate::try_visit!($visitor.$method(x $(, $($extra_args,)* )?));
     |             --------------------------------------------------------------- in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:3762:13
     |
3762 |             visit_opt!(this, visit_expr, &arm.body);
     |             --------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:4741:9
     |
4741 |         walk_list!(self, visit_attribute, f.attrs.iter());
     |         ------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
    --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
     |
  45 | macro_rules! try_visit {
     | ---------------------- in this expansion of `$crate::try_visit!` (#2)
  46 |     ($e:expr) => {
  47 |         match $crate::visit::VisitorResult::branch($e) {
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  67 | macro_rules! walk_list {
     | ---------------------- in this expansion of `walk_list!` (#1)
...
  70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
     |             ------------------------------------------------------------------ in this macro invocation (#2)
     |
    ::: compiler/rustc_resolve/src/late.rs:4766:17
     |
4766 |                 walk_list!(self, resolve_expr_field, &se.fields, expr);
     |                 ------------------------------------------------------ in this macro invocation (#1)

warning: this type will no longer be must used: Result<(), !>
   --> compiler/rustc_trait_selection/src/traits/fulfill.rs:236:13
    |
236 | /             {
237 | |                 self.removed_predicates.extend(cycle.map(|c| c.obligation.clone()));
238 | |                 Ok(())
239 | |             }
    | |_____________^
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: Result<(), !>
   --> compiler/rustc_trait_selection/src/traits/fulfill.rs:238:17
    |
238 |                 Ok(())
    |                 ^^^^^^

warning: this type continue be must used: Result<Result<(), rustc_next_trait_solver::coherence::Conflict>, !>
    --> compiler/rustc_trait_selection/src/traits/select/mod.rs:1483:9
     |
1483 |         coherence::trait_ref_is_knowable(self.infcx, trait_ref, |ty| Ok::<_, !>(ty)).into_ok()
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = note: `#[warn(mustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: Result<rustc_middle::ty::Ty<'_>, !>
    --> compiler/rustc_trait_selection/src/traits/select/mod.rs:1483:70
     |
1483 |         coherence::trait_ref_is_knowable(self.infcx, trait_ref, |ty| Ok::<_, !>(ty)).into_ok()
     |                                                                      ^^^^^^^^^^^^^^

warning: this type will no longer be must used: ControlFlow<!>
   --> compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs:209:21
    |
209 |               let _ = self.for_each_item_bound::<!>(
    |  _____________________^
210 | |                 placeholder_trait_predicate.self_ty(),
211 | |                 |selcx, bound, idx, alias_bound_kind| {
212 | |                     let Some(bound) = bound.as_trait_clause() else {
...   |
251 | |                 || candidates.ambiguous = true,
252 | |             );
    | |_____________^

warning: this type will no longer be must used: ControlFlow<!>
   --> compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs:211:55
    |
211 |                   |selcx, bound, idx, alias_bound_kind| {
    |  _______________________________________________________^
212 | |                     let Some(bound) = bound.as_trait_clause() else {
213 | |                         return ControlFlow::Continue(());
214 | |                     };
...   |
248 | |                     ControlFlow::Continue(())
249 | |                 },
    | |_________________^

warning: this type will no longer be must used: ControlFlow<!>
   --> compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs:213:32
    |
213 |                         return ControlFlow::Continue(());
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: ControlFlow<!>
   --> compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs:216:32
    |
216 |                         return ControlFlow::Continue(());
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: this type will no longer be must used: ControlFlow<!>
   --> compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs:248:21
    |
248 |                     ControlFlow::Continue(())
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: `rustc_resolve` (lib) generated 16 warnings
warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_lint/src/dangling.rs:241:57
    |
241 |                 self.with_inside_call_args(true, |this| walk_list!(this, visit_expr, args))
    |                                                         ---------------------------------- in this macro invocation (#1)
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_lint/src/dangling.rs:244:58
    |
244 |                 self.with_inside_call_args(false, |this| walk_list!(this, visit_stmt, stmts));
    |                                                          ----------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 58 | macro_rules! visit_opt {
    | ---------------------- in this expansion of `visit_opt!` (#1)
...
 61 |             $crate::try_visit!($visitor.$method(x $(, $($extra_args,)* )?));
    |             --------------------------------------------------------------- in this macro invocation (#2)
    |
   ::: compiler/rustc_lint/src/dangling.rs:245:17
    |
245 |                 visit_opt!(self, visit_expr, expr)
    |                 ---------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_lint/src/early.rs:311:9
    |
311 |         walk_list!(cx, visit_attribute, self.1);
    |         --------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_lint/src/early.rs:312:9
    |
312 |         walk_list!(cx, visit_item, self.2);
    |         ---------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: Result<rustc_middle::ty::Ty<'_>, !>
   --> compiler/rustc_hir_analysis/src/coherence/orphan.rs:308:51
    |
308 |       let lazily_normalize_ty = |user_ty: Ty<'tcx>| {
    |  ___________________________________________________^
309 | |         let ty::Alias(..) = user_ty.kind() else { return Ok(user_ty) };
310 | |
311 | |         let ocx = traits::ObligationCtxt::new(&infcx);
...   |
330 | |         Ok::<_, !>(ty)
331 | |     };
    | |_____^
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: Result<rustc_middle::ty::Ty<'_>, !>
   --> compiler/rustc_hir_analysis/src/coherence/orphan.rs:309:58
    |
309 |         let ty::Alias(..) = user_ty.kind() else { return Ok(user_ty) };
    |                                                          ^^^^^^^^^^^

warning: this type will no longer be must used: Result<rustc_middle::ty::Ty<'_>, !>
   --> compiler/rustc_hir_analysis/src/coherence/orphan.rs:316:20
    |
316 |             return Ok(user_ty);
    |                    ^^^^^^^^^^^

warning: this type will no longer be must used: Result<rustc_middle::ty::Ty<'_>, !>
   --> compiler/rustc_hir_analysis/src/coherence/orphan.rs:330:9
    |
330 |         Ok::<_, !>(ty)
    |         ^^^^^^^^^^^^^^

warning: this type continue be must used: Result<Result<(), OrphanCheckErr<rustc_middle::ty::TyCtxt<'_>, rustc_middle::ty::Ty<'_>>>, !>
   --> compiler/rustc_hir_analysis/src/coherence/orphan.rs:333:18
    |
333 |       let result = traits::orphan_check_trait_ref(
    |  __________________^
334 | |         &infcx,
335 | |         trait_ref,
336 | |         traits::InCrate::Local { mode },
337 | |         lazily_normalize_ty,
338 | |     )
    | |_____^
    |
    = note: `#[warn(mustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_hir_analysis/src/collect/resolve_bound_vars.rs:406:13
    |
406 |             walk_list!(this, visit_generic_param, trait_ref.bound_generic_params);
    |             --------------------------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_hir_analysis/src/collect/resolve_bound_vars.rs:927:13
    |
927 |             walk_list!(this, visit_generic_param, generics.params);
    |             ------------------------------------------------------ in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_hir_analysis/src/collect/resolve_bound_vars.rs:928:13
    |
928 |             walk_list!(this, visit_where_predicate, generics.predicates);
    |             ------------------------------------------------------------ in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_hir_analysis/src/collect/resolve_bound_vars.rs:971:21
    |
971 |                     walk_list!(this, visit_generic_param, bound_generic_params);
    |                     ----------------------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_hir_analysis/src/collect/resolve_bound_vars.rs:973:21
    |
973 |                     walk_list!(this, visit_param_bound, bounds);
    |                     ------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_hir_analysis/src/collect/resolve_bound_vars.rs:982:17
    |
982 |                 walk_list!(self, visit_param_bound, bounds);
    |                 ------------------------------------------- in this macro invocation (#1)

warning: this type will no longer be must used: ControlFlow<!>
   --> /home/wffl/prog/rust-r/compiler/rustc_ast_ir/src/visit.rs:47:15
    |
 45 | macro_rules! try_visit {
    | ---------------------- in this expansion of `$crate::try_visit!` (#2)
 46 |     ($e:expr) => {
 47 |         match $crate::visit::VisitorResult::branch($e) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
 67 | macro_rules! walk_list {
    | ---------------------- in this expansion of `ast_visit::walk_list!` (#1)
...
 70 |             $crate::try_visit!($visitor.$method(elem $(, $($extra_args,)* )?));
    |             ------------------------------------------------------------------ in this macro invocation (#2)
    |
   ::: compiler/rustc_passes/src/input_stats.rs:459:9
    |
459 |         ast_visit::walk_list!(self, visit_path_segment, segments);
    |         --------------------------------------------------------- in this macro invocation (#1)
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: `rustc_lint` (lib) generated 5 warnings
warning: `rustc_passes` (lib) generated 1 warning
warning: `rustc_hir_analysis` (lib) generated 11 warnings
warning: this type will no longer be must used: Result<(), !>
   --> compiler/rustc_hir_typeck/src/expr_use_visitor.rs:253:68
    |
253 |       fn error_reported_in_ty(&self, _ty: Ty<'tcx>) -> Result<(), !> {
    |  ____________________________________________________________________^
254 | |         Ok(())
255 | |     }
    | |_____^
    |
    = note: `#[warn(unmustuse_in_always_ok)]` on by default

warning: this type will no longer be must used: Result<(), !>
   --> compiler/rustc_hir_typeck/src/expr_use_visitor.rs:254:9
    |
254 |         Ok(())
    |         ^^^^^^

warning: this type will no longer be must used: Result<(), !>
   --> compiler/rustc_hir_typeck/src/expr_use_visitor.rs:257:50
    |
257 |       fn tainted_by_errors(&self) -> Result<(), !> {
    |  __________________________________________________^
258 | |         Ok(())
259 | |     }
    | |_____^

warning: this type will no longer be must used: Result<(), !>
   --> compiler/rustc_hir_typeck/src/expr_use_visitor.rs:258:9
    |
258 |         Ok(())
    |         ^^^^^^

@rust-bors
Copy link

rust-bors bot commented Nov 6, 2025

☀️ Try build successful (CI)
Build commit: 4f260f0 (4f260f0f20b3133d20cfb50353c0221943af5796, parent: 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a)

@jackh726
Copy link
Member

@craterbot check +rustflags=-Dunmustuse_in_always_ok

@craterbot
Copy link
Collaborator

🚨 Error: failed to parse the command

🆘 If you have any trouble with Crater please ask in t-infra on Zulip
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@jackh726
Copy link
Member

Hmm, let's try

@craterbot run mode=check-only start=642c19bfc3a5c1de985bf5d0cc8207ac9d22708a end=4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok

@craterbot
Copy link
Collaborator

🚨 Error: failed to parse the command

🆘 If you have any trouble with Crater please ask in t-infra on Zulip
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@WaffleLapkin
Copy link
Member Author

@craterbot run mode=check-only start=master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a end=try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok

@craterbot
Copy link
Collaborator

👌 Experiment pr-148577 created and queued.
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Nov 12, 2025
@craterbot
Copy link
Collaborator

🚧 Experiment pr-148577 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-crater Status: Waiting on a crater run to be completed. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants