add nilassign linter (#2131)

Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
This commit is contained in:
sivchari 2021-07-29 03:27:26 +09:00 committed by GitHub
parent 245257b8fb
commit bbf0450265
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 76 additions and 0 deletions

28
test/testdata/nilassign.go vendored Normal file
View file

@ -0,0 +1,28 @@
//args: -Enilassign
package testdata
var num = 1
func pvar() {
var ii *int
*ii = 1 // ERROR "this assignment occurs invalid memory address or nil pointer dereference"
var i *int
i = &num // OK
_ = i // OK
}
func pstruct() {
n := new(Node)
*n.PVal = 1 // ERROR "this assignment occurs invalid memory address or nil pointer dereference"
*n.ChildNode.PVal = 1 // ERROR "this assignment occurs invalid memory address or nil pointer dereference"
n.ChildNode = &Node{PVal: &num} // OK
n.PVal = &num // OK
}
type Node struct {
PVal *int
ChildNode *Node
}