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

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