You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .cursor/skills/finding-ion-bugs/references/bug-hotspots.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ CLI errors use `TypeCheckError` Debug form (`UseAfterMove { ... }`). LSP reforma
13
13
## Codegen (`src/cgen/`)
14
14
15
15
- Drop order and `ion_drop_*` for moved fields
16
-
-**Return unwind**: statement `return` uses `scope_emit_return_unwind` in `generate_stmt` (`if`/`while`/`loop`/statement `match`/`unsafe`). Rvalue `match` diverging arms use `emit_match_arm_result_from_stmts`, which emits bare C `return` without unwind; tc only (`test_match_arm_divergent_rvalue.ion`). Open: owned bindings live at a diverging rvalue arm may leak; unconfirmed.
16
+
-**Return unwind**: statement `return` uses `scope_emit_return_unwind` in `generate_stmt` (`if`/`while`/`loop`/statement `match`/`unsafe`). Rvalue `match` diverging arms use `emit_match_arm_result_from_stmts`, which emits bare C `return` without unwind; confirmed by `rvalue_match_divergent_return_omits_owned_unwind` (tc rejects the shape in `test_match_arm_divergent_rvalue.ion`).
17
17
-`Box`, `Vec`, `String` layout vs `runtime/ion_runtime.h`
18
18
- Single-file merge (`merge_modules`) vs `--mode multi` divergences
19
19
-`extern "C"` calls only inside `unsafe` blocks in source; cgen must not strip guards
0 commit comments