@@ -669,10 +669,14 @@ func (g *genConversion) Init(c *generator.Context, w io.Writer) error {
669
669
sw .Do ("func RegisterConversions(s $.|raw$) error {\n " , schemePtr )
670
670
for _ , t := range g .types {
671
671
peerType := getPeerTypeFor (c , t , g .peerPackages )
672
- args := argsFromType (t , peerType ).With ("Scope" , types .Ref (conversionPackagePath , "Scope" ))
673
- sw .Do ("if err := s.AddGeneratedConversionFunc((*$.inType|raw$)(nil), (*$.outType|raw$)(nil), func(a, b interface{}, scope $.Scope|raw$) error { return " + nameTmpl + "(a.(*$.inType|raw$), b.(*$.outType|raw$), scope) }); err != nil { return err }\n " , args )
674
- args = argsFromType (peerType , t ).With ("Scope" , types .Ref (conversionPackagePath , "Scope" ))
675
- sw .Do ("if err := s.AddGeneratedConversionFunc((*$.inType|raw$)(nil), (*$.outType|raw$)(nil), func(a, b interface{}, scope $.Scope|raw$) error { return " + nameTmpl + "(a.(*$.inType|raw$), b.(*$.outType|raw$), scope) }); err != nil { return err }\n " , args )
672
+ if _ , found := g .preexists (t , peerType ); ! found {
673
+ args := argsFromType (t , peerType ).With ("Scope" , types .Ref (conversionPackagePath , "Scope" ))
674
+ sw .Do ("if err := s.AddGeneratedConversionFunc((*$.inType|raw$)(nil), (*$.outType|raw$)(nil), func(a, b interface{}, scope $.Scope|raw$) error { return " + nameTmpl + "(a.(*$.inType|raw$), b.(*$.outType|raw$), scope) }); err != nil { return err }\n " , args )
675
+ }
676
+ if _ , found := g .preexists (peerType , t ); ! found {
677
+ args := argsFromType (peerType , t ).With ("Scope" , types .Ref (conversionPackagePath , "Scope" ))
678
+ sw .Do ("if err := s.AddGeneratedConversionFunc((*$.inType|raw$)(nil), (*$.outType|raw$)(nil), func(a, b interface{}, scope $.Scope|raw$) error { return " + nameTmpl + "(a.(*$.inType|raw$), b.(*$.outType|raw$), scope) }); err != nil { return err }\n " , args )
679
+ }
676
680
}
677
681
678
682
for i := range g .explicitConversions {
0 commit comments