Files
hakorune/src/mir/builder/builder_debug.rs

48 lines
1.4 KiB
Rust

use super::MirBuilder;
impl MirBuilder {
// ----------------------
// Debug scope helpers (region_id for DebugHub events)
// ----------------------
#[inline]
pub(crate) fn debug_next_join_id(&mut self) -> u32 {
// Phase 136 Step 2/7 + Phase 2-2: Use core_ctx as SSOT (no sync needed)
self.core_ctx.next_debug_join()
}
#[inline]
pub(crate) fn debug_push_region<S: Into<String>>(&mut self, region: S) {
// Phase 2-4: Use scope_ctx only (legacy field removed)
let region = region.into();
self.scope_ctx.debug_push_region(region);
}
#[inline]
pub(crate) fn debug_pop_region(&mut self) {
// Phase 2-4: Use scope_ctx only (legacy field removed)
self.scope_ctx.debug_pop_region();
}
#[inline]
#[allow(deprecated)]
pub(crate) fn debug_current_region_id(&self) -> Option<String> {
// Phase 136 Step 3/7: Read from scope_ctx (SSOT)
self.scope_ctx.debug_current_region_id()
}
// ----------------------
// Compile trace helpers (dev only; env-gated)
// ----------------------
#[inline]
pub(super) fn compile_trace_enabled() -> bool {
std::env::var("NYASH_MIR_COMPILE_TRACE").ok().as_deref() == Some("1")
}
#[inline]
pub(super) fn trace_compile<S: AsRef<str>>(&self, msg: S) {
if Self::compile_trace_enabled() {
eprintln!("[mir-compile] {}", msg.as_ref());
}
}
}