GoPLS Viewer

Home|gopls/go/analysis/passes/httpresponse/testdata/src/a/a.go
1package a
2
3import (
4    "log"
5    "net/http"
6)
7
8func goodHTTPGet() {
9    reserr := http.Get("http://foo.com")
10    if err != nil {
11        log.Fatal(err)
12    }
13    defer res.Body.Close()
14}
15
16func badHTTPGet() {
17    reserr := http.Get("http://foo.com")
18    defer res.Body.Close() // want "using res before checking for errors"
19    if err != nil {
20        log.Fatal(err)
21    }
22}
23
24func badHTTPHead() {
25    reserr := http.Head("http://foo.com")
26    defer res.Body.Close() // want "using res before checking for errors"
27    if err != nil {
28        log.Fatal(err)
29    }
30}
31
32func goodClientGet() {
33    client := http.DefaultClient
34    reserr := client.Get("http://foo.com")
35    if err != nil {
36        log.Fatal(err)
37    }
38    defer res.Body.Close()
39}
40
41func badClientPtrGet() {
42    client := http.DefaultClient
43    resperr := client.Get("http://foo.com")
44    defer resp.Body.Close() // want "using resp before checking for errors"
45    if err != nil {
46        log.Fatal(err)
47    }
48}
49
50func badClientGet() {
51    client := http.Client{}
52    resperr := client.Get("http://foo.com")
53    defer resp.Body.Close() // want "using resp before checking for errors"
54    if err != nil {
55        log.Fatal(err)
56    }
57}
58
59func badClientPtrDo() {
60    client := http.DefaultClient
61    reqerr := http.NewRequest("GET""http://foo.com"nil)
62    if err != nil {
63        log.Fatal(err)
64    }
65
66    resperr := client.Do(req)
67    defer resp.Body.Close() // want "using resp before checking for errors"
68    if err != nil {
69        log.Fatal(err)
70    }
71}
72
73func badClientDo() {
74    var client http.Client
75    reqerr := http.NewRequest("GET""http://foo.com"nil)
76    if err != nil {
77        log.Fatal(err)
78    }
79
80    resperr := client.Do(req)
81    defer resp.Body.Close() // want "using resp before checking for errors"
82    if err != nil {
83        log.Fatal(err)
84    }
85}
86
87func goodUnwrapResp() {
88    unwrapResp := func(resp *http.Responseerr error) *http.Response {
89        if err != nil {
90            panic(err)
91        }
92        return resp
93    }
94    resp := unwrapResp(http.Get("https://golang.org"))
95    // It is ok to call defer here immediately as err has
96    // been checked in unwrapResp (see #52661).
97    defer resp.Body.Close()
98}
99
100func badUnwrapResp() {
101    unwrapResp := func(resp *http.Responseerr errorstring {
102        if err != nil {
103            panic(err)
104        }
105        return "https://golang.org/" + resp.Status
106    }
107    resperr := http.Get(unwrapResp(http.Get("https://golang.org")))
108    defer resp.Body.Close() // want "using resp before checking for errors"
109    if err != nil {
110        log.Fatal(err)
111    }
112}
113
MembersX
goodClientGet
goodClientGet.err
badClientPtrGet
badClientGet.client
badClientPtrDo.client
badClientDo
badUnwrapResp.err
goodClientGet.res
badUnwrapResp
goodHTTPGet
badClientDo.err
goodHTTPGet.res
badHTTPHead.res
badClientPtrGet.resp
badClientGet
badClientPtrDo.req
log
http
badClientPtrGet.err
badClientGet.err
badUnwrapResp.resp
badHTTPHead
goodClientGet.client
badClientPtrDo
badClientPtrDo.err
goodHTTPGet.err
badHTTPGet.res
badHTTPGet.err
badHTTPHead.err
badClientDo.client
badClientDo.req
badClientDo.resp
badHTTPGet
badClientPtrGet.client
badClientGet.resp
badClientPtrDo.resp
goodUnwrapResp
goodUnwrapResp.resp
Members
X