summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2008-12-30 15:03:46 -0800
committerIan Lance Taylor <iant@golang.org>2008-12-30 15:03:46 -0800
commite6e8b16faf717a5f4dba30e7cc24f45e0d1df262 (patch)
tree92c22900928c9ae0628240ec22fe9a7271782088
parentb29f4ef6f879c21955ac3c6c94b4e285971a1fa2 (diff)
downloadgolang-e6e8b16faf717a5f4dba30e7cc24f45e0d1df262.tar.gz
Test for a go statement which calls a method on an interface.
R=ken DELTA=20 (20 added, 0 deleted, 0 changed) OCL=21889 CL=21929
-rw-r--r--test/bugs/bug130.go20
-rw-r--r--test/golden.out4
2 files changed, 24 insertions, 0 deletions
diff --git a/test/bugs/bug130.go b/test/bugs/bug130.go
new file mode 100644
index 000000000..6e189ca5c
--- /dev/null
+++ b/test/bugs/bug130.go
@@ -0,0 +1,20 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: should run
+
+// 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 { send(chan <- int) }
+
+type S struct { v int }
+func (p *S) send(c chan <- int) { c <- p.v }
+
+func main() {
+ s := S{0};
+ var i I = &s;
+ c := new(chan int);
+ go i.send(c);
+ sys.exit(<-c);
+}
diff --git a/test/golden.out b/test/golden.out
index feb0a4566..50b957f12 100644
--- a/test/golden.out
+++ b/test/golden.out
@@ -157,6 +157,10 @@ BUG: errchk: command succeeded unexpectedly: 6g bugs/bug125.go
bugs/bug129.go:6: syscall is package, not var
BUG129
+=========== bugs/bug130.go
+bugs/bug130.go:14: fatal error: getoutarg: not a func RANGE
+BUG: should run
+
=========== fixedbugs/bug016.go
fixedbugs/bug016.go:7: overflow converting constant to uint