URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [fixedbugs/] [bug294.go] - Rev 700
Compare with Previous | Blame | View Log
// $G $D/$F.go && $L $F.$A && ./$A.out// Copyright 2010 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.// http://code.google.com/p/go/issues/detail?id=800package mainvar log stringtype T intfunc (t T) a(s string) T {log += "a(" + s + ")"return t}func (T) b(s string) string {log += "b"return s}type F func(s string) Ffunc a(s string) F {log += "a(" + s + ")"return F(a)}func b(s string) string {log += "b"return s}type I interface {a(s string) Ib(s string) string}type T1 intfunc (t T1) a(s string) I {log += "a(" + s + ")"return t}func (T1) b(s string) string {log += "b"return s}var ok = truefunc bad() {if !ok {println("BUG")ok = false}println(log)}func main() {var t Tif t.a("1").a(t.b("2")); log != "a(1)ba(2)" {bad()}log = ""if a("3")(b("4"))(b("5")); log != "a(3)ba(4)ba(5)" {bad()}log = ""var i I = T1(0)if i.a("6").a(i.b("7")).a(i.b("8")).a(i.b("9")); log != "a(6)ba(7)ba(8)ba(9)" {bad()}}
