agra
d99c0fdb2b
ffi M5.A.next.4A.bare.4.B: tryLowerReflectionCall splits static vs dynamic
...
Fix for the silent .s64 fall-through in `type_name(<dynamic-arg>)`.
`tryLowerReflectionCall` now splits on `isStaticTypeArg(node)`:
- Static (type_expr / identifier / pack_index_type_expr / pointer
/ array / slice / optional / many_pointer / function_type_expr
/ tuple_literal / call) → fold to const_string at lower time
(today's fast path).
- Dynamic (index_expr, field_access, runtime locals, anything
else) → emit `callBuiltin(.type_name, [arg_ref])`. The interp's
arm (commit 9600ba5 ) reads the runtime `.type_tag` Value and
returns the per-position name.
`isStaticTypeArg(node)` is a new helper mirroring the explicit
arms of `resolveTypeArg`. Lives alongside resolveTypeArg in
lower.zig; documented to track shape changes together.
emit_llvm: the comptime reflection builtins (`type_name`,
`type_eq`, `has_impl`) now emit a silent undef-i64 placeholder.
Same reasoning as 4A.bare.1.B's relaxation of const_type's
emit_llvm arm: the JIT compiles the containing fn module-wide
even if main never calls it, so emit-time noise here is just
dead-from-main's-perspective code. Real misuse — passing a non-
Type value to one of these — is caught by the interp arm's
`asTypeId orelse bailDetail`.
`examples/171-pack-dynamic-type-name.sx` flips from "s64s64"
(silent .s64 fold per element) to "s64string" (per-position
correct via interp arm). Test runs `walk(42, "hi")` at `#run`
time so the dynamic path executes in the interp.
211/211 example tests + zig build test green.
2026-05-27 19:19:32 +03:00
..
2026-05-24 22:59:20 +03:00
2026-05-24 22:59:20 +03:00
2026-03-06 10:46:28 +02:00
2026-02-09 18:07:41 +02:00
2026-02-09 18:07:41 +02:00
2026-02-14 13:17:22 +02:00
2026-02-09 18:07:41 +02:00
2026-02-09 18:07:41 +02:00
2026-02-09 18:07:41 +02:00
2026-02-09 18:07:41 +02:00
2026-02-09 18:07:41 +02:00
2026-02-24 15:10:02 +02:00
2026-05-24 22:59:20 +03:00
2026-02-24 17:37:52 +02:00
2026-02-24 15:10:02 +02:00
2026-02-11 14:22:25 +02:00
2026-02-09 18:07:41 +02:00
2026-02-24 17:37:52 +02:00
2026-02-14 13:17:22 +02:00
2026-02-09 18:07:41 +02:00
2026-02-11 13:03:04 +02:00
2026-02-17 16:57:12 +02:00
2026-02-17 16:57:12 +02:00
2026-02-14 14:52:39 +02:00
2026-02-24 17:37:52 +02:00
2026-02-16 01:13:34 +02:00
2026-02-24 06:20:38 +02:00
2026-02-11 01:05:21 +02:00
2026-02-22 22:16:30 +02:00
2026-02-11 20:41:43 +02:00
2026-02-26 02:25:02 +02:00
2026-02-12 12:27:35 +02:00
2026-02-14 13:17:22 +02:00
2026-02-14 14:52:39 +02:00
2026-05-24 22:59:20 +03:00
2026-02-22 22:16:30 +02:00
2026-02-22 17:24:04 +02:00
2026-02-22 17:24:04 +02:00
2026-02-22 17:24:04 +02:00
2026-02-24 17:37:52 +02:00
2026-02-25 15:51:22 +02:00
2026-03-02 21:00:55 +02:00
2026-05-25 15:33:28 +03:00
2026-03-04 17:12:56 +02:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-25 08:41:50 +03:00
2026-05-25 08:41:50 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 13:19:08 +03:00
2026-05-17 17:46:17 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-24 22:59:20 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-17 19:36:37 +03:00
2026-05-18 00:11:23 +03:00
2026-05-18 00:11:23 +03:00
2026-05-18 00:11:23 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-19 12:06:08 +03:00
2026-05-19 12:06:08 +03:00
2026-05-25 08:41:50 +03:00
2026-05-25 08:41:50 +03:00
2026-05-27 00:34:26 +03:00
2026-05-25 08:41:50 +03:00
2026-05-18 18:32:55 +03:00
2026-05-24 22:59:20 +03:00
2026-05-19 00:22:35 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 19:18:31 +03:00
2026-05-19 21:14:31 +03:00
2026-05-22 19:03:31 +03:00
2026-05-22 19:03:31 +03:00
2026-05-22 19:03:31 +03:00
2026-05-22 19:03:31 +03:00
2026-05-22 19:03:31 +03:00
2026-05-22 19:03:31 +03:00
2026-05-22 19:03:31 +03:00
2026-05-22 19:03:31 +03:00
2026-05-22 19:03:31 +03:00
2026-05-23 01:28:32 +03:00
2026-05-24 22:59:20 +03:00
2026-05-25 15:33:28 +03:00
2026-05-24 22:59:20 +03:00
2026-05-24 22:59:20 +03:00
2026-05-24 22:59:20 +03:00
2026-05-25 15:23:13 +03:00
2026-05-25 09:50:37 +03:00
2026-05-25 11:41:59 +03:00
2026-05-25 12:18:27 +03:00
2026-05-25 15:01:58 +03:00
2026-05-25 15:33:28 +03:00
2026-05-25 15:45:33 +03:00
2026-05-25 15:59:32 +03:00
2026-05-25 17:52:53 +03:00
2026-05-25 21:15:44 +03:00
2026-05-25 21:16:32 +03:00
2026-05-25 21:33:20 +03:00
2026-05-25 22:08:23 +03:00
2026-05-25 22:14:31 +03:00
2026-05-25 22:23:59 +03:00
2026-05-25 22:58:20 +03:00
2026-05-25 23:17:30 +03:00
2026-05-25 23:25:13 +03:00
2026-05-25 23:33:52 +03:00
2026-05-25 23:40:51 +03:00
2026-05-25 23:43:46 +03:00
2026-05-27 09:49:41 +03:00
2026-05-26 01:45:21 +03:00
2026-05-26 01:49:31 +03:00
2026-05-26 01:56:25 +03:00
2026-05-27 12:09:04 +03:00
2026-05-27 12:50:23 +03:00
2026-05-27 13:49:44 +03:00
2026-05-27 14:52:43 +03:00
2026-05-27 15:44:05 +03:00
2026-05-27 16:22:49 +03:00
2026-05-27 16:34:26 +03:00
2026-05-27 16:34:26 +03:00
2026-05-27 16:38:01 +03:00
2026-05-27 16:38:01 +03:00
2026-05-27 16:43:04 +03:00
2026-05-27 17:20:37 +03:00
2026-05-27 17:23:47 +03:00
2026-05-27 17:26:27 +03:00
2026-05-27 17:48:39 +03:00
2026-05-27 18:52:41 +03:00
2026-05-27 19:05:16 +03:00
2026-05-27 19:19:32 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-19 11:54:36 +03:00
2026-05-25 09:50:37 +03:00
2026-05-19 11:51:34 +03:00
2026-05-19 11:57:44 +03:00
2026-05-19 11:57:44 +03:00
2026-05-19 12:01:01 +03:00
2026-05-19 11:59:18 +03:00
2026-05-19 11:59:18 +03:00
2026-05-19 11:59:18 +03:00
2026-05-22 13:13:43 +03:00
2026-05-22 13:13:43 +03:00
2026-05-20 13:53:25 +03:00
2026-05-20 15:13:33 +03:00
2026-05-20 13:53:25 +03:00
2026-05-20 13:53:25 +03:00
2026-05-20 13:53:25 +03:00
2026-05-20 13:53:25 +03:00
2026-05-20 13:53:25 +03:00
2026-05-20 13:53:25 +03:00
2026-05-20 13:53:25 +03:00
2026-05-23 01:28:32 +03:00
2026-05-23 01:28:32 +03:00
2026-05-20 12:46:40 +03:00
2026-05-20 12:46:40 +03:00
2026-05-25 16:32:32 +03:00
2026-05-20 12:46:40 +03:00
2026-05-20 12:46:40 +03:00
2026-05-20 12:46:40 +03:00
2026-05-20 12:46:40 +03:00
2026-05-20 12:46:40 +03:00
2026-05-23 01:28:32 +03:00
2026-05-20 10:32:56 +03:00
2026-05-20 10:47:07 +03:00
2026-05-20 12:51:48 +03:00
2026-05-20 14:50:21 +03:00
2026-05-20 16:57:30 +03:00
2026-05-25 16:32:32 +03:00
2026-05-26 22:46:56 +03:00
2026-05-26 22:46:56 +03:00
2026-05-26 22:38:32 +03:00
2026-05-26 22:58:30 +03:00
2026-05-26 22:58:30 +03:00
2026-05-19 12:40:21 +03:00
2026-05-19 12:48:38 +03:00
2026-05-19 13:01:28 +03:00
2026-05-19 18:39:10 +03:00
2026-05-19 18:44:14 +03:00
2026-05-19 18:50:26 +03:00
2026-05-19 18:51:56 +03:00
2026-05-19 18:53:19 +03:00
2026-05-19 21:14:31 +03:00
2026-05-20 15:13:33 +03:00
2026-05-19 20:12:09 +03:00
2026-05-19 21:19:09 +03:00
2026-05-25 23:29:55 +03:00
2026-05-25 16:07:19 +03:00
2026-05-25 16:07:19 +03:00
2026-05-25 16:07:19 +03:00
2026-05-25 16:07:19 +03:00
2026-05-25 16:32:32 +03:00
2026-05-25 16:55:32 +03:00
2026-05-25 17:03:16 +03:00
2026-05-17 21:17:17 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-18 17:40:10 +03:00
2026-05-24 22:59:20 +03:00
2026-05-24 22:59:20 +03:00
2026-05-26 16:42:21 +03:00
2026-05-27 13:19:49 +03:00
2026-05-27 16:56:25 +03:00