For-Loop Semantic Changes in Go 1.22: Be Aware of the Impact

  • It's about time they finally acknowledge this as a design bug and make the incompatible fix. In pre-1.22 correct programs, the `i, v := i, v` will mostly already be present and become pointless upon upgrading. Libraries supporting pre-1.22 will still have to write this extra line.

    Now we have a new foot-gun, moving working code from a 1.22+ program to a pre-1.22 supporting library can be bugged.

  • Would it be accurate to say that the variable values are fresh per iteration as of 1.22 and fresh only per initialization prior? I was looking for a falsification of that description in the text.

  • This looks like the kind of subtle change that will lead to unexpected security issues.