@@ -28,7 +28,7 @@ import (
28
28
29
29
// visitCallValue checks for encoding/json#Decoder.Decode, json.Unmarshal, errors.Is and errors.As.
30
30
func (v Visitor ) visitCallBasic (x * ast.CallExpr ) bool { //nolint:cyclop
31
- fun , ok := unwrap (x .Fun ).(* ast.SelectorExpr )
31
+ fun , ok := ast . Unparen (x .Fun ).(* ast.SelectorExpr )
32
32
if ! ok {
33
33
return true
34
34
}
@@ -38,8 +38,8 @@ func (v Visitor) visitCallBasic(x *ast.CallExpr) bool { //nolint:cyclop
38
38
return false // Do not report pointers in json.Decoder#Decode
39
39
}
40
40
41
- switch path , ok2 := v .pathOf (fun .X ); {
42
- case ! ok2 :
41
+ switch path , ok := v .pathOf (fun .X ); {
42
+ case ! ok :
43
43
return true
44
44
45
45
case path == "encoding/json" && fun .Sel .Name == "Unmarshal" :
@@ -105,7 +105,7 @@ func (v Visitor) visitCast(t types.Type, x *ast.CallExpr) bool {
105
105
106
106
message := fmt .Sprintf ("cast of nil to pointer to zero-size variable of type %q" , elem )
107
107
var fixes []analysis.SuggestedFix
108
- if s , ok2 := unwrap (x .Fun ).(* ast.StarExpr ); ok2 {
108
+ if s , ok := ast . Unparen (x .Fun ).(* ast.StarExpr ); ok {
109
109
fixes = v .makePure (x , s .X )
110
110
}
111
111
@@ -119,13 +119,13 @@ func (v Visitor) visitNew(x *ast.CallExpr) bool {
119
119
if len (x .Args ) != 1 {
120
120
return true
121
121
}
122
- fun , ok := unwrap (x .Fun ).(* ast.Ident )
122
+ fun , ok := ast . Unparen (x .Fun ).(* ast.Ident )
123
123
if ! ok || fun .Name != "new" {
124
124
return true
125
125
}
126
126
127
127
arg := x .Args [0 ] // new(arg).
128
- argType := v .TypesInfo .Types [ arg ]. Type
128
+ argType := v .TypesInfo .TypeOf ( arg )
129
129
if ! v .zeroSizedType (argType ) {
130
130
return true
131
131
}
@@ -137,20 +137,6 @@ func (v Visitor) visitNew(x *ast.CallExpr) bool {
137
137
return false
138
138
}
139
139
140
- // unwrap removes parentheses from an expression (x).
141
- func unwrap (e ast.Expr ) ast.Expr {
142
- x := e
143
- for {
144
- p , ok := x .(* ast.ParenExpr )
145
- if ! ok {
146
- break
147
- }
148
- x = p .X
149
- }
150
-
151
- return x
152
- }
153
-
154
140
// makePure adds a suggested fix from (*T)(nil) or new(T) to T{}.
155
141
func (v Visitor ) makePure (n ast.Node , x ast.Expr ) []analysis.SuggestedFix {
156
142
var buf bytes.Buffer
0 commit comments