@@ -312,7 +312,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
312
312
e. span,
313
313
& format!( "transmute from a type (`{}`) to itself" , from_ty) ,
314
314
) ,
315
- ( & ty:: Ref ( _, rty, rty_mutbl) , & ty:: RawPtr ( ptr_ty) ) => span_lint_and_then(
315
+ ( ty:: Ref ( _, rty, rty_mutbl) , ty:: RawPtr ( ptr_ty) ) => span_lint_and_then(
316
316
cx,
317
317
USELESS_TRANSMUTE ,
318
318
e. span,
@@ -321,10 +321,10 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
321
321
if let Some ( arg) = sugg:: Sugg :: hir_opt( cx, & args[ 0 ] ) {
322
322
let rty_and_mut = ty:: TypeAndMut {
323
323
ty: rty,
324
- mutbl: rty_mutbl,
324
+ mutbl: * rty_mutbl,
325
325
} ;
326
326
327
- let sugg = if ptr_ty == rty_and_mut {
327
+ let sugg = if * ptr_ty == rty_and_mut {
328
328
arg. as_ty( to_ty)
329
329
} else {
330
330
arg. as_ty( cx. tcx. mk_ptr( rty_and_mut) ) . as_ty( to_ty)
@@ -334,7 +334,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
334
334
}
335
335
} ,
336
336
) ,
337
- ( & ty:: Int ( _) , & ty :: RawPtr ( _ ) ) | ( & ty:: Uint ( _) , & ty:: RawPtr ( _) ) => span_lint_and_then(
337
+ ( ty:: Int ( _) | ty:: Uint ( _) , ty:: RawPtr ( _) ) => span_lint_and_then(
338
338
cx,
339
339
USELESS_TRANSMUTE ,
340
340
e. span,
@@ -350,16 +350,13 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
350
350
}
351
351
} ,
352
352
) ,
353
- ( & ty:: Float ( _) , & ty:: Ref ( ..) )
354
- | ( & ty:: Float ( _) , & ty:: RawPtr ( _) )
355
- | ( & ty:: Char , & ty:: Ref ( ..) )
356
- | ( & ty:: Char , & ty:: RawPtr ( _) ) => span_lint(
353
+ ( ty:: Float ( _) | ty:: Char , ty:: Ref ( ..) | ty:: RawPtr ( _) ) => span_lint(
357
354
cx,
358
355
WRONG_TRANSMUTE ,
359
356
e. span,
360
357
& format!( "transmute from a `{}` to a pointer" , from_ty) ,
361
358
) ,
362
- ( & ty:: RawPtr ( from_ptr) , _) if from_ptr. ty == to_ty => span_lint(
359
+ ( ty:: RawPtr ( from_ptr) , _) if from_ptr. ty == to_ty => span_lint(
363
360
cx,
364
361
CROSSPOINTER_TRANSMUTE ,
365
362
e. span,
@@ -368,7 +365,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
368
365
from_ty, to_ty
369
366
) ,
370
367
) ,
371
- ( _, & ty:: RawPtr ( to_ptr) ) if to_ptr. ty == from_ty => span_lint(
368
+ ( _, ty:: RawPtr ( to_ptr) ) if to_ptr. ty == from_ty => span_lint(
372
369
cx,
373
370
CROSSPOINTER_TRANSMUTE ,
374
371
e. span,
@@ -377,7 +374,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
377
374
from_ty, to_ty
378
375
) ,
379
376
) ,
380
- ( & ty:: RawPtr ( from_pty) , & ty:: Ref ( _, to_ref_ty, mutbl) ) => span_lint_and_then(
377
+ ( ty:: RawPtr ( from_pty) , ty:: Ref ( _, to_ref_ty, mutbl) ) => span_lint_and_then(
381
378
cx,
382
379
TRANSMUTE_PTR_TO_REF ,
383
380
e. span,
@@ -388,13 +385,13 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
388
385
) ,
389
386
|diag| {
390
387
let arg = sugg:: Sugg :: hir( cx, & args[ 0 ] , ".." ) ;
391
- let ( deref, cast) = if mutbl == Mutability :: Mut {
388
+ let ( deref, cast) = if * mutbl == Mutability :: Mut {
392
389
( "&mut *" , "*mut" )
393
390
} else {
394
391
( "&*" , "*const" )
395
392
} ;
396
393
397
- let arg = if from_pty. ty == to_ref_ty {
394
+ let arg = if from_pty. ty == * to_ref_ty {
398
395
arg
399
396
} else {
400
397
arg. as_ty( & format!( "{} {}" , cast, get_type_snippet( cx, qpath, to_ref_ty) ) )
@@ -408,7 +405,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
408
405
) ;
409
406
} ,
410
407
) ,
411
- ( & ty:: Int ( ast:: IntTy :: I32 ) , & ty :: Char ) | ( & ty:: Uint ( ast:: UintTy :: U32 ) , & ty:: Char ) => {
408
+ ( ty:: Int ( ast:: IntTy :: I32 ) | ty:: Uint ( ast:: UintTy :: U32 ) , & ty:: Char ) => {
412
409
span_lint_and_then(
413
410
cx,
414
411
TRANSMUTE_INT_TO_CHAR ,
@@ -430,13 +427,13 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
430
427
} ,
431
428
)
432
429
} ,
433
- ( & ty:: Ref ( _, ty_from, from_mutbl) , & ty:: Ref ( _, ty_to, to_mutbl) ) => {
430
+ ( ty:: Ref ( _, ty_from, from_mutbl) , ty:: Ref ( _, ty_to, to_mutbl) ) => {
434
431
if_chain! {
435
432
if let ( & ty:: Slice ( slice_ty) , & ty:: Str ) = ( & ty_from. kind, & ty_to. kind) ;
436
433
if let ty:: Uint ( ast:: UintTy :: U8 ) = slice_ty. kind;
437
434
if from_mutbl == to_mutbl;
438
435
then {
439
- let postfix = if from_mutbl == Mutability :: Mut {
436
+ let postfix = if * from_mutbl == Mutability :: Mut {
440
437
"_mut"
441
438
} else {
442
439
""
@@ -465,13 +462,13 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
465
462
|diag| if let Some ( arg) = sugg:: Sugg :: hir_opt( cx, & args[ 0 ] ) {
466
463
let ty_from_and_mut = ty:: TypeAndMut {
467
464
ty: ty_from,
468
- mutbl: from_mutbl
465
+ mutbl: * from_mutbl
469
466
} ;
470
- let ty_to_and_mut = ty:: TypeAndMut { ty: ty_to, mutbl: to_mutbl } ;
467
+ let ty_to_and_mut = ty:: TypeAndMut { ty: ty_to, mutbl: * to_mutbl } ;
471
468
let sugg_paren = arg
472
469
. as_ty( cx. tcx. mk_ptr( ty_from_and_mut) )
473
470
. as_ty( cx. tcx. mk_ptr( ty_to_and_mut) ) ;
474
- let sugg = if to_mutbl == Mutability :: Mut {
471
+ let sugg = if * to_mutbl == Mutability :: Mut {
475
472
sugg_paren. mut_addr_deref( )
476
473
} else {
477
474
sugg_paren. addr_deref( )
@@ -488,19 +485,19 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
488
485
}
489
486
}
490
487
} ,
491
- ( & ty:: RawPtr ( _) , & ty:: RawPtr ( to_ty) ) => span_lint_and_then(
488
+ ( ty:: RawPtr ( _) , ty:: RawPtr ( to_ty) ) => span_lint_and_then(
492
489
cx,
493
490
TRANSMUTE_PTR_TO_PTR ,
494
491
e. span,
495
492
"transmute from a pointer to a pointer" ,
496
493
|diag| {
497
494
if let Some ( arg) = sugg:: Sugg :: hir_opt( cx, & args[ 0 ] ) {
498
- let sugg = arg. as_ty( cx. tcx. mk_ptr( to_ty) ) ;
495
+ let sugg = arg. as_ty( cx. tcx. mk_ptr( * to_ty) ) ;
499
496
diag. span_suggestion( e. span, "try" , sugg. to_string( ) , Applicability :: Unspecified ) ;
500
497
}
501
498
} ,
502
499
) ,
503
- ( & ty:: Int ( ast:: IntTy :: I8 ) , & ty :: Bool ) | ( & ty:: Uint ( ast:: UintTy :: U8 ) , & ty:: Bool ) => {
500
+ ( ty:: Int ( ast:: IntTy :: I8 ) | ty:: Uint ( ast:: UintTy :: U8 ) , ty:: Bool ) => {
504
501
span_lint_and_then(
505
502
cx,
506
503
TRANSMUTE_INT_TO_BOOL ,
@@ -518,7 +515,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
518
515
} ,
519
516
)
520
517
} ,
521
- ( & ty:: Int ( _) , & ty :: Float ( _ ) ) | ( & ty:: Uint ( _) , & ty:: Float ( _) ) => span_lint_and_then(
518
+ ( ty:: Int ( _) | ty:: Uint ( _) , ty:: Float ( _) ) => span_lint_and_then(
522
519
cx,
523
520
TRANSMUTE_INT_TO_FLOAT ,
524
521
e. span,
@@ -541,7 +538,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
541
538
) ;
542
539
} ,
543
540
) ,
544
- ( & ty:: Float ( float_ty) , & ty:: Int ( _) ) | ( & ty :: Float ( float_ty ) , & ty:: Uint ( _) ) => span_lint_and_then(
541
+ ( ty:: Float ( float_ty) , ty:: Int ( _) | ty:: Uint ( _) ) => span_lint_and_then(
545
542
cx,
546
543
TRANSMUTE_FLOAT_TO_INT ,
547
544
e. span,
@@ -585,7 +582,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Transmute {
585
582
) ;
586
583
} ,
587
584
) ,
588
- ( & ty:: Adt ( ref from_adt, ref from_substs) , & ty:: Adt ( ref to_adt, ref to_substs) ) => {
585
+ ( ty:: Adt ( from_adt, from_substs) , ty:: Adt ( to_adt, to_substs) ) => {
589
586
if from_adt. did != to_adt. did ||
590
587
!COLLECTIONS . iter( ) . any( |path| match_def_path( cx, to_adt. did, path) ) {
591
588
return ;
0 commit comments