validateForeignRefs walks the merged tree (libraries + named c units, nested namespaces included) and diagnoses any #foreign whose ref names neither — a typo'd ref previously compiled and resolved silently through whatever image carried the symbol. Decls synthesized from #include headers carry no ref and are exempt. Flips the C0.2b pin; zero collateral across the 608 other examples.
6 lines
302 B
Plaintext
6 lines
302 B
Plaintext
error: #foreign library 'nosuchunit' is not declared; expected a #library constant or a named '#import c' unit
|
|
--> examples/1620-cimport-foreign-ref-unvalidated.sx:12:1
|
|
|
|
|
12 | ref_answer :: () -> i32 #foreign nosuchunit "ref_answer";
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|