summaryrefslogtreecommitdiff
path: root/test/fixedbugs
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-05-27 21:53:39 -0700
committerRuss Cox <rsc@golang.org>2014-05-27 21:53:39 -0700
commit6be9b23c26b00cd4fa5c3003a739c28b82f1f0c8 (patch)
tree2e151590f5205b32f0384b8981aaaec64fe85eac /test/fixedbugs
parent432e6ecdae4134538add8d381be0c316a4e2e356 (diff)
downloadgo-6be9b23c26b00cd4fa5c3003a739c28b82f1f0c8.tar.gz
test: expand issue7863 test
This was sitting in my client but I forgot hg add. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://codereview.appspot.com/101800045 Committer: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'test/fixedbugs')
-rw-r--r--test/fixedbugs/issue7863.go53
1 files changed, 48 insertions, 5 deletions
diff --git a/test/fixedbugs/issue7863.go b/test/fixedbugs/issue7863.go
index 796db6a98..97f225535 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")
}
}