@@ -32,19 +32,19 @@ private static object FastNew(CodeContext/*!*/ context, object o, int @base = 10
3232 case Extensible < int > ei :
3333 return TryInvokeInt ( context , o , out var value ) ? value : ei . Value ;
3434 case BigInteger val :
35- return val . IsInt32 ( ) ? ( int ) val : o ;
36- case Extensible < BigInteger > el :
37- return TryInvokeInt ( context , o , out result ) ? result : el . Value . IsInt32 ( ) ? ( int ) el . Value : el . Value ;
35+ return val . IsInt32 ( ) ? ( object ) ( int ) val : o ;
36+ case Extensible < BigInteger > ebi :
37+ return TryInvokeInt ( context , o , out result ) ? result : ebi . Value . IsInt32 ( ) ? ( object ) ( int ) ebi . Value : ebi . Value ;
3838 case float f :
3939 return DoubleOps . __int__ ( f ) ;
4040 case long val :
41- return int . MinValue <= val && val <= int . MaxValue ? ( int ) val : ( BigInteger ) val ;
41+ return int . MinValue <= val && val <= int . MaxValue ? ( object ) ( int ) val : ( BigInteger ) val ;
4242 case uint val :
43- return val <= int . MaxValue ? ( int ) val : ( BigInteger ) val ;
43+ return val <= int . MaxValue ? ( object ) ( int ) val : ( BigInteger ) val ;
4444 case ulong val :
45- return val <= int . MaxValue ? ( int ) val : ( BigInteger ) val ;
45+ return val <= int . MaxValue ? ( object ) ( int ) val : ( BigInteger ) val ;
4646 case decimal val :
47- return int . MinValue <= val && val <= int . MaxValue ? ( int ) val : ( BigInteger ) val ;
47+ return int . MinValue <= val && val <= int . MaxValue ? ( object ) ( int ) val : ( BigInteger ) val ;
4848 case Enum e :
4949 return ( ( IConvertible ) e ) . ToInt32 ( null ) ;
5050 case string s :
@@ -62,13 +62,13 @@ private static object FastNew(CodeContext/*!*/ context, object o, int @base = 10
6262 case int _:
6363 return result ;
6464 case BigInteger bi :
65- return bi . IsInt32 ( ) ? ( int ) bi : result ;
65+ return bi . IsInt32 ( ) ? ( object ) ( int ) bi : result ;
6666 case bool b :
6767 return BoolOps . __int__ ( b ) ; // Python 3.6: return the int value
6868 case Extensible < int > ei :
6969 return ei . Value ; // Python 3.6: return the int value
7070 case Extensible < BigInteger > ebi :
71- return ebi . Value . IsInt32 ( ) ? ( int ) ebi . Value : ebi . Value ; // Python 3.6: return the int value
71+ return ebi . Value . IsInt32 ( ) ? ( object ) ( int ) ebi . Value : ebi . Value ; // Python 3.6: return the int value
7272 default : {
7373 if ( TryInvokeInt ( context , result , out var intResult ) ) {
7474 return intResult ;
@@ -98,7 +98,7 @@ static bool TryInvokeInt(CodeContext context, object o, out object result) {
9898 return true ;
9999 case Extensible < BigInteger > ebi :
100100 Warn ( context , result ) ;
101- result = ebi . Value . IsInt32 ( ) ? ( int ) ebi . Value : ebi . Value ; // Python 3.6: return the int value
101+ result = ebi . Value . IsInt32 ( ) ? ( object ) ( int ) ebi . Value : ebi . Value ; // Python 3.6: return the int value
102102 return true ;
103103 default :
104104 throw PythonOps . TypeError ( "__int__ returned non-int (type {0})" , PythonTypeOps . GetName ( result ) ) ;
0 commit comments