hunyi 0.5.0

渾儀 (Hunyi) — Tianheng's semantic (AST/syn) observation dimension, the complement of the static import boundary. Declare in Rust how a module's public surface must behave: what its API must not expose (types — including named public re-exports and, opt-in, a trait impl's impl-site positions — and no dyn / impl Trait or async fn seam), where a trait may be implemented, that it declares no bare pub, and which markers a type must not acquire — observed via syn, reacted in CI. The heavy syn dependency is quarantined here, never in the core.
Documentation
mod async_exposure;
mod dyn_trait;
mod finding_source_file;
mod forbidden_marker;
mod helpers;
mod impl_trait;
mod macro_and_body_nested;
mod resolver_fidelity;
mod signature;
mod trait_impl;
mod unsafe_confinement;
mod visibility;

#[test]
fn empty_composition_is_clean_without_reading_a_manifest() {
    let absent = std::env::temp_dir().join(format!(
        "tianheng-empty-semantic-composition-{}-does-not-exist/Cargo.toml",
        std::process::id()
    ));

    assert!(matches!(
        crate::check_all(&crate::SemanticBoundaries::default(), &absent),
        xuanji::Outcome::Clean(_)
    ));
}