summaryrefslogtreecommitdiff
path: root/test/ken/interfun.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/ken/interfun.go')
-rw-r--r--test/ken/interfun.go57
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); }
-}