cranpose-core 0.1.170

Core runtime for a Jetpack Compose inspired UI framework in Rust
Documentation
use super::{__source_scope, current_source_trace};

#[test]
fn nested_origins_restore_after_return_and_unwind() {
    assert!(current_source_trace().is_empty());
    let outer = __source_scope("Screen", "screen.rs", 12, "/project");
    assert_eq!(current_source_trace()[0].name, "Screen");
    let captured = {
        let _inner = __source_scope("Card", "card.rs", 8, "/project");
        current_source_trace()
    };
    assert_eq!(captured.len(), 2);
    assert_eq!(captured[1].file, "card.rs");
    assert_eq!(current_source_trace().len(), 1);
    let result = std::panic::catch_unwind(|| {
        let _inner = __source_scope("Panic", "panic.rs", 1, "/project");
        panic!("test unwind");
    });
    assert!(result.is_err());
    assert_eq!(current_source_trace().len(), 1);
    drop(outer);
    assert!(current_source_trace().is_empty());
    assert_eq!(captured[0].line, 12);
}