@@ -242,6 +242,9 @@ func (maybeSelf MaybeDef) ToInt32() (int32, error) {
242242 return int32 (0 ), err
243243 case int :
244244 val , err := maybeSelf .ToInt ()
245+ if val > math .MaxInt32 {
246+ return 0 , ErrConversionSizeOverflow
247+ }
245248 return int32 (val ), err
246249 case int32 :
247250 return (ref ).(int32 ), nil
@@ -313,26 +316,26 @@ func (maybeSelf MaybeDef) ToBool() (bool, error) {
313316 ref := maybeSelf .ref
314317 switch (ref ).(type ) {
315318 default :
316- return bool ( false ) , errors .New ("unsupported" )
319+ return false , errors .New ("unsupported" )
317320 case string :
318321 return strconv .ParseBool (maybeSelf .ToString ())
319322 case bool :
320323 return (ref ).(bool ), nil
321324 case int :
322325 val , err := maybeSelf .ToInt ()
323- return bool ( val != 0 ) , err
326+ return val != 0 , err
324327 case int32 :
325328 val , err := maybeSelf .ToInt32 ()
326- return bool ( val != 0 ) , err
329+ return val != 0 , err
327330 case int64 :
328331 val , err := maybeSelf .ToInt64 ()
329- return bool ( val != 0 ) , err
332+ return val != 0 , err
330333 case float32 :
331334 val , err := maybeSelf .ToFloat32 ()
332- return bool ( val != 0 ) , err
335+ return val != 0 , err
333336 case float64 :
334337 val , err := maybeSelf .ToFloat64 ()
335- return bool ( val != 0 ) , err
338+ return val != 0 , err
336339 }
337340}
338341
0 commit comments