File tree Expand file tree Collapse file tree 2 files changed +11
-8
lines changed 
src/test/ui/manually_drop_attr Expand file tree Collapse file tree 2 files changed +11
-8
lines changed Original file line number Diff line number Diff line change @@ -30,15 +30,17 @@ impl<'a> Drop for ManuallyDropped<'a> {
3030
3131#[ manually_drop]  
3232enum  ManuallyDroppedEnum < ' a >  { 
33-     A ( DropCounter < ' a > ,  DropCounter < ' a > ) , 
33+     _A, 
34+     B ( DropCounter < ' a > ,  DropCounter < ' a > ) , 
3435} 
3536
3637impl < ' a >  Drop  for  ManuallyDroppedEnum < ' a >  { 
3738    fn  drop ( & mut  self )  { 
3839        // just do a LITTLE dropping. 
39-         let  ManuallyDroppedEnum :: A ( a,  _)  = self ; 
40-         unsafe  { 
41-             core:: ptr:: drop_in_place ( a) ; 
40+         if  let  ManuallyDroppedEnum :: B ( a,  _)  = self  { 
41+             unsafe  { 
42+                 core:: ptr:: drop_in_place ( a) ; 
43+             } 
4244        } 
4345    } 
4446} 
@@ -56,7 +58,7 @@ fn test_destruction() {
5658    assert_eq ! ( counter. get( ) ,  1 ) ; 
5759    assert ! ( core:: mem:: needs_drop:: <ManuallyDropped >( ) ) ; 
5860
59-     core:: mem:: drop ( ManuallyDroppedEnum :: A ( DropCounter ( & counter) ,  DropCounter ( & counter) ) ) ; 
61+     core:: mem:: drop ( ManuallyDroppedEnum :: B ( DropCounter ( & counter) ,  DropCounter ( & counter) ) ) ; 
6062    assert_eq ! ( counter. get( ) ,  2 ) ; 
6163    assert ! ( core:: mem:: needs_drop:: <ManuallyDroppedEnum >( ) ) ; 
6264
Original file line number Diff line number Diff line change @@ -22,10 +22,11 @@ struct ManuallyDropped<'a> {
2222
2323#[ manually_drop]  
2424enum  ManuallyDroppedEnum < ' a >  { 
25-     A ( DropCounter < ' a > ,  DropCounter < ' a > ) , 
25+     _A, 
26+     B ( DropCounter < ' a > ,  DropCounter < ' a > ) , 
2627} 
2728
28- /// Dropping a `#[manually_drop]` struct  does not implicitly drop its fields. 
29+ /// Dropping a `#[manually_drop]` type  does not implicitly drop its fields. 
2930fn  test_destruction ( )  { 
3031    let  counter = Cell :: new ( 0 ) ; 
3132    core:: mem:: drop ( ManuallyDropped  { 
@@ -35,7 +36,7 @@ fn test_destruction() {
3536    assert_eq ! ( counter. get( ) ,  0 ) ; 
3637    assert ! ( !core:: mem:: needs_drop:: <ManuallyDropped >( ) ) ; 
3738
38-     core:: mem:: drop ( ManuallyDroppedEnum :: A ( DropCounter ( & counter) ,  DropCounter ( & counter) ) ) ; 
39+     core:: mem:: drop ( ManuallyDroppedEnum :: B ( DropCounter ( & counter) ,  DropCounter ( & counter) ) ) ; 
3940    assert_eq ! ( counter. get( ) ,  0 ) ; 
4041    assert ! ( !core:: mem:: needs_drop:: <ManuallyDroppedEnum >( ) ) ; 
4142} 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments