@@ -1375,10 +1375,7 @@ mkExp (SOp LStrLen [arg]) =
13751375mkExp (SOp (LIntFloat ity) [arg]) =
13761376 mkPrimitiveCast (intTyToClass ity) doubleType arg
13771377mkExp (SOp (LFloatInt ity) [arg]) =
1378− mkPrimitiveCast doubleType (intTyToClass ity) arg
1379−mkExp (SOp (LIntStr ITBig) [arg]) =
1380− (\ var -> InstanceCreation [] bigIntegerType [var] Nothing)
1381− <$> mkVarAccess (Just stringType) arg
1378+ mkSignedExt (intTyToMethod ity) doubleType (intTyToClass ity) arg
13821379mkExp (SOp (LIntStr ity) [arg]) =
13831380 mkToString (intTyToClass ity) arg
13841381mkExp (SOp (LStrInt ity) [arg]) =
@@ -1486,14 +1483,7 @@ mkExp (SOp (LSExt from to) [var])
14861483 = mkSignedExt (intTyToMethod to) (intTyToClass from) (intTyToClass to) var
14871484mkExp (SOp (LTrunc from to) [var])
14881485 | intTyWidth from > intTyWidth to
1489− = (\ var -> MethodInv $
1490− TypeMethodCall (J.Name [intTyToIdent to])
1491− []
1492− (Ident "valueOf")
1493− [ MethodInv
1494− $ PrimaryMethodCall var [] (Ident (intTyToMethod to)) [] ]
1495− )
1496− <$> mkVarAccess (Just $ intTyToClass from) var
1486+ = mkSignedExt (intTyToMethod to) (intTyToClass from) (intTyToClass to) var
14971487mkExp (SOp LFExp [arg]) = mkMathFun "exp" arg
14981488mkExp (SOp LFLog [arg]) = mkMathFun "log" arg
14991489mkExp (SOp LFSin [arg]) = mkMathFun "sin" arg