2012-12-03 18:49:14 -08:00
|
|
|
// errorcheck
|
|
|
|
|
2016-04-10 14:32:26 -07:00
|
|
|
// Copyright 2012 The Go Authors. All rights reserved.
|
2012-12-03 18:49:14 -08: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 20:32:12 -08:00
|
|
|
type T int
|
|
|
|
|
|
|
|
func (t *T) F() T {
|
|
|
|
return *t
|
|
|
|
}
|
|
|
|
|
|
|
|
type S struct {
|
|
|
|
t T
|
|
|
|
}
|
|
|
|
|
2012-12-03 18:49:14 -08:00
|
|
|
func F() {
|
2015-11-18 11:24:48 -08: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 20:32:12 -08:00
|
|
|
var s S
|
|
|
|
(&s.t).F()
|
|
|
|
go (&s.t).F()
|
|
|
|
defer (&s.t).F()
|
2012-12-03 18:49:14 -08:00
|
|
|
}
|