// errorcheck -0 -l -m | |
// Copyright 2017 The Go Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style | |
// license that can be found in the LICENSE file. | |
// Issue 21709: range expression overly escapes. | |
package p | |
type S struct{} | |
func (s *S) Inc() {} // ERROR "s does not escape" | |
var N int | |
func F1() { | |
var s S | |
for i := 0; i < N; i++ { | |
fs := []func(){ // ERROR "\[\]func\(\){...} does not escape" | |
s.Inc, // ERROR "s.Inc does not escape" | |
} | |
for _, f := range fs { | |
f() | |
} | |
} | |
} | |
func F2() { | |
var s S | |
for i := 0; i < N; i++ { | |
for _, f := range []func(){ // ERROR "\[\]func\(\){...} does not escape" | |
s.Inc, // ERROR "s.Inc does not escape" | |
} { | |
f() | |
} | |
} | |
} |