blob: d26725ec0130f318de657736b76d158027f196f9 [file] [log] [blame]
Ian Lance Taylor8990dc82012-12-03 18:49:14 -08001// errorcheck
2
Emmanuel Odeke53fd5222016-04-10 14:32:26 -07003// Copyright 2012 The Go Authors. All rights reserved.
Ian Lance Taylor8990dc82012-12-03 18:49:14 -08004// 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
Ian Lance Taylorb46d56a2012-12-05 20:32:12 -080011type T int
12
13func (t *T) F() T {
14 return *t
15}
16
17type S struct {
18 t T
19}
20
Ian Lance Taylor8990dc82012-12-03 18:49:14 -080021func F() {
Robert Griesemerfe762b62015-11-18 11:24:48 -080022 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"
Ian Lance Taylorb46d56a2012-12-05 20:32:12 -080028 var s S
29 (&s.t).F()
30 go (&s.t).F()
31 defer (&s.t).F()
Ian Lance Taylor8990dc82012-12-03 18:49:14 -080032}