Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201105173854-bc9fc8d8c4bc / internal / lsp / analysis / fillreturns / testdata / src / a / a.go.golden
1 // Copyright 2020 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package fillreturns
6
7 import (
8         "errors"
9         "go/ast"
10         ast2 "go/ast"
11         "io"
12         "net/http"
13         . "net/http"
14         "net/url"
15         "strconv"
16 )
17
18 type T struct{}
19 type T1 = T
20 type I interface{}
21 type I1 = I
22 type z func(string, http.Handler) error
23
24 func x() error {
25         return errors.New("foo")
26 }
27
28 func b() (string, int, error) {
29         return "", 0, errors.New("foo") // want "wrong number of return values \\(want 3, got 2\\)"
30 }
31
32 func c() (string, int, error) {
33         return "", 7, errors.New("foo") // want "wrong number of return values \\(want 3, got 2\\)"
34 }
35
36 func d() (string, int, error) {
37         return "", 7, nil // want "wrong number of return values \\(want 3, got 2\\)"
38 }
39
40 func e() (T, error, *bool) {
41         return T{}, (z(http.ListenAndServe))("", nil), nil // want "wrong number of return values \\(want 3, got 1\\)"
42 }
43
44 func preserveLeft() (int, int, error) {
45         return 1, 0, errors.New("foo") // want "wrong number of return values \\(want 3, got 2\\)"
46 }
47
48 func matchValues() (int, error, string) {
49         return 3, errors.New("foo"), "" // want "wrong number of return values \\(want 3, got 2\\)"
50 }
51
52 func preventDataOverwrite() (int, string) {
53         return 0, "", errors.New("foo") // want "wrong number of return values \\(want 2, got 1\\)"
54 }
55
56 func closure() (string, error) {
57         _ = func() (int, error) {
58                 return 0, nil // want "wrong number of return values \\(want 2, got 0\\)"
59         }
60         return "", nil // want "wrong number of return values \\(want 2, got 0\\)"
61 }
62
63 func basic() (uint8, uint16, uint32, uint64, int8, int16, int32, int64, float32, float64, complex64, complex128, byte, rune, uint, int, uintptr, string, bool, error) {
64         return 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", false, nil // want "wrong number of return values \\(want 20, got 0\\)"
65 }
66
67 func complex() (*int, []int, [2]int, map[int]int) {
68         return nil, nil, nil, nil // want "wrong number of return values \\(want 4, got 0\\)"
69 }
70
71 func structsAndInterfaces() (T, url.URL, T1, I, I1, io.Reader, Client, ast2.Stmt) {
72         return T{}, url.URL{}, T{}, nil, nil, nil, Client{}, nil // want "wrong number of return values \\(want 8, got 0\\)"
73 }
74
75 func m() (int, error) {
76         if 1 == 2 {
77                 return 0, nil // want "wrong number of return values \\(want 2, got 0\\)"
78         } else if 1 == 3 {
79                 return 0, errors.New("foo") // want "wrong number of return values \\(want 2, got 1\\)"
80         } else {
81                 return 1, nil // want "wrong number of return values \\(want 2, got 1\\)"
82         }
83         return 0, nil // want "wrong number of return values \\(want 2, got 0\\)"
84 }
85
86 func convertibleTypes() (ast2.Expr, int) {
87         return &ast2.ArrayType{}, 0 // want "wrong number of return values \\(want 2, got 1\\)"
88 }
89
90 func assignableTypes() (map[string]int, int) {
91         type X map[string]int
92         var x X
93         return x, 0 // want "wrong number of return values \\(want 2, got 1\\)"
94 }
95
96 func interfaceAndError() (I, int) {
97         return errors.New("foo"), 0 // want "wrong number of return values \\(want 2, got 1\\)"
98 }
99
100 func funcOneReturn() (string, error) {
101         return strconv.Itoa(1), nil // want "wrong number of return values \\(want 2, got 1\\)"
102 }
103
104 func funcMultipleReturn() (int, error, string) {
105         return strconv.Atoi("1")
106 }
107
108 func localFuncMultipleReturn() (string, int, error, string) {
109         return b()
110 }
111
112 func multipleUnused() (int, string, string, string) {
113         return 3, "", "", "", 4, 5 // want "wrong number of return values \\(want 4, got 3\\)"
114 }
115
116 func gotTooMany() int {
117         if true {
118                 return 0 // want "wrong number of return values \\(want 1, got 2\\)"
119         } else {
120                 return 1 // want "wrong number of return values \\(want 1, got 3\\)"
121         }
122         return 5 // want "wrong number of return values \\(want 1, got 3\\)"
123 }
124
125 func fillVars() (int, string, ast.Node, bool, error) {
126         eint := 0
127         s := "a"
128         var t bool
129         if true {
130                 err := errors.New("fail")
131                 return eint, s, nil, false, err // want "wrong number of return values \\(want 5, got 0\\)"
132         }
133         n := ast.NewIdent("ident")
134         int := 3
135         var b bool
136         return int, "", n, b, nil // want "wrong number of return values \\(want 5, got 1\\)"
137 }