mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 09:49:50 +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
|
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 {
|
func (g *conversionGenerator) generateConversionsBetween(inType, outType reflect.Type) error {
|
||||||
existingConversion := g.scheme.Converter().HasConversionFunc(inType, outType) && g.scheme.Converter().HasConversionFunc(outType, inType)
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if _, ok := primitiveConversion(inType, outType); ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
if inType.Kind() != outType.Kind() {
|
if inType.Kind() != outType.Kind() {
|
||||||
if existingConversion {
|
if existingConversion {
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user