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
diff --git a/.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 b/.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
new file mode 100644 (file)
index 0000000..44cb25f
--- /dev/null
@@ -0,0 +1,137 @@
+// Copyright 2020 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 fillreturns
+
+import (
+       "errors"
+       "go/ast"
+       ast2 "go/ast"
+       "io"
+       "net/http"
+       . "net/http"
+       "net/url"
+       "strconv"
+)
+
+type T struct{}
+type T1 = T
+type I interface{}
+type I1 = I
+type z func(string, http.Handler) error
+
+func x() error {
+       return errors.New("foo")
+}
+
+func b() (string, int, error) {
+       return "", errors.New("foo") // want "wrong number of return values \\(want 3, got 2\\)"
+}
+
+func c() (string, int, error) {
+       return 7, errors.New("foo") // want "wrong number of return values \\(want 3, got 2\\)"
+}
+
+func d() (string, int, error) {
+       return "", 7 // want "wrong number of return values \\(want 3, got 2\\)"
+}
+
+func e() (T, error, *bool) {
+       return (z(http.ListenAndServe))("", nil) // want "wrong number of return values \\(want 3, got 1\\)"
+}
+
+func preserveLeft() (int, int, error) {
+       return 1, errors.New("foo") // want "wrong number of return values \\(want 3, got 2\\)"
+}
+
+func matchValues() (int, error, string) {
+       return errors.New("foo"), 3 // want "wrong number of return values \\(want 3, got 2\\)"
+}
+
+func preventDataOverwrite() (int, string) {
+       return errors.New("foo") // want "wrong number of return values \\(want 2, got 1\\)"
+}
+
+func closure() (string, error) {
+       _ = func() (int, error) {
+               return // want "wrong number of return values \\(want 2, got 0\\)"
+       }
+       return // want "wrong number of return values \\(want 2, got 0\\)"
+}
+
+func basic() (uint8, uint16, uint32, uint64, int8, int16, int32, int64, float32, float64, complex64, complex128, byte, rune, uint, int, uintptr, string, bool, error) {
+       return // want "wrong number of return values \\(want 20, got 0\\)"
+}
+
+func complex() (*int, []int, [2]int, map[int]int) {
+       return // want "wrong number of return values \\(want 4, got 0\\)"
+}
+
+func structsAndInterfaces() (T, url.URL, T1, I, I1, io.Reader, Client, ast2.Stmt) {
+       return // want "wrong number of return values \\(want 8, got 0\\)"
+}
+
+func m() (int, error) {
+       if 1 == 2 {
+               return // want "wrong number of return values \\(want 2, got 0\\)"
+       } else if 1 == 3 {
+               return errors.New("foo") // want "wrong number of return values \\(want 2, got 1\\)"
+       } else {
+               return 1 // want "wrong number of return values \\(want 2, got 1\\)"
+       }
+       return // want "wrong number of return values \\(want 2, got 0\\)"
+}
+
+func convertibleTypes() (ast2.Expr, int) {
+       return &ast2.ArrayType{} // want "wrong number of return values \\(want 2, got 1\\)"
+}
+
+func assignableTypes() (map[string]int, int) {
+       type X map[string]int
+       var x X
+       return x // want "wrong number of return values \\(want 2, got 1\\)"
+}
+
+func interfaceAndError() (I, int) {
+       return errors.New("foo") // want "wrong number of return values \\(want 2, got 1\\)"
+}
+
+func funcOneReturn() (string, error) {
+       return strconv.Itoa(1) // want "wrong number of return values \\(want 2, got 1\\)"
+}
+
+func funcMultipleReturn() (int, error, string) {
+       return strconv.Atoi("1")
+}
+
+func localFuncMultipleReturn() (string, int, error, string) {
+       return b()
+}
+
+func multipleUnused() (int, string, string, string) {
+       return 3, 4, 5 // want "wrong number of return values \\(want 4, got 3\\)"
+}
+
+func gotTooMany() int {
+       if true {
+               return 0, "" // want "wrong number of return values \\(want 1, got 2\\)"
+       } else {
+               return 1, 0, nil // want "wrong number of return values \\(want 1, got 3\\)"
+       }
+       return 0, 5, false // want "wrong number of return values \\(want 1, got 3\\)"
+}
+
+func fillVars() (int, string, ast.Node, bool, error) {
+       eint := 0
+       s := "a"
+       var t bool
+       if true {
+               err := errors.New("fail")
+               return // want "wrong number of return values \\(want 5, got 0\\)"
+       }
+       n := ast.NewIdent("ident")
+       int := 3
+       var b bool
+       return "" // want "wrong number of return values \\(want 5, got 1\\)"
+}