mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 15:58:37 +00:00
Update conversions to handle primitive conversion
This commit is contained in:
parent
284b2e4166
commit
8046bb46df
@ -111,6 +111,22 @@ func (g *conversionGenerator) GenerateConversionsForType(gv unversioned.GroupVer
|
||||
return nil
|
||||
}
|
||||
|
||||
// primitiveConversion returns true if the two types can be converted via a cast.
|
||||
func primitiveConversion(inType, outType reflect.Type) (string, bool) {
|
||||
switch inType.Kind() {
|
||||
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
|
||||
reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
|
||||
reflect.Float32, reflect.Float64:
|
||||
switch outType.Kind() {
|
||||
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
|
||||
reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
|
||||
reflect.Float32, reflect.Float64:
|
||||
return outType.Name(), true
|
||||
}
|
||||
}
|
||||
return "", false
|
||||
}
|
||||
|
||||
func (g *conversionGenerator) generateConversionsBetween(inType, outType reflect.Type) error {
|
||||
existingConversion := g.scheme.Converter().HasConversionFunc(inType, outType) && g.scheme.Converter().HasConversionFunc(outType, inType)
|
||||
|
||||
@ -126,6 +142,10 @@ func (g *conversionGenerator) generateConversionsBetween(inType, outType reflect
|
||||
return nil
|
||||
}
|
||||
|
||||
if _, ok := primitiveConversion(inType, outType); ok {
|
||||
return nil
|
||||
}
|
||||
|
||||
if inType.Kind() != outType.Kind() {
|
||||
if existingConversion {
|
||||
return nil
|
||||
|
Loading…
Reference in New Issue
Block a user