@@ -1645,41 +1645,43 @@ fn test_circular_ref_types() {
1645
1645
) ;
1646
1646
1647
1647
let deref = read_single_var ( & debugger, "*a_circ" ) ;
1648
- assert_struct (
1649
- & deref,
1650
- "*a_circ" ,
1651
- "RcBox<vars::circular::List>" ,
1652
- |i, member| match i {
1653
- 0 => assert_cell ( member, "strong" , "Cell<usize>" , |inner| {
1654
- assert_scalar ( inner, "value" , "usize" , Some ( SupportedScalar :: Usize ( 2 ) ) )
1655
- } ) ,
1656
- 1 => assert_cell ( member, "weak" , "Cell<usize>" , |inner| {
1657
- assert_scalar ( inner, "value" , "usize" , Some ( SupportedScalar :: Usize ( 1 ) ) )
1658
- } ) ,
1659
- 2 => {
1660
- assert_rust_enum ( member, "value" , "List" , |enum_member| {
1661
- assert_struct ( enum_member, "Cons" , "Cons" , |i, cons_member| match i {
1662
- 0 => assert_scalar ( cons_member, "0" , "i32" , Some ( SupportedScalar :: I32 ( 5 ) ) ) ,
1663
- 1 => assert_refcell (
1664
- cons_member,
1665
- "1" ,
1666
- "RefCell<alloc::rc::Rc<vars::circular::List, alloc::alloc::Global>>" ,
1667
- 0 ,
1668
- |inner| {
1669
- assert_rc (
1670
- inner,
1671
- "value" ,
1672
- "Rc<vars::circular::List, alloc::alloc::Global>" ,
1673
- )
1674
- } ,
1675
- ) ,
1676
- _ => panic ! ( "2 members expected" ) ,
1677
- } ) ;
1648
+ let rust_version: Version = rust_version ( VARS_APP ) . unwrap ( ) ;
1649
+ let deref_type = version_switch ! (
1650
+ rust_version,
1651
+ ( 1 , 0 , 0 ) ..= ( 1 , 83 , u32 :: MAX ) => "RcBox<vars::circular::List>" ,
1652
+ ( 1 , 84 , 0 ) ..= ( 1 , u32 :: MAX , u32 :: MAX ) => "RcInner<vars::circular::List>" ,
1653
+ )
1654
+ . unwrap ( ) ;
1655
+ assert_struct ( & deref, "*a_circ" , deref_type, |i, member| match i {
1656
+ 0 => assert_cell ( member, "strong" , "Cell<usize>" , |inner| {
1657
+ assert_scalar ( inner, "value" , "usize" , Some ( SupportedScalar :: Usize ( 2 ) ) )
1658
+ } ) ,
1659
+ 1 => assert_cell ( member, "weak" , "Cell<usize>" , |inner| {
1660
+ assert_scalar ( inner, "value" , "usize" , Some ( SupportedScalar :: Usize ( 1 ) ) )
1661
+ } ) ,
1662
+ 2 => {
1663
+ assert_rust_enum ( member, "value" , "List" , |enum_member| {
1664
+ assert_struct ( enum_member, "Cons" , "Cons" , |i, cons_member| match i {
1665
+ 0 => assert_scalar ( cons_member, "0" , "i32" , Some ( SupportedScalar :: I32 ( 5 ) ) ) ,
1666
+ 1 => assert_refcell (
1667
+ cons_member,
1668
+ "1" ,
1669
+ "RefCell<alloc::rc::Rc<vars::circular::List, alloc::alloc::Global>>" ,
1670
+ 0 ,
1671
+ |inner| {
1672
+ assert_rc (
1673
+ inner,
1674
+ "value" ,
1675
+ "Rc<vars::circular::List, alloc::alloc::Global>" ,
1676
+ )
1677
+ } ,
1678
+ ) ,
1679
+ _ => panic ! ( "2 members expected" ) ,
1678
1680
} ) ;
1679
- }
1680
- _ => panic ! ( "3 members expected" ) ,
1681
- } ,
1682
- ) ;
1681
+ } ) ;
1682
+ }
1683
+ _ => panic ! ( "3 members expected" ) ,
1684
+ } ) ;
1683
1685
1684
1686
debugger. continue_debugee ( ) . unwrap ( ) ;
1685
1687
assert_no_proc ! ( debugee_pid) ;
@@ -2229,6 +2231,7 @@ fn test_shared_ptr() {
2229
2231
let info = TestInfo :: default ( ) ;
2230
2232
let builder = DebuggerBuilder :: new ( ) . with_hooks ( TestHooks :: new ( info. clone ( ) ) ) ;
2231
2233
let mut debugger = builder. build ( process) . unwrap ( ) ;
2234
+ let rust_version: Version = rust_version ( VARS_APP ) . unwrap ( ) ;
2232
2235
2233
2236
debugger. set_breakpoint_at_line ( "vars.rs" , 475 ) . unwrap ( ) ;
2234
2237
@@ -2238,7 +2241,13 @@ fn test_shared_ptr() {
2238
2241
let vars = debugger. read_local_variables ( ) . unwrap ( ) ;
2239
2242
assert_rc ( & vars[ 0 ] , "rc0" , "Rc<i32, alloc::alloc::Global>" ) ;
2240
2243
let deref = read_single_var ( & debugger, "*rc0" ) ;
2241
- assert_struct ( & deref, "*rc0" , "RcBox<i32>" , |i, member| match i {
2244
+ let deref_type = version_switch ! (
2245
+ rust_version,
2246
+ ( 1 , 0 , 0 ) ..= ( 1 , 83 , u32 :: MAX ) => "RcBox<i32>" ,
2247
+ ( 1 , 84 , 0 ) ..= ( 1 , u32 :: MAX , u32 :: MAX ) => "RcInner<i32>" ,
2248
+ )
2249
+ . unwrap ( ) ;
2250
+ assert_struct ( & deref, "*rc0" , deref_type, |i, member| match i {
2242
2251
0 => assert_cell ( member, "strong" , "Cell<usize>" , |inner| {
2243
2252
assert_scalar ( inner, "value" , "usize" , Some ( SupportedScalar :: Usize ( 2 ) ) )
2244
2253
} ) ,
@@ -2250,7 +2259,7 @@ fn test_shared_ptr() {
2250
2259
} ) ;
2251
2260
assert_rc ( & vars[ 1 ] , "rc1" , "Rc<i32, alloc::alloc::Global>" ) ;
2252
2261
let deref = read_single_var ( & debugger, "*rc1" ) ;
2253
- assert_struct ( & deref, "*rc1" , "RcBox<i32>" , |i, member| match i {
2262
+ assert_struct ( & deref, "*rc1" , deref_type , |i, member| match i {
2254
2263
0 => assert_cell ( member, "strong" , "Cell<usize>" , |inner| {
2255
2264
assert_scalar ( inner, "value" , "usize" , Some ( SupportedScalar :: Usize ( 2 ) ) )
2256
2265
} ) ,
@@ -2262,7 +2271,7 @@ fn test_shared_ptr() {
2262
2271
} ) ;
2263
2272
assert_rc ( & vars[ 2 ] , "weak_rc2" , "Weak<i32, alloc::alloc::Global>" ) ;
2264
2273
let deref = read_single_var ( & debugger, "*weak_rc2" ) ;
2265
- assert_struct ( & deref, "*weak_rc2" , "RcBox<i32>" , |i, member| match i {
2274
+ assert_struct ( & deref, "*weak_rc2" , deref_type , |i, member| match i {
2266
2275
0 => assert_cell ( member, "strong" , "Cell<usize>" , |inner| {
2267
2276
assert_scalar ( inner, "value" , "usize" , Some ( SupportedScalar :: Usize ( 2 ) ) )
2268
2277
} ) ,
0 commit comments