| // Copyright 2013 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. | |
| package testdata | |
| func F() {} | |
| type T struct { | |
| F func() | |
| } | |
| func (T) M() {} | |
| var Fv = F | |
| func Comparison() { | |
| var t T | |
| var fn func() | |
| if fn == nil || Fv == nil || t.F == nil { | |
| // no error; these func vars or fields may be nil | |
| } | |
| if F == nil { // ERROR "comparison of function F == nil is always false" | |
| panic("can't happen") | |
| } | |
| if t.M == nil { // ERROR "comparison of function M == nil is always false" | |
| panic("can't happen") | |
| } | |
| if F != nil { // ERROR "comparison of function F != nil is always true" | |
| if t.M != nil { // ERROR "comparison of function M != nil is always true" | |
| return | |
| } | |
| } | |
| panic("can't happen") | |
| } |