1 // aux-build:proc_macros.rs
2 #![warn(clippy::mut_mut)]
4 #![allow(clippy::no_effect, clippy::uninlined_format_args, clippy::unnecessary_operation)]
6 extern crate proc_macros
;
7 use proc_macros
::{external, inline_macros}
;
9 fn fun(x
: &mut &mut u32) -> bool
{
13 fn less_fun(x
: *mut *mut u32) {
17 macro_rules
! mut_ptr
{
23 #[allow(unused_mut, unused_variables)]
26 let mut x
= &mut &mut 1u32;
32 let y
: &mut &mut u32 = &mut &mut 2;
37 let y
: &mut &mut &mut u32 = &mut &mut &mut 2;
41 let mut z
= inline
!(&mut $
(&mut 3u32));
45 let array
= [5, 6, 7, 8, 9];
46 let mut args
= array
.iter().skip(2);
47 for &arg
in &mut args
{
58 // do not lint from an external macro
59 external
!(let mut_mut_ty
: &mut &mut u32 = &mut &mut 1u32;);
63 use std
::fmt
::Display
;
66 inner
: &'a
mut dyn Display
,
71 let hlp
= &mut self.inner
;
76 fn bar(_
: &mut impl Display
) {}