Skip to content

Commit 9acb04a

Browse files
committed
Avoid registering manual conversion twice
1 parent 2905275 commit 9acb04a

File tree

1 file changed

+8
-4
lines changed
  • staging/src/k8s.io/code-generator/cmd/conversion-gen/generators

1 file changed

+8
-4
lines changed

staging/src/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -669,10 +669,14 @@ func (g *genConversion) Init(c *generator.Context, w io.Writer) error {
669669
sw.Do("func RegisterConversions(s $.|raw$) error {\n", schemePtr)
670670
for _, t := range g.types {
671671
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+
}
676680
}
677681

678682
for i := range g.explicitConversions {

0 commit comments

Comments
 (0)