// Copyright 2018 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 issue12839 is a go/doc test to test association of a function // that returns multiple types. // See golang.org/issue/12839. // (See also golang.org/issue/27928.) package issue12839 import "p" type T1 struct{} type T2 struct{} func (t T1) hello() string { return "hello" } // F1 should not be associated with T1 func F1() (*T1, *T2) { return &T1{}, &T2{} } // F2 should be associated with T1 func F2() (a, b, c T1) { return T1{}, T1{}, T1{} } // F3 should be associated with T1 because b.T3 is from a different package func F3() (a T1, b p.T3) { return T1{}, p.T3{} } // F4 should not be associated with a type (same as F1) func F4() (a T1, b T2) { return T1{}, T2{} } // F5 should be associated with T1. func F5() (T1, error) { return T1{}, nil } // F6 should be associated with T1. func F6() (*T1, error) { return &T1{}, nil } // F7 should be associated with T1. func F7() (T1, string) { return T1{}, nil } // F8 should be associated with T1. func F8() (int, T1, string) { return 0, T1{}, nil } // F9 should not be associated with T1. func F9() (int, T1, T2) { return 0, T1{}, T2{} } // F10 should not be associated with T1. func F10() (T1, T2, error) { return T1{}, T2{}, nil }