Files
sx/examples/modules/0708-modules-xx-any-pack-cross-module/fmt.sx
agra 66bdc70bf1 test: group examples into per-category folders
Move examples/*.sx and their expected/ snapshots into per-category
subfolders (examples/<category>/...). Folder = leading filename token,
with ffi-objc/ffi-jni kept whole; filenames are unchanged. The corpus
runner and LSP sweep now discover each category's expected/ dir, while
issues/ stays flat. Example 1058's repo-root-relative companion import
is made file-relative. Path strings embedded in 164 snapshots were
regenerated (path-only changes). Test-layout docs in CLAUDE.md updated.
2026-06-21 14:41:34 +03:00

21 lines
764 B
Plaintext

// Companion module for issue-0057 regression. The bug: an `xx <int>` argument
// to a variadic `format` (a comptime `..$args` pack), inside a function that
// lives in an IMPORTED module, was mis-typed as the enclosing fn's
// `target_type` (here `string`) instead of auto-boxing to `Any` — so it
// monomorphized `__pack_string` and ABI-coerced the 4-byte int as a 16-byte
// string fat pointer, corrupting memory at runtime. Fixed by clearing
// `target_type` while lowering pack args.
#import "modules/std.sx";
build :: (n: i32) -> string {
result := "items:\n";
i : i32 = 0;
while i < n {
line := format(" item {}\n", xx i); // <-- the xx-to-Any pack arg
result = concat(result, line);
i = i + 1;
}
result
}