golang.org/x/tools@v0.21.0/go/analysis/passes/loopclosure/testdata/src/versions/go22.txtar (about)

     1  Test loopclosure at go version go1.22.
     2  
     3  The go1.19 build tag is necessary to force the file version.
     4  
     5  -- go.mod --
     6  module golang.org/fake/versions
     7  
     8  go 1.22
     9  -- pre.go --
    10  //go:build go1.19
    11  
    12  package versions
    13  
    14  func Bad(l []int) {
    15    for i, v := range l {
    16      go func() {
    17        print(i) // want "loop variable i captured by func literal"
    18        print(v) // want "loop variable v captured by func literal"
    19      }()
    20    }
    21  }
    22  -- go22.go --
    23  //go:build go1.22
    24  
    25  package versions
    26  
    27  func InGo22(l []int) {
    28  	for i, v := range l {
    29  		go func() {
    30  			print(i) // Not reported due to file's GoVersion.
    31  			print(v) // Not reported due to file's GoVersion.
    32  		}()
    33  	}
    34  }
    35  
    36  -- modver.go --
    37  package versions
    38  
    39  func At22FromTheModuleVersion(l []int) {
    40  	for i, v := range l {
    41  		go func() {
    42  			print(i) // Not reported due to module's GoVersion.
    43  			print(v) // Not reported due to module's GoVersion.
    44  		}()
    45  	}
    46  }