- statements[line_no] = .{ .content = line.items[(i + 1)..] };
+ statements[line_no] = .{ .content = try allocator.dupe(u8, line.items[(i + 1)..]) };
ну и не забыть очистить потом память
проблема в использовании одного и того же ArrayList в качестве буфера, да ещё и с очисткой после каждой итерации; понятное дело, что указатель будет не валидный после выходы из цикла