ffi checkpoint: step 4 partial — .type_tag activated by the book
Logs the four 4.x slices (ac60d98 → fd03b58):
- 4.0 foundation: const_type opcode, asTypeId helper, cmp_eq
arm, Zig unit tests.
- 4.1 reflection arms: type_name/type_eq interp implementations
reading .type_tag values; has_impl bails (snapshot work pending).
- 4.2 audit + bitcast guard: box_any/unbox_any layout confirmed
correct, bitcast guards against .type_tag mis-coercion.
- 4.3 source construction: parser accepts $args[$i] in
expression position; lowering emits const_type with the
bound TypeId; resolveTypeArg + tryConstBoolCondition fold
through pack_arg_types.
End-to-end working: type_name($args[0]), inline-if type_eq
dispatch over $args[0] per-mono. Test count 209/209.
Remaining within step 4:
- 4B compile_error(fmt, args) intrinsic.
- 4A bare $args (whole pack as []Type) — step 5 needs this.
- has_impl interp-time wiring.
Step 5 (generic Into(Block) impl) needs only bare-$args from
the remaining list to be fully unblocked.