E3026

E3026 — A placement query (.topology()) the checker cannot decide. Placement is a fact of the receiver's type, compared with Some(Topology::..) or None; it has no run-time value.

What the compiler reports

E3026{{.*}}compare `.topology()` with `Some(Topology::..)` or `None`

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

//
// `x.topology()` is a fact of x's type, decided by the checker inside `== Some(Topology::..)`
// or `!= None`. Bound to a name it would need a run-time value, and nothing holds one.

fn main() -> i32 {
  let g = spawn on(Topology::GPU) {
    1
  };
  let where_is_it = g.topology();
  return 0;
}

From tests/frontend/fail/placement_query_needs_a_comparison.vx, which asserts this diagnostic on every commit.

Related