Source file test/range2.go

     1  // errorcheck -goexperiment rangefunc
     2  
     3  // Copyright 2023 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  // See ../internal/types/testdata/spec/range.go for most tests.
     8  // The ones in this file cannot be expressed in that framework
     9  // due to conflicts between that framework's error location pickiness
    10  // and gofmt's comment location pickiness.
    11  
    12  package p
    13  
    14  type T struct{}
    15  
    16  func (*T) PM() {}
    17  func (T) M()   {}
    18  
    19  func test() {
    20  	for range T.M { // ERROR "cannot range over T.M \(value of type func\(T\)\): func must be func\(yield func\(...\) bool\): argument is not func"
    21  	}
    22  	for range (*T).PM { // ERROR "cannot range over \(\*T\).PM \(value of type func\(\*T\)\): func must be func\(yield func\(...\) bool\): argument is not func"
    23  	}
    24  }
    25  

View as plain text