summaryrefslogtreecommitdiff
path: root/test/bugs/bug286.go
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-01-17 12:40:45 +0100
committerOndřej Surý <ondrej@sury.org>2011-01-17 12:40:45 +0100
commit3e45412327a2654a77944249962b3652e6142299 (patch)
treebc3bf69452afa055423cbe0c5cfa8ca357df6ccf /test/bugs/bug286.go
parentc533680039762cacbc37db8dc7eed074c3e497be (diff)
downloadgolang-upstream/2011.01.12.tar.gz
Imported Upstream version 2011.01.12upstream/2011.01.12
Diffstat (limited to 'test/bugs/bug286.go')
-rw-r--r--test/bugs/bug286.go94
1 files changed, 0 insertions, 94 deletions
diff --git a/test/bugs/bug286.go b/test/bugs/bug286.go
deleted file mode 100644
index 94423be81..000000000
--- a/test/bugs/bug286.go
+++ /dev/null
@@ -1,94 +0,0 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug286 failed
-
-// Copyright 2010 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.
-
-// Test case for issue 849.
-
-package main
-
-type I interface {
- f()
-}
-
-
-var callee string
-var error bool
-
-type T int
-
-func (t *T) f() { callee = "f" }
-func (i *T) g() { callee = "g" }
-
-
-// test1 and test2 are the same except that in the interface J
-// the entries are swapped. test2 and test3 are the same except
-// that in test3 the interface J is declared outside the function.
-//
-// Error: test2 calls g instead of f
-
-func test1(x I) {
- type J interface {
- I
- g()
- }
- x.(J).f()
- if callee != "f" {
- println("test1 called", callee)
- error = true
- }
-}
-
-
-func test2(x I) {
- type J interface {
- g()
- I
- }
- x.(J).f()
- if callee != "f" {
- println("test2 called", callee)
- error = true
- }
-}
-
-
-type J interface {
- g()
- I
-}
-
-func test3(x I) {
- x.(J).f()
- if callee != "f" {
- println("test3 called", callee)
- error = true
- }
-}
-
-func main() {
- x := new(T)
- test1(x)
- test2(x)
- test3(x)
- if error {
- panic("wrong method called")
- }
-}
-
-/*
-6g bug286.go && 6l bug286.6 && 6.out
-test2 called g
-panic: wrong method called
-
-panic PC=0x24e040
-runtime.panic+0x7c /home/gri/go1/src/pkg/runtime/proc.c:1012
- runtime.panic(0x0, 0x24e0a0)
-main.main+0xef /home/gri/go1/test/bugs/bug286.go:76
- main.main()
-mainstart+0xf /home/gri/go1/src/pkg/runtime/amd64/asm.s:60
- mainstart()
-goexit /home/gri/go1/src/pkg/runtime/proc.c:145
- goexit()
-*/