| // 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. |
| 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 |
| println("test1 called", callee) |
| println("test2 called", callee) |
| println("test3 called", callee) |
| panic("wrong method called") |
| 6g bug286.go && 6l bug286.6 && 6.out |
| panic: wrong method called |
| 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 |
| mainstart+0xf /home/gri/go1/src/pkg/runtime/amd64/asm.s:60 |
| goexit /home/gri/go1/src/pkg/runtime/proc.c:145 |