2016-03-29 2 views
8

Je suis en cours d'exécution vétérinaire aller sur mon outil de CI, et a commencé à obtenir l'erreur:Désactiver la vérification vétérinaire go pour « littéral composite utilise des champs non détrompé »

composite literal uses unkeyed fields 

Parce que je suis instanciation

type A struct { 
    *B 
} 

comme ceci:

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

Je ne me soucie pas de cet avertissement, et que vous souhaitez le désactiver sur mes chèques de vétérinaire go. Comment puis-je faire cela?

+2

Je pense que ce bogue dans "aller vétérinaire". Il n'y a pas d'ambiguïté dans ce cas (un seul membre) et "allez vétérinaire" ne devrait pas signaler cela comme un problème. Même avec plusieurs membres qui ont des types incompatibles. – dolmen

Répondre

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

Vous pouvez désactiver la ou vous pouvez corriger le code à la place:

a := A{B: b} 

playground

+0

Je ne pense pas que cela fonctionne? – genxstylez

+0

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

+0

Fonctionne parfaitement, merci –