8 type T struct{ x *int }
12 func fn1() *int { return nil }
13 func fn2() (int, *int, int) { return 0, nil, 0 }
15 func fn3() (out1 int, out2 error) { notAStub(); return 0, nil }
16 func fn4() error { notAStub(); return nil }
18 func gen2() (out1 interface{}) { // want gen2:`always typed: 00000001`
22 func gen3() (out1 interface{}) { // want gen3:`always typed: 00000001`
23 // flag, always returns a typed value
28 func gen4() (out1 int, out2 interface{}, out3 *int) { // want gen4:`always typed: 00000010`
29 // flag ret[1], always a typed value
34 func gen5() (out1 interface{}) { // want gen5:`always typed: 00000001`
35 // flag, propagate gen3
39 func gen6(b bool) interface{} {
40 // don't flag, sometimes returns untyped nil
49 func gen7() (out1 interface{}) { // want gen7:`always typed: 00000001`
50 // flag, always returns a typed value
54 func gen8(x *int) (out1 interface{}) { // want gen8:`always typed: 00000001`
62 func gen9() (out1 interface{}) { // want gen9:`always typed: 00000001`
68 func gen10() (out1 interface{}) { // want gen10:`always typed: 00000001`
77 func gen11() interface{} {
78 // don't flag, we sometimes return untyped nil
86 func gen12(b bool) (out1 interface{}) { // want gen12:`always typed: 00000001`
87 // flag, all branches return typed nils
97 func gen13() (out1 interface{}) { // want gen13:`always typed: 00000001`
98 // flag, always returns a typed value
103 func gen14(ch chan *int) (out1 interface{}) { // want gen14:`always typed: 00000001`
108 func gen15() (out1 interface{}) { // want gen15:`always typed: 00000001`
114 var g *int = new(int)
116 func gen16() (out1 interface{}) { // want gen16:`always typed: 00000001`
120 func gen17(x interface{}) interface{} {
128 func gen18() (int, error) {
132 return 0, errors.New("yo")
137 func gen19() (out interface{}) {
145 func gen20() (out interface{}) {
155 return (*exec.Error)(nil)
160 func gen22() interface{} {
161 // don't flag, propagate gen6
165 func gen23() interface{} {
169 func gen24() interface{} {
173 func gen25(x interface{}) (out1 interface{}) { // want gen25:`always typed: 00000001`
174 return x.(interface{})
177 func gen26(x interface{}) interface{} {
178 v, _ := x.(interface{})
182 func gen27(x interface{}) (out1 interface{}) {
184 out1 = x.(interface{})
190 func (*Error) Error() string { return "" }
192 func gen28() (out1 interface{}) { // want gen28:`always typed: 00000001`
198 func gen29() (out1 interface{}) { // want gen29:`always typed: 00000001`
204 func gen30() (out1, out2 interface{}) { // want gen30:`always typed: 00000011`
205 return gen29(), gen28()
208 func gen31() (out1 interface{}) { // want gen31:`always typed: 00000001`
213 func gen32() (out1 interface{}) { // want gen32:`always typed: 00000001`
218 func gen33() (out1 interface{}) { // want gen33:`always typed: 00000001`
224 func gen34() (out1, out2 interface{}) { // want gen34:`always typed: 00000010`
228 func gen35() (out1 interface{}) {
233 func gen36() (out1 interface{}) { // want gen36:`always typed: 00000001`