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