问:如何解决lintersireturn和nolintlintlinters 之间的疯狂问题?
细节:
我有一个带有这个签名的 Golang 函数
func NewClientCredentialsTokenSource(
issuer string,
clientId string,
clientSecret string,
scope []string,
) (oauth2.TokenSource, error) {
当我运行 golangci-lint v1.43.0 它报告
golangci-lint run
oidc/token_utils.go:19:1: NewClientCredentialsTokenSource returns interface (golang.org/x/oauth2.TokenSource) (ireturn)
func NewClientCredentialsTokenSource(
由于该函数只有两个返回参数,因此很容易推断出它在抱怨oauth2.TokenSource而不是在抱怨error。
调用的下游函数NewClientCredentialsTokenSource返回一个实例,oauth2.TokenSource所以我没有要返回的具体类型。没办法,只好返回oauth2.TokenSource接口。
所以我向函数添加了一个 lint 异常,如下所示:
//nolint:ireturn
func NewClientCredentialsTokenSource(
issuer string,
clientId string,
clientSecret string,
scope []string,
) (oauth2.TokenSource, error) {
你会认为应该解决它但不是!现在报告了一个新的 lint 问题:
golangci-lint run
oidc/token_utils.go:19:1: directive `//nolint:ireturn` is unused for linter "ireturn" (nolintlint)
//nolint:ireturn
所以现在我在追我的尾巴。ireturn抱怨我正在返回一个界面。我为该函数添加了一个例外只是nolintlint抱怨我有一个不适用的例外。
男人要做什么?
沧海一幻觉
小怪兽爱吃肉
眼眸繁星
相关分类