From 7db782ee039a6740c3abd2352dfff1ea74e40209 Mon Sep 17 00:00:00 2001 From: j2gg0s Date: Fri, 6 Aug 2021 12:25:03 +0800 Subject: [PATCH] apimachinery: remove unused ignoredConversions map and nameFunc in converter. --- .../apimachinery/pkg/conversion/converter.go | 12 ++-------- .../pkg/conversion/converter_test.go | 14 +++++------ .../k8s.io/apimachinery/pkg/runtime/scheme.go | 24 +------------------ 3 files changed, 10 insertions(+), 40 deletions(-) diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/converter.go b/staging/src/k8s.io/apimachinery/pkg/conversion/converter.go index 79134847644..ed51a25e338 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/converter.go +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/converter.go @@ -44,23 +44,16 @@ type Converter struct { generatedConversionFuncs ConversionFuncs // Set of conversions that should be treated as a no-op - ignoredConversions map[typePair]struct{} ignoredUntypedConversions map[typePair]struct{} - - // nameFunc is called to retrieve the name of a type; this name is used for the - // purpose of deciding whether two types match or not (i.e., will we attempt to - // do a conversion). The default returns the go type name. - nameFunc func(t reflect.Type) string } // NewConverter creates a new Converter object. -func NewConverter(nameFn NameFunc) *Converter { +// Arg NameFunc is just for backward compatibility. +func NewConverter(NameFunc) *Converter { c := &Converter{ conversionFuncs: NewConversionFuncs(), generatedConversionFuncs: NewConversionFuncs(), - ignoredConversions: make(map[typePair]struct{}), ignoredUntypedConversions: make(map[typePair]struct{}), - nameFunc: nameFn, } c.RegisterUntypedConversionFunc( (*[]byte)(nil), (*[]byte)(nil), @@ -192,7 +185,6 @@ func (c *Converter) RegisterIgnoredConversion(from, to interface{}) error { if typeTo.Kind() != reflect.Ptr { return fmt.Errorf("expected pointer arg for 'to' param 1, got: %v", typeTo) } - c.ignoredConversions[typePair{typeFrom.Elem(), typeTo.Elem()}] = struct{}{} c.ignoredUntypedConversions[typePair{typeFrom, typeTo}] = struct{}{} return nil } diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/converter_test.go b/staging/src/k8s.io/apimachinery/pkg/conversion/converter_test.go index 8bcdb9f9b4e..584068772f8 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/converter_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/converter_test.go @@ -24,7 +24,7 @@ import ( ) func TestConverter_byteSlice(t *testing.T) { - c := NewConverter(DefaultNameFunc) + c := NewConverter(nil) src := []byte{1, 2, 3} dest := []byte{} err := c.Convert(&src, &dest, nil) @@ -37,7 +37,7 @@ func TestConverter_byteSlice(t *testing.T) { } func TestConverter_MismatchedTypes(t *testing.T) { - c := NewConverter(DefaultNameFunc) + c := NewConverter(nil) convertFn := func(in *[]string, out *int, s Scope) error { if str, err := strconv.Atoi((*in)[0]); err != nil { @@ -76,7 +76,7 @@ func TestConverter_CallsRegisteredFunctions(t *testing.T) { Baz int } type C struct{} - c := NewConverter(DefaultNameFunc) + c := NewConverter(nil) convertFn1 := func(in *A, out *B, s Scope) error { out.Bar = in.Foo out.Baz = in.Baz @@ -151,7 +151,7 @@ func TestConverter_IgnoredConversion(t *testing.T) { type B struct{} count := 0 - c := NewConverter(DefaultNameFunc) + c := NewConverter(nil) convertFn := func(in *A, out *B, s Scope) error { count++ return nil @@ -180,7 +180,7 @@ func TestConverter_IgnoredConversion(t *testing.T) { func TestConverter_GeneratedConversionOverridden(t *testing.T) { type A struct{} type B struct{} - c := NewConverter(DefaultNameFunc) + c := NewConverter(nil) convertFn1 := func(in *A, out *B, s Scope) error { return nil } @@ -214,7 +214,7 @@ func TestConverter_GeneratedConversionOverridden(t *testing.T) { func TestConverter_WithConversionOverridden(t *testing.T) { type A struct{} type B struct{} - c := NewConverter(DefaultNameFunc) + c := NewConverter(nil) convertFn1 := func(in *A, out *B, s Scope) error { return fmt.Errorf("conversion function should be overridden") } @@ -260,7 +260,7 @@ func TestConverter_WithConversionOverridden(t *testing.T) { func TestConverter_meta(t *testing.T) { type Foo struct{ A string } type Bar struct{ A string } - c := NewConverter(DefaultNameFunc) + c := NewConverter(nil) checks := 0 convertFn1 := func(in *Foo, out *Bar, s Scope) error { if s.Meta() == nil { diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go b/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go index ae47ab3abae..f5da6b12f44 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go @@ -99,7 +99,7 @@ func NewScheme() *Scheme { versionPriority: map[string][]string{}, schemeName: naming.GetNameFromCallsite(internalPackages...), } - s.converter = conversion.NewConverter(s.nameFunc) + s.converter = conversion.NewConverter(nil) // Enable couple default conversions by default. utilruntime.Must(RegisterEmbeddedConversions(s)) @@ -107,28 +107,6 @@ func NewScheme() *Scheme { return s } -// nameFunc returns the name of the type that we wish to use to determine when two types attempt -// a conversion. Defaults to the go name of the type if the type is not registered. -func (s *Scheme) nameFunc(t reflect.Type) string { - // find the preferred names for this type - gvks, ok := s.typeToGVK[t] - if !ok { - return t.Name() - } - - for _, gvk := range gvks { - internalGV := gvk.GroupVersion() - internalGV.Version = APIVersionInternal // this is hacky and maybe should be passed in - internalGVK := internalGV.WithKind(gvk.Kind) - - if internalType, exists := s.gvkToType[internalGVK]; exists { - return s.typeToGVK[internalType][0].Kind - } - } - - return gvks[0].Kind -} - // Converter allows access to the converter for the scheme func (s *Scheme) Converter() *conversion.Converter { return s.converter