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
9package p
10
11type T int
12
13func (t *T) F() T {
14	return *t
15}
16
17type S struct {
18	t T
19}
20
21func 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