Skip to content

Commit

Permalink
Try without generics, use fn pointers instead
Browse files Browse the repository at this point in the history
  • Loading branch information
jieyouxu committed Apr 6, 2024
1 parent 26ad0bd commit 00d3639
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
21 changes: 12 additions & 9 deletions tests/ui/debuginfo/auxiliary/line-tables-only-helper.rs
Original file line number Diff line number Diff line change
@@ -1,22 +1,25 @@
//@ compile-flags: -Cstrip=none -Cdebuginfo=line-tables-only
use std::backtrace::Backtrace;

#[no_mangle]
pub fn baz<F>(mut cb: F, data: u32) where F: FnMut(u32) {
cb(data);
pub fn baz(cb: fn(u32) -> Backtrace, data: u32) -> Backtrace {
cb(data)
}

#[no_mangle]
pub fn bar<F>(cb: F, data: u32) where F: FnMut(u32) {
baz(cb, data);
pub fn bar(cb: fn(u32) -> Backtrace, data: u32) -> Backtrace {
baz(cb, data)
}

#[no_mangle]
pub fn foo<F>(cb: F, data: u32) where F: FnMut(u32) {
bar(cb, data);
pub fn foo(cb: fn(u32) -> Backtrace, data: u32) -> Backtrace {
bar(cb, data)
}

fn helper(_x: u32) -> Backtrace {
Backtrace::capture()
}

pub fn capture_backtrace() -> std::backtrace::Backtrace {
let mut bt = None;
foo(|_| bt = Some(std::backtrace::Backtrace::capture()), 42);
bt.unwrap()
foo(helper, 42)
}
6 changes: 3 additions & 3 deletions tests/ui/debuginfo/backtrace-line-tables-only.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ fn assert_contains(
fn main() {
std::env::set_var("RUST_BACKTRACE", "1");
let backtrace = line_tables_only_helper::capture_backtrace();
assert_contains(&backtrace, "foo", "line-tables-only-helper.rs", 5);
assert_contains(&backtrace, "bar", "line-tables-only-helper.rs", 10);
assert_contains(&backtrace, "baz", "line-tables-only-helper.rs", 15);
assert_contains(&backtrace, "foo", "line-tables-only-helper.rs", 6);
assert_contains(&backtrace, "bar", "line-tables-only-helper.rs", 11);
assert_contains(&backtrace, "baz", "line-tables-only-helper.rs", 16);
}

0 comments on commit 00d3639

Please sign in to comment.