
Pin 與 Tokio真正不能移動的是什么Pin 常被誤解為“對象地址永遠不變”。它約束的是通過特定指針訪問的值不能再被安全移動前提是該類型確實依賴地址穩定性。從自引用風險理解普通 async 狀態機可能在不同掛起點保存對自身字段的引用。編譯器生成的 Future 因而通常是 !Unpin執行器在輪詢前把它固定再通過 Pinmut T 調用 poll。Pin 本身不讓堆分配失效也不替代生命周期檢查。手寫投影時必須確認哪些字段可安全移動、哪些字段被固定。優先使用成熟投影工具確實需要 Unsafe 時把不變量寫在實現旁邊。怎樣驗證示例準備一個會多次 Pending 的最小 Future檢查取消、超時和 Drop。不要用一次“成功打印”證明 Pin 正確應審查是否存在 mem::replace、錯誤投影或在固定后取走字段。理解移動邊界比記住一組 API 更可靠。