ffi M5.A.next.4B.A: compile_error intrinsic — expected-failing lock-in

`compile_error(msg)` raises a build-time diagnostic at the call site
with `msg` as the error text. The arg must be a string literal —
runtime expressions can't be reported as compile errors. Used by
builder fns to reject malformed pack shapes / arg combinations
cleanly instead of silently emitting wrong code.

Today: `unresolved 'compile_error'`. Expected (post-fix): focused
diagnostic with the literal message at the call site's span. The
next commit adds the lowering arm.
This commit is contained in:
agra
2026-05-28 12:17:49 +03:00
parent 280c12c630
commit 82f291e5af
3 changed files with 16 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
// `compile_error(msg)` raises a build-time diagnostic at the call
// site. Used by builder fns (e.g. `#insert build_block_convert(...)`)
// to reject malformed pack shapes with a clear message rather than
// silently producing wrong code.
//
// The diagnostic appears at the source position of the
// `compile_error` call. Argument must be a string literal — runtime
// expressions can't be reported as compile errors.
#import "modules/std.sx";
#run compile_error("intentional compile error from #run");
main :: () { }

View File

@@ -0,0 +1 @@
1

View File

@@ -0,0 +1 @@
/Users/agra/projects/sx/examples/187-compile-error.sx:12:6: error: intentional compile error from #run