// skip
// TODO(rsc): Reenable. See issue 9968.

// errorcheck

// Copyright 2012 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 4468: go/defer calls may not be parenthesized.

package p

type T int

func (t *T) F() T {
	return *t
}

type S struct {
	t T
}

func F() {
	go (F())	// ERROR "must be function call"
	defer (F())	// ERROR "must be function call"
	var s S
	(&s.t).F()
	go (&s.t).F()
	defer (&s.t).F()
}
