// run // Copyright 2012 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. // Issue 4156: out of fixed registers when chaining method calls. // Used to happen with 6g. package main type test_i interface { Test() test_i Result() bool } type test_t struct { } func newTest() *test_t { return &test_t{} } type testFn func(string) testFn func main() { test := newTest() switch { case test. Test(). Test(). Test(). Test(). Test(). Test(). Test(). Test(). Test(). Test(). Result(): // case worked default: panic("Result returned false unexpectedly") } } func (t *test_t) Test() test_i { return t } func (t *test_t) Result() bool { return true }