test(ffi-linkage): Phase 5.0 prereq — xfail extern undeclared-library ref unvalidated

An `extern LIB "csym"` ref must name a declared #library / #import c unit,
like its `#foreign LIB` twin (example 1620). Today checkForeignRefs reads
only foreign_expr.library_ref and skips the extern keyword's extern_lib, so
a bogus `extern nosuchunit "abs"` compiles silently (the symbol resolves
via the default image and runs). Expected pins the DESIRED compile-time
diagnostic; the next commit extends checkForeignRefs to green it. Fourth
extern/#foreign divergence and a prerequisite for the fn-decl migration.

647 corpus (1231 xfail), 444 unit.
This commit is contained in:
agra
2026-06-15 03:53:03 +03:00
parent 3c94c14b5e
commit 38c32400f5
4 changed files with 25 additions and 0 deletions

View File

@@ -0,0 +1 @@
1

View File

@@ -0,0 +1,5 @@
error: extern library 'nosuchunit' is not declared; expected a #library constant or a named '#import c' unit
--> examples/1231-ffi-extern-undeclared-lib.sx:14:1
|
14 | c_abs :: (n: i32) -> i32 extern nosuchunit "abs";
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^