Home | History | Annotate | Download | only in fixedbugs
      1 // errorcheck
      2 
      3 // Copyright 2012 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 4468: go/defer calls may not be parenthesized.
      8 
      9 package p
     10 
     11 type T int
     12 
     13 func (t *T) F() T {
     14 	return *t
     15 }
     16 
     17 type S struct {
     18 	t T
     19 }
     20 
     21 func F() {
     22 	go F            // ERROR "must be function call"
     23 	defer F         // ERROR "must be function call"
     24 	go (F)		// ERROR "must be function call|must not be parenthesized"
     25 	defer (F)	// ERROR "must be function call|must not be parenthesized"
     26 	go (F())	// ERROR "must be function call|must not be parenthesized"
     27 	defer (F())	// ERROR "must be function call|must not be parenthesized"
     28 	var s S
     29 	(&s.t).F()
     30 	go (&s.t).F()
     31 	defer (&s.t).F()
     32 }
     33