diff options
author | Russ Cox <rsc@golang.org> | 2014-05-27 21:53:39 -0700 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@golang.org> | 2014-05-27 21:53:39 -0700 |
commit | d432238fadd10fa514a04975dfe85719b5b8f377 (patch) | |
tree | ac46aa9828c317dcb98ed94507ca3411a3025c94 | |
parent | b5caa02067e0e0d2bde9290004b15e9a226c6075 (diff) | |
download | go-d432238fadd10fa514a04975dfe85719b5b8f377.tar.gz go-d432238fadd10fa514a04975dfe85719b5b8f377.zip |
test: expand issue7863 test
This was sitting in my client but I forgot hg add.
LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/101800045
-rw-r--r-- | test/fixedbugs/issue7863.go | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/test/fixedbugs/issue7863.go b/test/fixedbugs/issue7863.go index 796db6a98f..97f2255350 100644 --- a/test/fixedbugs/issue7863.go +++ b/test/fixedbugs/issue7863.go @@ -6,12 +6,55 @@ package main -import "time" +import ( + "fmt" +) + +type Foo int64 + +func (f *Foo) F() int64 { + return int64(*f) +} + +type Bar int64 + +func (b Bar) F() int64 { + return int64(b) +} + +type Baz int32 + +func (b Baz) F() int64 { + return int64(b) +} func main() { - now := time.Now() - f := now.Unix - if now.Unix() != f() { - println("BUG: ", now.Unix(), "!=", f()) + foo := Foo(123) + f := foo.F + if foo.F() != f() { + bug() + fmt.Println("foo.F", foo.F(), f()) + } + bar := Bar(123) + f = bar.F + if bar.F() != f() { + bug() + fmt.Println("bar.F", bar.F(), f()) // duh! + } + + baz := Baz(123) + f = baz.F + if baz.F() != f() { + bug() + fmt.Println("baz.F", baz.F(), f()) + } +} + +var bugged bool + +func bug() { + if !bugged { + bugged = true + fmt.Println("BUG") } } |