Test loopclosure at go version go1.22.

The go1.19 build tag is necessary to force the file version.

-- go.mod --
module golang.org/fake/versions

go 1.22
-- pre.go --
//go:build go1.19

package versions

func Bad(l []int) {
  for i, v := range l {
    go func() {
      print(i) // want "loop variable i captured by func literal"
      print(v) // want "loop variable v captured by func literal"
    }()
  }
}
-- go22.go --
//go:build go1.22

package versions

func InGo22(l []int) {
	for i, v := range l {
		go func() {
			print(i) // Not reported due to file's GoVersion.
			print(v) // Not reported due to file's GoVersion.
		}()
	}
}

-- modver.go --
package versions

func At22FromTheModuleVersion(l []int) {
	for i, v := range l {
		go func() {
			print(i) // Not reported due to module's GoVersion.
			print(v) // Not reported due to module's GoVersion.
		}()
	}
}
