diff options
| author | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 | 
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 | 
| commit | 80f18fc933cf3f3e829c5455a1023d69f7b86e52 (patch) | |
| tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /test/interface/struct.go | |
| parent | 28592ee1ea1f5cdffcf85472f9de0285d928cf12 (diff) | |
| download | golang-80f18fc933cf3f3e829c5455a1023d69f7b86e52.tar.gz | |
Imported Upstream version 60
Diffstat (limited to 'test/interface/struct.go')
| -rw-r--r-- | test/interface/struct.go | 156 | 
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) -	} -} | 
