File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1562,11 +1562,10 @@ mod tests {
15621562 }
15631563
15641564 #[ test]
1565+ #[ should_panic( expected = "too large for a pointer to its elements" ) ]
15651566 fn far_vector_field_ptr ( ) {
1566- let holder = holds_far ( ) ;
1567- let far: Ptr < Far > = field_ptr ! ( holder, far) ;
1568- let v: Ptr < i32 > = field_ref ! ( far, v) . as_pointer ( ) . decay ( ) ;
1569- assert_eq ! ( v. offset( 1 ) . read( ) , 6 ) ;
1567+ let far: Ptr < Far > = field_ptr ! ( holds_far( ) , far) ;
1568+ let _: Ptr < i32 > = field_ref ! ( far, v) . as_pointer ( ) . decay ( ) ;
15701569 }
15711570
15721571 #[ test]
@@ -1576,8 +1575,6 @@ mod tests {
15761575 let s: Value < Far > = Rc :: new ( RefCell :: new ( holds_far ( ) . borrow ( ) . far . clone ( ) ) ) ;
15771576 let arr: Ptr < i32 > = array_field_ptr ! ( s, arr) ;
15781577 assert_eq ! ( arr. offset( 2 ) . read( ) , 3 ) ;
1579- let v: Ptr < i32 > = field_ref ! ( s, v) . as_pointer ( ) . decay ( ) ;
1580- assert_eq ! ( v. offset( 1 ) . read( ) , 6 ) ;
15811578 }
15821579
15831580 #[ derive( Clone , Default , Record , ByteRepr ) ]
Original file line number Diff line number Diff line change @@ -1466,12 +1466,10 @@ impl<T: 'static> Ptr<Vec<T>> {
14661466 kind : PtrKind :: HeapVec ( weak. clone ( ) ) ,
14671467 } ,
14681468 // The elements of a field are reached through the struct.
1469- PtrKind :: Field ( root, _, FieldShape :: Single ) if u32:: try_from ( self . offset ) . is_ok ( ) => {
1470- Ptr {
1471- offset : 0 ,
1472- kind : PtrKind :: Field ( root. clone ( ) , self . offset as u32 , FieldShape :: Vec ) ,
1473- }
1474- }
1469+ PtrKind :: Field ( root, _, FieldShape :: Single ) => Ptr {
1470+ offset : 0 ,
1471+ kind : PtrKind :: Field ( root. clone ( ) , field_offset ( self . offset ) , FieldShape :: Vec ) ,
1472+ } ,
14751473 PtrKind :: StackVec ( _)
14761474 | PtrKind :: HeapVec ( _)
14771475 | PtrKind :: StackArray ( _)
You can’t perform that action at this time.
0 commit comments