blob: 8e3c7701be03348c46eb5e1ce0f1f5e60a6af993 [file] [log] [blame]
Rémy Oudompheng4bb75cd2012-09-30 10:35:09 +02001// run
2
3// Copyright 2012 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7// Issue 4156: out of fixed registers when chaining method calls.
8// Used to happen with 6g.
9
10package main
11
12type test_i interface {
13 Test() test_i
14 Result() bool
15}
16
17type test_t struct {
18}
19
20func newTest() *test_t {
21 return &test_t{}
22}
23
24type testFn func(string) testFn
25
26func main() {
27 test := newTest()
28
29 switch {
30 case test.
31 Test().
32 Test().
33 Test().
34 Test().
35 Test().
36 Test().
37 Test().
38 Test().
39 Test().
40 Test().
41 Result():
42 // case worked
43 default:
44 panic("Result returned false unexpectedly")
45 }
46}
47
48func (t *test_t) Test() test_i {
49 return t
50}
51
52func (t *test_t) Result() bool {
53 return true
54}