2012-12-03 19:49:14 -07:00
|
|
|
// errorcheck
|
|
|
|
|
2016-04-10 15:32:26 -06:00
|
|
|
// Copyright 2012 The Go Authors. All rights reserved.
|
2012-12-03 19:49:14 -07:00
|
|
|
// 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
|
|
|
|
|
2012-12-05 21:32:12 -07:00
|
|
|
type T int
|
|
|
|
|
|
|
|
func (t *T) F() T {
|
|
|
|
return *t
|
|
|
|
}
|
|
|
|
|
|
|
|
type S struct {
|
|
|
|
t T
|
|
|
|
}
|
|
|
|
|
2012-12-03 19:49:14 -07:00
|
|
|
func F() {
|
2015-11-18 12:24:48 -07:00
|
|
|
go F // ERROR "must be function call"
|
|
|
|
defer F // ERROR "must be function call"
|
|
|
|
go (F) // ERROR "must be function call|must not be parenthesized"
|
|
|
|
defer (F) // ERROR "must be function call|must not be parenthesized"
|
|
|
|
go (F()) // ERROR "must be function call|must not be parenthesized"
|
|
|
|
defer (F()) // ERROR "must be function call|must not be parenthesized"
|
2012-12-05 21:32:12 -07:00
|
|
|
var s S
|
|
|
|
(&s.t).F()
|
|
|
|
go (&s.t).F()
|
|
|
|
defer (&s.t).F()
|
2012-12-03 19:49:14 -07:00
|
|
|
}
|