modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue8385.go (about)

     1  // errorcheck
     2  
     3  // Copyright 2014 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 8385: provide a more descriptive error when a method expression
     8  // is called without a receiver.
     9  
    10  package main
    11  
    12  type Fooer interface {
    13  	Foo(i, j int)
    14  }
    15  
    16  func f(x int) {
    17  }
    18  
    19  type I interface {
    20  	M(int)
    21  }
    22  type T struct{}
    23  
    24  func (t T) M(x int) {
    25  }
    26  
    27  func g() func(int)
    28  
    29  func main() {
    30  	Fooer.Foo(5, 6) // ERROR "not enough arguments in call to method expression Fooer.Foo"
    31  
    32  	var i I
    33  	var t *T
    34  
    35  	g()()    // ERROR "not enough arguments in call to g\(\)"
    36  	f()      // ERROR "not enough arguments in call to f"
    37  	i.M()    // ERROR "not enough arguments in call to i\.M"
    38  	I.M()    // ERROR "not enough arguments in call to method expression I\.M"
    39  	t.M()    // ERROR "not enough arguments in call to t\.M"
    40  	T.M()    // ERROR "not enough arguments in call to method expression T\.M"
    41  	(*T).M() // ERROR "not enough arguments in call to method expression \(\*T\)\.M"
    42  }