2016-03-29 9 views
8

Я бег идти ветеринар на моем инструменте CI, и начал получать ошибку:Отключения проверки идет ветеринар для «композита буквальных использует unkeyed поля»

composite literal uses unkeyed fields 

Потому что я инстанцирование

type A struct { 
    *B 
} 

так:

A{b} // b is of type *B 

Я не забочусь за это предупреждение, и хочу, чтобы отключить его на моей ей проверке ветеринара. Как мне это сделать?

+2

Я думаю, что это ошибка в «идти ветеринара». В этом случае нет двусмысленности (только один член) и «go vet» не должны сообщать об этом как о проблеме. То же самое с несколькими членами, которые имеют несовместимые типы. – dolmen

ответ

10
$ go doc cmd/vet 

By default all checks are performed. If any flags are explicitly set to true, only those tests are run. Conversely, if any flag is explicitly set to false, only those tests are disabled. Thus -printf=true runs the printf check, -printf=false runs all checks except the printf check.

Unkeyed composite literals 

Flag: -composites 

Composite struct literals that do not use the field-keyed syntax. 
20

Вы можете отключить его, или вы можете исправить код вместо:

a := A{B: b} 

playground

+0

Я не думаю, что это работает? – genxstylez

+0

@genxstylez http://play.golang.org/p/mW03O0Rl5I – OneOfOne

+0

Работает отлично, спасибо –