summaryrefslogtreecommitdiff
path: root/test/ken/embed.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/ken/embed.go')
-rw-r--r--test/ken/embed.go317
1 files changed, 0 insertions, 317 deletions
diff --git a/test/ken/embed.go b/test/ken/embed.go
deleted file mode 100644
index 9805e479b..000000000
--- a/test/ken/embed.go
+++ /dev/null
@@ -1,317 +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 I interface {
- test1() int
- test2() int
- test3() int
- test4() int
- test5() int
- test6() int
- test7() int
-}
-
-/******
- ******
- ******/
-
-type SubpSubp struct {
- a7 int
- a int
-}
-
-func (p *SubpSubp) test7() int {
- if p.a != p.a7 {
- println("SubpSubp", p, p.a7)
- panic("fail")
- }
- return p.a
-}
-func (p *SubpSubp) testx() { println("SubpSubp", p, p.a7) }
-
-/******
- ******
- ******/
-
-type SubpSub struct {
- a6 int
- SubpSubp
- a int
-}
-
-func (p *SubpSub) test6() int {
- if p.a != p.a6 {
- println("SubpSub", p, p.a6)
- panic("fail")
- }
- return p.a
-}
-func (p *SubpSub) testx() { println("SubpSub", p, p.a6) }
-
-/******
- ******
- ******/
-
-type SubSubp struct {
- a5 int
- a int
-}
-
-func (p *SubSubp) test5() int {
- if p.a != p.a5 {
- println("SubpSub", p, p.a5)
- panic("fail")
- }
- return p.a
-}
-
-/******
- ******
- ******/
-
-type SubSub struct {
- a4 int
- a int
-}
-
-func (p *SubSub) test4() int {
- if p.a != p.a4 {
- println("SubpSub", p, p.a4)
- panic("fail")
- }
- return p.a
-}
-
-/******
- ******
- ******/
-
-type Subp struct {
- a3 int
- *SubpSubp
- SubpSub
- a int
-}
-
-func (p *Subp) test3() int {
- if p.a != p.a3 {
- println("SubpSub", p, p.a3)
- panic("fail")
- }
- return p.a
-}
-
-/******
- ******
- ******/
-
-type Sub struct {
- a2 int
- *SubSubp
- SubSub
- a int
-}
-
-func (p *Sub) test2() int {
- if p.a != p.a2 {
- println("SubpSub", p, p.a2)
- panic("fail")
- }
- return p.a
-}
-
-/******
- ******
- ******/
-
-type S struct {
- a1 int
- Sub
- *Subp
- a int
-}
-
-func (p *S) test1() int {
- if p.a != p.a1 {
- println("SubpSub", p, p.a1)
- panic("fail")
- }
- return p.a
-}
-
-/******
- ******
- ******/
-
-func main() {
- var i I
- var s *S
-
- // allocate
- s = new(S)
- s.Subp = new(Subp)
- s.Sub.SubSubp = new(SubSubp)
- s.Subp.SubpSubp = new(SubpSubp)
-
- // explicit assignment
- s.a = 1
- s.Sub.a = 2
- s.Subp.a = 3
- s.Sub.SubSub.a = 4
- s.Sub.SubSubp.a = 5
- s.Subp.SubpSub.a = 6
- s.Subp.SubpSubp.a = 7
-
- // embedded (unique) assignment
- s.a1 = 1
- s.a2 = 2
- s.a3 = 3
- s.a4 = 4
- s.a5 = 5
- s.a6 = 6
- s.a7 = 7
-
- // unique calls with explicit &
- if s.test1() != 1 {
- println("t1", 1)
- panic("fail")
- }
- if (&s.Sub).test2() != 2 {
- println("t1", 2)
- panic("fail")
- }
- if s.Subp.test3() != 3 {
- println("t1", 3)
- panic("fail")
- }
- if (&s.Sub.SubSub).test4() != 4 {
- println("t1", 4)
- panic("fail")
- }
- if s.Sub.SubSubp.test5() != 5 {
- println("t1", 5)
- panic("fail")
- }
- if (&s.Subp.SubpSub).test6() != 6 {
- println("t1", 6)
- panic("fail")
- }
- if s.Subp.SubpSubp.test7() != 7 {
- println("t1", 7)
- panic("fail")
- }
-
- // automatic &
- if s.Sub.test2() != 2 {
- println("t2", 2)
- panic("fail")
- }
- if s.Sub.SubSub.test4() != 4 {
- println("t2", 4)
- panic("fail")
- }
- if s.Subp.SubpSub.test6() != 6 {
- println("t2", 6)
- panic("fail")
- }
-
- // embedded calls
- if s.test1() != s.a1 {
- println("t3", 1)
- panic("fail")
- }
- if s.test2() != s.a2 {
- println("t3", 2)
- panic("fail")
- }
- if s.test3() != s.a3 {
- println("t3", 3)
- panic("fail")
- }
- if s.test4() != s.a4 {
- println("t3", 4)
- panic("fail")
- }
- if s.test5() != s.a5 {
- println("t3", 5)
- panic("fail")
- }
- if s.test6() != s.a6 {
- println("t3", 6)
- panic("fail")
- }
- if s.test7() != s.a7 {
- println("t3", 7)
- panic("fail")
- }
-
- // run it thru an interface
- i = s
- s = i.(*S)
-
- // same as t3
- if s.test1() != s.a1 {
- println("t4", 1)
- panic("fail")
- }
- if s.test2() != s.a2 {
- println("t4", 2)
- panic("fail")
- }
- if s.test3() != s.a3 {
- println("t4", 3)
- panic("fail")
- }
- if s.test4() != s.a4 {
- println("t4", 4)
- panic("fail")
- }
- if s.test5() != s.a5 {
- println("t4", 5)
- panic("fail")
- }
- if s.test6() != s.a6 {
- println("t4", 6)
- panic("fail")
- }
- if s.test7() != s.a7 {
- println("t4", 7)
- panic("fail")
- }
-
- // call interface
- if i.test1() != s.test1() {
- println("t5", 1)
- panic("fail")
- }
- if i.test2() != s.test2() {
- println("t5", 2)
- panic("fail")
- }
- if i.test3() != s.test3() {
- println("t5", 3)
- panic("fail")
- }
- if i.test4() != s.test4() {
- println("t5", 4)
- panic("fail")
- }
- if i.test5() != s.test5() {
- println("t5", 5)
- panic("fail")
- }
- if i.test6() != s.test6() {
- println("t5", 6)
- panic("fail")
- }
- if i.test7() != s.test7() {
- println("t5", 7)
- panic("fail")
- }
-}