diff options
Diffstat (limited to 'test/ken/interfun.go')
-rw-r--r-- | test/ken/interfun.go | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/test/ken/interfun.go b/test/ken/interfun.go deleted file mode 100644 index 94bc7eaad..000000000 --- a/test/ken/interfun.go +++ /dev/null @@ -1,57 +0,0 @@ -// $G $D/$F.go && $L $F.$A && ./$A.out - -// Copyright 2009 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. - -package main - -type S struct { - a,b int; -} - -type I1 interface { - f ()int; -} - -type I2 interface { - g() int; - f() int; -} - -func (this *S) f()int { - return this.a; -} - -func (this *S) g()int { - return this.b; -} - -func -main() { - var i1 I1; - var i2 I2; - var g *S; - - s := new(S); - s.a = 5; - s.b = 6; - - // call structure - if s.f() != 5 { panic(11); } - if s.g() != 6 { panic(12); } - - i1 = s; // convert S to I1 - i2 = i1.(I2); // convert I1 to I2 - - // call interface - if i1.f() != 5 { panic(21); } - if i2.f() != 5 { panic(22); } - if i2.g() != 6 { panic(23); } - - g = i1.(*S); // convert I1 to S - if g != s { panic(31); } - - g = i2.(*S); // convert I2 to S - if g != s { panic(32); } -} |