Skip to content

Commit f58c415

Browse files
committed
lint: silence clippy just_underscores_and_digits
Current tuple structs internals result in macros generating internal field names like '_0' which triggers the lint. However, since these fields are internal/generated such names are not problematic. Signed-off-by: Mohamad Alsadhan <mo@sdhn.cc>
1 parent 78043e4 commit f58c415

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

internal/src/init.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,10 @@ fn init_fields(
290290
// Setting the span of `value_ident` to `value`'s span improves error messages
291291
// when the type of `value` is wrong.
292292
value_ident.set_span(value.span());
293-
quote!(let #value_ident = #value;)
293+
quote! {
294+
#[allow(clippy::just_underscores_and_digits)]
295+
let #value_ident = #value;
296+
}
294297
});
295298
// Again span for better diagnostics
296299
let write = quote_spanned!(member.span()=> ::core::ptr::write);
@@ -312,6 +315,7 @@ fn init_fields(
312315
quote! {
313316
#(#cfgs)*
314317
#[allow(unused_variables)]
318+
#[allow(clippy::just_underscores_and_digits)]
315319
let #ident = #accessor;
316320
}
317321
});
@@ -370,6 +374,7 @@ fn init_fields(
370374
quote! {
371375
#(#cfgs)*
372376
#[allow(unused_variables)]
377+
#[allow(clippy::just_underscores_and_digits)]
373378
let #ident = #accessor;
374379
}
375380
});
@@ -400,6 +405,7 @@ fn init_fields(
400405
// We rely on macro hygiene to make it impossible for users to access this local
401406
// variable.
402407
// SAFETY: We forget the guard later when initialization has succeeded.
408+
#[allow(clippy::just_underscores_and_digits)]
403409
let #guard = unsafe {
404410
::pin_init::__internal::DropGuard::new(
405411
::core::ptr::addr_of_mut!((*slot).#member)

src/lib.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,8 +497,10 @@ pub use ::pin_init_internal::MaybeZeroable;
497497
#[macro_export]
498498
macro_rules! stack_pin_init {
499499
(let $var:ident $(: $t:ty)? = $val:expr) => {
500+
#[allow(clippy::just_underscores_and_digits)]
500501
let val = $val;
501502
let mut $var = ::core::pin::pin!($crate::__internal::StackInit$(::<$t>)?::uninit());
503+
#[allow(clippy::redundant_locals)]
502504
let mut $var = match $crate::__internal::StackInit::init($var, val) {
503505
Ok(res) => res,
504506
Err(x) => {
@@ -575,13 +577,17 @@ macro_rules! stack_pin_init {
575577
#[macro_export]
576578
macro_rules! stack_try_pin_init {
577579
(let $var:ident $(: $t:ty)? = $val:expr) => {
580+
#[allow(clippy::just_underscores_and_digits)]
578581
let val = $val;
579582
let mut $var = ::core::pin::pin!($crate::__internal::StackInit$(::<$t>)?::uninit());
583+
#[allow(clippy::redundant_locals)]
580584
let mut $var = $crate::__internal::StackInit::init($var, val);
581585
};
582586
(let $var:ident $(: $t:ty)? =? $val:expr) => {
587+
#[allow(clippy::just_underscores_and_digits)]
583588
let val = $val;
584589
let mut $var = ::core::pin::pin!($crate::__internal::StackInit$(::<$t>)?::uninit());
590+
#[allow(clippy::redundant_locals)]
585591
let mut $var = $crate::__internal::StackInit::init($var, val)?;
586592
};
587593
}

tests/tuple_struct.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ fn tuple_struct_values() {
3939

4040
#[test]
4141
#[allow(clippy::just_underscores_and_digits)]
42+
#[allow(clippy::redundant_locals)]
4243
fn tuple_struct_init_arrow_and_projection() {
4344
stack_pin_init!(let foo = pin_init!(TupleStruct { 0 <- init_i32(7), 1: 13 }));
4445
let mut foo = foo;
@@ -59,6 +60,7 @@ fn tuple_struct_constructor_form() {
5960
struct Triple(i32, i32, i32);
6061

6162
#[test]
63+
#[allow(clippy::just_underscores_and_digits)]
6264
fn tuple_struct_constructor_form_mixed_middle_init() {
6365
stack_pin_init!(let triple = pin_init!(Triple(1, <- init_i32_unpinned(2), 3)));
6466
assert_eq!(triple.as_ref().get_ref().0, 1);

0 commit comments

Comments
 (0)