`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.
15 lines
525 B
Plaintext
15 lines
525 B
Plaintext
// `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 :: () { }
|