Golangci-lint 结构体检查问题

2021/08/03

Issues

嵌套结构体,检测成员未使用

出错模块: structcheck

Example

package main

import "fmt"

type Meta struct {
        a, A string
}

type WrapMeta struct {
        Meta
}

func (m *Meta) run() {
        w := WrapMeta{
                Meta: *m,
        }

        defer func() {
                fmt.Println(w.a, w.A)
        }()

        w.assign()
}

func (wm *WrapMeta) assign() {
        wm.a = "aa"
        wm.A = "AA"
}

func main() {
        m := &Meta{}

        m.run()
}

Result

$ golangci-lint run ./...
main.go:6:2: `a` is unused (structcheck)
        a, A string
        ^

官方仓库提到不支持嵌入结构体

https://gitlab.com/opennota/check#known-limitations