test(C0.2): pin curated-bindings shape — #source-only unit + hand #foreign works (JIT+AOT), but the ref is decorative (xfail for C3.1)

This commit is contained in:
agra
2026-06-12 16:38:02 +03:00
parent 2808d5df82
commit 22455c706b
10 changed files with 43 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
// Pins the C3 gap (PLAN-C C0.2b): the `#foreign` library/unit ref is
// DECORATIVE today — `nosuchunit` names nothing anywhere, yet this
// compiles and the symbol resolves globally (the unit's objects are in
// the program; the ref is never consulted). After C3 this is a
// compile-time diagnostic: a #foreign ref must name a #library or a
// named `#import c` unit.
#import "modules/std.sx";
refs :: #import c {
#source "1620-cimport-foreign-ref-unvalidated/ref.c";
};
ref_answer :: () -> i32 #foreign nosuchunit "ref_answer";
main :: () -> i32 {
print("ref = {}\n", ref_answer());
0
}