Skip to content

Commit ac72e53

Browse files
committed
chore: add support for rustc 1.84 (close #57)
1 parent 2bd2abf commit ac72e53

File tree

5 files changed

+62
-41
lines changed

5 files changed

+62
-41
lines changed

.github/workflows/ci.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
test:
77
strategy:
88
matrix:
9-
rustc_sup_version: [ 1.79.0, 1.80.0, 1.81.0, 1.82.0, 1.83.0 ]
9+
rustc_sup_version: [ 1.80.0, 1.81.0, 1.82.0, 1.83.0, 1.84.0 ]
1010
runs-on: ubuntu-latest
1111
steps:
1212
- uses: actions/checkout@v3
@@ -25,7 +25,7 @@ jobs:
2525
- name: Install actual rustc
2626
uses: actions-rs/toolchain@v1
2727
with:
28-
toolchain: 1.83.0
28+
toolchain: 1.84.0
2929
override: true
3030
components: rustfmt, clippy
3131
- name: Run functional tests on own stack unwind implementation
@@ -42,7 +42,7 @@ jobs:
4242
- name: Install rust
4343
uses: actions-rs/toolchain@v1
4444
with:
45-
toolchain: 1.83.0
45+
toolchain: 1.84.0
4646
override: true
4747
components: rustfmt, clippy
4848
- name: Set up Python
@@ -74,7 +74,7 @@ jobs:
7474
- name: Install rust
7575
uses: actions-rs/toolchain@v1
7676
with:
77-
toolchain: 1.83.0
77+
toolchain: 1.84.0
7878
override: true
7979
components: rustfmt, clippy
8080
- name: Install libunwind

CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,16 @@ All notable changes to this project will be documented in this file.
1616

1717
---
1818

19+
# [0.2.6] Jan 13 2025
20+
21+
### Added
22+
- debugger: added support for rustc 1.84
23+
24+
### Fixed
25+
- update github actions
26+
27+
---
28+
1929
# [0.2.5] Nov 30 2024
2030

2131
### Added

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
- 1.81
4343
- 1.82
4444
- 1.83
45+
- 1.84
4546

4647
---
4748

src/version.rs

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ static SUPPORTED_RUSTC: &[(Version, Version)] = &[
6060
(Version((1, 81, 0)), Version((1, 81, u32::MAX))),
6161
(Version((1, 82, 0)), Version((1, 82, u32::MAX))),
6262
(Version((1, 83, 0)), Version((1, 83, u32::MAX))),
63+
(Version((1, 84, 0)), Version((1, 84, u32::MAX))),
6364
];
6465

6566
pub fn supported_versions_to_string() -> String {

tests/debugger/variables.rs

+46-37
Original file line numberDiff line numberDiff line change
@@ -1645,41 +1645,43 @@ fn test_circular_ref_types() {
16451645
);
16461646

16471647
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"),
16781680
});
1679-
}
1680-
_ => panic!("3 members expected"),
1681-
},
1682-
);
1681+
});
1682+
}
1683+
_ => panic!("3 members expected"),
1684+
});
16831685

16841686
debugger.continue_debugee().unwrap();
16851687
assert_no_proc!(debugee_pid);
@@ -2229,6 +2231,7 @@ fn test_shared_ptr() {
22292231
let info = TestInfo::default();
22302232
let builder = DebuggerBuilder::new().with_hooks(TestHooks::new(info.clone()));
22312233
let mut debugger = builder.build(process).unwrap();
2234+
let rust_version: Version = rust_version(VARS_APP).unwrap();
22322235

22332236
debugger.set_breakpoint_at_line("vars.rs", 475).unwrap();
22342237

@@ -2238,7 +2241,13 @@ fn test_shared_ptr() {
22382241
let vars = debugger.read_local_variables().unwrap();
22392242
assert_rc(&vars[0], "rc0", "Rc<i32, alloc::alloc::Global>");
22402243
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 {
22422251
0 => assert_cell(member, "strong", "Cell<usize>", |inner| {
22432252
assert_scalar(inner, "value", "usize", Some(SupportedScalar::Usize(2)))
22442253
}),
@@ -2250,7 +2259,7 @@ fn test_shared_ptr() {
22502259
});
22512260
assert_rc(&vars[1], "rc1", "Rc<i32, alloc::alloc::Global>");
22522261
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 {
22542263
0 => assert_cell(member, "strong", "Cell<usize>", |inner| {
22552264
assert_scalar(inner, "value", "usize", Some(SupportedScalar::Usize(2)))
22562265
}),
@@ -2262,7 +2271,7 @@ fn test_shared_ptr() {
22622271
});
22632272
assert_rc(&vars[2], "weak_rc2", "Weak<i32, alloc::alloc::Global>");
22642273
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 {
22662275
0 => assert_cell(member, "strong", "Cell<usize>", |inner| {
22672276
assert_scalar(inner, "value", "usize", Some(SupportedScalar::Usize(2)))
22682277
}),

0 commit comments

Comments
 (0)