.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / honnef.co / go / tools@v0.1.1 / analysis / facts / nilness / testdata / src / Nilness / Nilness.go
1 package pkg
2
3 import "errors"
4
5 type T struct{ f *int }
6 type T2 T
7
8 func fn1() *T {
9         if true {
10                 return nil
11         }
12         return &T{}
13 }
14
15 func fn2() *T { // want fn2:`never returns nil: \[never\]`
16         return &T{}
17 }
18
19 func fn3() *T { // want fn3:`never returns nil: \[never\]`
20         return new(T)
21 }
22
23 func fn4() *T { // want fn4:`never returns nil: \[never\]`
24         return fn3()
25 }
26
27 func fn5() *T {
28         return fn1()
29 }
30
31 func fn6() *T2 { // want fn6:`never returns nil: \[never\]`
32         return (*T2)(fn4())
33 }
34
35 func fn7() interface{} {
36         return nil
37 }
38
39 func fn8() interface{} { // want fn8:`never returns nil: \[never\]`
40         return 1
41 }
42
43 func fn9() []int { // want fn9:`never returns nil: \[never\]`
44         x := []int{}
45         y := x[:1]
46         return y
47 }
48
49 func fn10(x []int) []int {
50         return x[:1]
51 }
52
53 func fn11(x *T) *T {
54         return x
55 }
56
57 func fn12(x *T) *int {
58         return x.f
59 }
60
61 func fn13() *int { // want fn13:`never returns nil: \[never\]`
62         return new(int)
63 }
64
65 func fn14() []int { // want fn14:`never returns nil: \[never\]`
66         return make([]int, 0)
67 }
68
69 func fn15() []int { // want fn15:`never returns nil: \[never\]`
70         return []int{}
71 }
72
73 func fn16() []int {
74         return nil
75 }
76
77 func fn17() error {
78         if true {
79                 return errors.New("")
80         }
81         return nil
82 }
83
84 func fn18() (err error) { // want fn18:`never returns nil: \[never\]`
85         for {
86                 if err = fn17(); err != nil {
87                         return
88                 }
89         }
90 }
91
92 var x *int
93
94 func fn19() *int { // want fn19:`never returns nil: \[global\]`
95         return x
96 }
97
98 func fn20() *int {
99         if true {
100                 return x
101         }
102         return nil
103 }