summaryrefslogtreecommitdiff
path: root/test/interface/struct.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/interface/struct.go')
-rw-r--r--test/interface/struct.go156
1 files changed, 0 insertions, 156 deletions
diff --git a/test/interface/struct.go b/test/interface/struct.go
deleted file mode 100644
index 40b7f4f91..000000000
--- a/test/interface/struct.go
+++ /dev/null
@@ -1,156 +0,0 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG interface6
-
-// 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.
-
-// Interface values containing structures.
-
-package main
-
-import "os"
-
-var fail int
-
-func check(b bool, msg string) {
- if (!b) {
- println("failure in", msg)
- fail++
- }
-}
-
-type I1 interface { Get() int; Put(int) }
-
-type S1 struct { i int }
-func (p S1) Get() int { return p.i }
-func (p S1) Put(i int) { p.i = i }
-
-func f1() {
- s := S1{1}
- var i I1 = s
- i.Put(2)
- check(i.Get() == 1, "f1 i")
- check(s.i == 1, "f1 s")
-}
-
-func f2() {
- s := S1{1}
- var i I1 = &s
- i.Put(2)
- check(i.Get() == 1, "f2 i")
- check(s.i == 1, "f2 s")
-}
-
-func f3() {
- s := &S1{1}
- var i I1 = s
- i.Put(2)
- check(i.Get() == 1, "f3 i")
- check(s.i == 1, "f3 s")
-}
-
-type S2 struct { i int }
-func (p *S2) Get() int { return p.i }
-func (p *S2) Put(i int) { p.i = i }
-
-// Disallowed by restriction of values going to pointer receivers
-// func f4() {
-// s := S2{1}
-// var i I1 = s
-// i.Put(2)
-// check(i.Get() == 2, "f4 i")
-// check(s.i == 1, "f4 s")
-// }
-
-func f5() {
- s := S2{1}
- var i I1 = &s
- i.Put(2)
- check(i.Get() == 2, "f5 i")
- check(s.i == 2, "f5 s")
-}
-
-func f6() {
- s := &S2{1}
- var i I1 = s
- i.Put(2)
- check(i.Get() == 2, "f6 i")
- check(s.i == 2, "f6 s")
-}
-
-type I2 interface { Get() int64; Put(int64) }
-
-type S3 struct { i, j, k, l int64 }
-func (p S3) Get() int64 { return p.l }
-func (p S3) Put(i int64) { p.l = i }
-
-func f7() {
- s := S3{1, 2, 3, 4}
- var i I2 = s
- i.Put(5)
- check(i.Get() == 4, "f7 i")
- check(s.l == 4, "f7 s")
-}
-
-func f8() {
- s := S3{1, 2, 3, 4}
- var i I2 = &s
- i.Put(5)
- check(i.Get() == 4, "f8 i")
- check(s.l == 4, "f8 s")
-}
-
-func f9() {
- s := &S3{1, 2, 3, 4}
- var i I2 = s
- i.Put(5)
- check(i.Get() == 4, "f9 i")
- check(s.l == 4, "f9 s")
-}
-
-type S4 struct { i, j, k, l int64 }
-func (p *S4) Get() int64 { return p.l }
-func (p *S4) Put(i int64) { p.l = i }
-
-// Disallowed by restriction of values going to pointer receivers
-// func f10() {
-// s := S4{1, 2, 3, 4}
-// var i I2 = s
-// i.Put(5)
-// check(i.Get() == 5, "f10 i")
-// check(s.l == 4, "f10 s")
-// }
-
-func f11() {
- s := S4{1, 2, 3, 4}
- var i I2 = &s
- i.Put(5)
- check(i.Get() == 5, "f11 i")
- check(s.l == 5, "f11 s")
-}
-
-func f12() {
- s := &S4{1, 2, 3, 4}
- var i I2 = s
- i.Put(5)
- check(i.Get() == 5, "f12 i")
- check(s.l == 5, "f12 s")
-}
-
-func main() {
- f1()
- f2()
- f3()
-// f4()
- f5()
- f6()
- f7()
- f8()
- f9()
-// f10()
- f11()
- f12()
- if fail > 0 {
- os.Exit(1)
- }
-}