����
One Hat Cyber Team
One Hat Cyber Team
Your IP :
3.16.215.186
Server IP :
104.21.96.1
Server :
Linux in-mum-web1337.main-hosting.eu 4.18.0-553.34.1.lve.el8.x86_64 #1 SMP Thu Jan 9 16:30:32 UTC 2025 x86_64
Server Software :
LiteSpeed
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
opt
/
golang
/
1.19.4
/
test
/
fixedbugs
/
View File Name :
bug286.go
// run // 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() */