aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-05-27 21:53:39 -0700
committerBrad Fitzpatrick <bradfitz@golang.org>2014-05-27 21:53:39 -0700
commitd432238fadd10fa514a04975dfe85719b5b8f377 (patch)
treeac46aa9828c317dcb98ed94507ca3411a3025c94
parentb5caa02067e0e0d2bde9290004b15e9a226c6075 (diff)
downloadgo-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.go53
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")
}
}