// 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: i64; } take :: (m: Move) -> i64 { return m.flag; } main :: () -> i32 { moves : [2]Move = .[ Move.{ flag = 1 }, Move.{ flag = 2 } ]; for moves (*m) { take(m); } return 0; }