✓
Passing Passing: the compiler rejects this program as expected.
Code
// Pins: `@`-prefixed entries are compiler marks — the internal pass-to-pass
// channel. They ride the AST on `marks` fields that surface syntax cannot
// reach; a user spelling one asserts pass-produced state. PARSE012 refuses
// at the binding-annotation position.
use = loop(3)
| each _[@scope] |> x
| done |> x
Actual compiler output
error[PARSE012]: '@scope' is a compiler mark — `@` annotations are produced by compiler passes, not written in source.
--> tests/regression/100_PARSER/100_091_compiler_mark_spelled_in_source_refused/input.k:6:2
|
6 | | each _[@scope] |> x
| ^Frontend must reject with:
CONTAINS compiler markTest Configuration
MUST_ERROR