Source file test/fixedbugs/issue21709.go

     1  // errorcheck -0 -l -m
     2  
     3  // Copyright 2017 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  // Issue 21709: range expression overly escapes.
     8  
     9  package p
    10  
    11  type S struct{}
    12  
    13  func (s *S) Inc() {} // ERROR "s does not escape"
    14  var N int
    15  
    16  func F1() {
    17  	var s S
    18  	for i := 0; i < N; i++ {
    19  		fs := []func(){ // ERROR "\[\]func\(\){...} does not escape"
    20  			s.Inc, // ERROR "s.Inc does not escape"
    21  		}
    22  		for _, f := range fs {
    23  			f()
    24  		}
    25  	}
    26  }
    27  
    28  func F2() {
    29  	var s S
    30  	for i := 0; i < N; i++ {
    31  		for _, f := range []func(){ // ERROR "\[\]func\(\){...} does not escape"
    32  			s.Inc, // ERROR "s.Inc does not escape"
    33  		} {
    34  			f()
    35  		}
    36  	}
    37  }
    38  

View as plain text