@@ -525,31 +525,24 @@ fn ptr_metadata() {
525
525
assert_eq ! ( metadata( "foo" ) , 3_usize ) ;
526
526
assert_eq ! ( metadata( & [ 4 , 7 ] [ ..] ) , 2_usize ) ;
527
527
528
- let dst_tuple: & ( bool , [ u8 ] ) = & ( true , [ 0x66 , 0x6F , 0x6F ] ) ;
529
528
let dst_struct: & Pair < bool , [ u8 ] > = & Pair ( true , [ 0x66 , 0x6F , 0x6F ] ) ;
530
- assert_eq ! ( metadata( dst_tuple) , 3_usize ) ;
531
529
assert_eq ! ( metadata( dst_struct) , 3_usize ) ;
532
530
unsafe {
533
- let dst_tuple: & ( bool , str ) = std:: mem:: transmute ( dst_tuple) ;
534
531
let dst_struct: & Pair < bool , str > = std:: mem:: transmute ( dst_struct) ;
535
- assert_eq ! ( & dst_tuple. 1 , "foo" ) ;
536
532
assert_eq ! ( & dst_struct. 1 , "foo" ) ;
537
- assert_eq ! ( metadata( dst_tuple) , 3_usize ) ;
538
533
assert_eq ! ( metadata( dst_struct) , 3_usize ) ;
539
534
}
540
535
541
536
let vtable_1: DynMetadata < dyn Debug > = metadata ( & 4_u16 as & dyn Debug ) ;
542
537
let vtable_2: DynMetadata < dyn Display > = metadata ( & 4_u16 as & dyn Display ) ;
543
538
let vtable_3: DynMetadata < dyn Display > = metadata ( & 4_u32 as & dyn Display ) ;
544
- let vtable_4: DynMetadata < dyn Display > = metadata ( & ( true , 7_u32 ) as & ( bool , dyn Display ) ) ;
545
- let vtable_5: DynMetadata < dyn Display > =
539
+ let vtable_4: DynMetadata < dyn Display > =
546
540
metadata ( & Pair ( true , 7_u32 ) as & Pair < bool , dyn Display > ) ;
547
541
unsafe {
548
542
let address_1: * const ( ) = std:: mem:: transmute ( vtable_1) ;
549
543
let address_2: * const ( ) = std:: mem:: transmute ( vtable_2) ;
550
544
let address_3: * const ( ) = std:: mem:: transmute ( vtable_3) ;
551
545
let address_4: * const ( ) = std:: mem:: transmute ( vtable_4) ;
552
- let address_5: * const ( ) = std:: mem:: transmute ( vtable_5) ;
553
546
// Different trait => different vtable pointer
554
547
assert_ne ! ( address_1, address_2) ;
555
548
// Different erased type => different vtable pointer
@@ -558,7 +551,6 @@ fn ptr_metadata() {
558
551
// This is *not guaranteed*, so we skip it in Miri.
559
552
if !cfg ! ( miri) {
560
553
assert_eq ! ( address_3, address_4) ;
561
- assert_eq ! ( address_3, address_5) ;
562
554
}
563
555
}
564
556
}
0 commit comments