@@ -772,12 +772,7 @@ impl ops::Add<Value> for Value {
772
772
. ok_or ( ExecutionError :: IntegerOverflow ( "add" , l. into ( ) , r. into ( ) ) )
773
773
. map ( Value :: UInt ) ,
774
774
775
- // Float matrix
776
775
( Value :: Float ( l) , Value :: Float ( r) ) => Value :: Float ( l + r) . into ( ) ,
777
- ( Value :: Int ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 + r) . into ( ) ,
778
- ( Value :: Float ( l) , Value :: Int ( r) ) => Value :: Float ( l + r as f64 ) . into ( ) ,
779
- ( Value :: UInt ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 + r) . into ( ) ,
780
- ( Value :: Float ( l) , Value :: UInt ( r) ) => Value :: Float ( l + r as f64 ) . into ( ) ,
781
776
782
777
( Value :: List ( l) , Value :: List ( r) ) => {
783
778
Value :: List ( l. iter ( ) . chain ( r. iter ( ) ) . cloned ( ) . collect :: < Vec < _ > > ( ) . into ( ) ) . into ( )
@@ -788,17 +783,6 @@ impl ops::Add<Value> for Value {
788
783
new. push_str ( & r) ;
789
784
Value :: String ( new. into ( ) ) . into ( )
790
785
}
791
- // Merge two maps should overwrite keys in the left map with the right map
792
- ( Value :: Map ( l) , Value :: Map ( r) ) => {
793
- let mut new = HashMap :: default ( ) ;
794
- for ( k, v) in l. map . iter ( ) {
795
- new. insert ( k. clone ( ) , v. clone ( ) ) ;
796
- }
797
- for ( k, v) in r. map . iter ( ) {
798
- new. insert ( k. clone ( ) , v. clone ( ) ) ;
799
- }
800
- Value :: Map ( Map { map : Arc :: new ( new) } ) . into ( )
801
- }
802
786
// todo! Check for integer overflow in duration math
803
787
#[ cfg( feature = "chrono" ) ]
804
788
( Value :: Duration ( l) , Value :: Duration ( r) ) => Value :: Duration ( l + r) . into ( ) ,
@@ -829,12 +813,8 @@ impl ops::Sub<Value> for Value {
829
813
. ok_or ( ExecutionError :: IntegerOverflow ( "sub" , l. into ( ) , r. into ( ) ) )
830
814
. map ( Value :: UInt ) ,
831
815
832
- // Float matrix
833
816
( Value :: Float ( l) , Value :: Float ( r) ) => Value :: Float ( l - r) . into ( ) ,
834
- ( Value :: Int ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 - r) . into ( ) ,
835
- ( Value :: Float ( l) , Value :: Int ( r) ) => Value :: Float ( l - r as f64 ) . into ( ) ,
836
- ( Value :: UInt ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 - r) . into ( ) ,
837
- ( Value :: Float ( l) , Value :: UInt ( r) ) => Value :: Float ( l - r as f64 ) . into ( ) ,
817
+
838
818
// todo: implement checked sub for these over-flowable operations
839
819
#[ cfg( feature = "chrono" ) ]
840
820
( Value :: Duration ( l) , Value :: Duration ( r) ) => Value :: Duration ( l - r) . into ( ) ,
@@ -870,12 +850,7 @@ impl ops::Div<Value> for Value {
870
850
. ok_or ( ExecutionError :: DivisionByZero ( l. into ( ) ) )
871
851
. map ( Value :: UInt ) ,
872
852
873
- // Float matrix
874
853
( Value :: Float ( l) , Value :: Float ( r) ) => Value :: Float ( l / r) . into ( ) ,
875
- ( Value :: Int ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 / r) . into ( ) ,
876
- ( Value :: Float ( l) , Value :: Int ( r) ) => Value :: Float ( l / r as f64 ) . into ( ) ,
877
- ( Value :: UInt ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 / r) . into ( ) ,
878
- ( Value :: Float ( l) , Value :: UInt ( r) ) => Value :: Float ( l / r as f64 ) . into ( ) ,
879
854
880
855
( left, right) => Err ( ExecutionError :: UnsupportedBinaryOperator (
881
856
"div" , left, right,
@@ -900,12 +875,7 @@ impl ops::Mul<Value> for Value {
900
875
. ok_or ( ExecutionError :: IntegerOverflow ( "mul" , l. into ( ) , r. into ( ) ) )
901
876
. map ( Value :: UInt ) ,
902
877
903
- // Float matrix
904
878
( Value :: Float ( l) , Value :: Float ( r) ) => Value :: Float ( l * r) . into ( ) ,
905
- ( Value :: Int ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 * r) . into ( ) ,
906
- ( Value :: Float ( l) , Value :: Int ( r) ) => Value :: Float ( l * r as f64 ) . into ( ) ,
907
- ( Value :: UInt ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 * r) . into ( ) ,
908
- ( Value :: Float ( l) , Value :: UInt ( r) ) => Value :: Float ( l * r as f64 ) . into ( ) ,
909
879
910
880
( left, right) => Err ( ExecutionError :: UnsupportedBinaryOperator (
911
881
"mul" , left, right,
@@ -935,13 +905,6 @@ impl ops::Rem<Value> for Value {
935
905
. ok_or ( ExecutionError :: RemainderByZero ( l. into ( ) ) )
936
906
. map ( Value :: UInt ) ,
937
907
938
- // Float matrix
939
- ( Value :: Float ( l) , Value :: Float ( r) ) => Value :: Float ( l % r) . into ( ) ,
940
- ( Value :: Int ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 % r) . into ( ) ,
941
- ( Value :: Float ( l) , Value :: Int ( r) ) => Value :: Float ( l % r as f64 ) . into ( ) ,
942
- ( Value :: UInt ( l) , Value :: Float ( r) ) => Value :: Float ( l as f64 % r) . into ( ) ,
943
- ( Value :: Float ( l) , Value :: UInt ( r) ) => Value :: Float ( l % r as f64 ) . into ( ) ,
944
-
945
908
( left, right) => Err ( ExecutionError :: UnsupportedBinaryOperator (
946
909
"rem" , left, right,
947
910
) ) ,
0 commit comments