From fcf8042b06c24688374d29791060bc90ee1c2867 Mon Sep 17 00:00:00 2001 From: nyash-codex Date: Fri, 26 Sep 2025 14:47:52 +0900 Subject: [PATCH] builder: propagate value_types and value_origin_newbox in pin_to_slot (stabilize rewrite/type inference across pin/PHI) --- src/mir/builder/utils.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/mir/builder/utils.rs b/src/mir/builder/utils.rs index 65a54271..9a9d1a25 100644 --- a/src/mir/builder/utils.rs +++ b/src/mir/builder/utils.rs @@ -218,6 +218,13 @@ impl super::MirBuilder { if super::utils::builder_debug_enabled() || std::env::var("NYASH_PIN_TRACE").ok().as_deref() == Some("1") { super::utils::builder_debug_log(&format!("pin slot={} src={} dst={}", slot_name, v.0, dst.0)); } + // Propagate lightweight metadata so downstream resolution/type inference remains stable + if let Some(t) = self.value_types.get(&v).cloned() { + self.value_types.insert(dst, t); + } + if let Some(cls) = self.value_origin_newbox.get(&v).cloned() { + self.value_origin_newbox.insert(dst, cls); + } self.variable_map.insert(slot_name, dst); Ok(dst) }