// A by-reference loop capture (`for xs: (*m)`) binds `m` to a `*T`. // Passing it where a `T` value is expected used to slip through to the // LLVM verifier ("Call parameter type does not match function signature"). // The compiler now reports it at the call site with a fix-it: write `m.*`. #import "modules/std.sx"; Move :: struct { flag: s64; } take :: (m: Move) -> s64 { return m.flag; } main :: () -> s32 { moves : [2]Move = .[ Move.{ flag = 1 }, Move.{ flag = 2 } ]; for moves: (*m) { take(m); } return 0; }