code wiki / (root) / nx_probe_lone_operator.nx

nx_probe_lone_operator.nx

buildroot/runtime/nx_probe_lone_operator.nx

1549 B26 linesdepth 0pulls 0 transitivereach 0 importersview sourcekind probetopic probe
docsdependenciesstructsconstsfunctions

about

nx_probe_lone_operator.nx -- MUST-REFUSE WITNESS for spec clause LS-SYN-030 (discarded pure expressions), and the fixture that clause NEEDS now that LN15 exists. WHY IT WAS WRITTEN, 2026-08-25. LS-SYN-030 says an expression statement that computes a value with no side effect and never uses it is REFUSED rather than silently discarded. That clause is still exactly true. Its old witness was nx_probe_mlneg_live.nx -- `let c = a` then a line opening with `- b` -- which stopped exercising the clause the moment LN15 shipped, because that line now JOINS the expression above it and the program is simply correct. The clause did not change; its fixture stopped reaching the condition, which is the quietest way for a conformance case to go vacuous: it keeps passing for a while and then keeps failing, and neither state is about the rule. THIS fixture cannot be joined to anything. The `- a` is the FIRST statement of its block, so there is no expression above it to continue; it can only reach parse_stmt_expr_fallback, compute a value and throw it away. That is the discarded-pure-expression class in its irreducible form. EXPECT: COMPILE-FAIL, exit 2, with 'computes a value and never uses it'. If this ever BUILDS, the discarded-pure-expression refusal has been lost -- and unlike the two multi-line witnesses, there is no benign reading of that: nothing here could have become correct instead.

dependencies 0 imports · 0 importers

imports: none

imported by: nobody (leaf or entry point)

structs

none

consts

none

functions

20func main(argc: i64, argv: *u8) -> i64