E6017

E6017 — A misuse of the raw:: transfer-lowering primitives (Vx#353): a raw:: call outside an impl transfer body, an unknown primitive name, a tile argument that is not a bare parameter name (the primitives are indexed, not addressed), a store into a tile not held by &mut, or a wrongly typed index/value.

What the compiler reports

E6017
only legal inside

The fragments the test suite holds the compiler to. An ellipsis marks text the test does not constrain; the emitted message also carries a source location.

A program that triggers it

// The floor property: the raw:: primitives exist only inside `impl transfer`
// bodies. Anywhere else the name is reserved and refused, not "undefined".
fn main() -> i32 {
  let n = raw::lanes();
  return 0;
}

From tests/middle_end/fail/raw_outside_lowering.vx, which asserts this diagnostic on every commit.

Related