tests: clean and complete test_ffi_c_operators
authorJean Privat <jean@pryen.org>
Fri, 24 Apr 2015 07:50:09 +0000 (14:50 +0700)
committerJean Privat <jean@pryen.org>
Fri, 24 Apr 2015 07:50:09 +0000 (14:50 +0700)
thanks nitpretty!

Signed-off-by: Jean Privat <jean@pryen.org>

tests/sav/test_ffi_c_operators.res
tests/test_ffi_c_operators.nit

index 893e1ea..e33ddb5 100644 (file)
@@ -1,10 +1,14 @@
+test_ffi_c_operators.nit:139,7--15: Warning: expression is not null, since it is a `A`.
 11
+123
 9
+-123
 22
 3
 false
 false
 false
+false
 true
 3
 4096
@@ -22,7 +26,9 @@ true
 true
 32
 8
+7
+5
+2
+-4
 52
 456
-123
--123
index 5261b5e..80a3025 100644 (file)
 # limitations under the License.
 
 class A
-       var value : Int
+       var value: Int
 
-       init ( value : Int ) do self.value = value
+       init(value: Int) do self.value = value
 
-       fun +( other : A ) : A import value, A `{
+       fun +(other: A): A import value, A `{
                int s = A_value( recv );
                int o = A_value( other );
 
@@ -31,7 +31,7 @@ class A
                return new_A(+s);
        `}
 
-       fun -( other : A ) : A import value, A `{
+       fun -(other: A): A import value, A `{
                int s = A_value( recv );
                int o = A_value( other );
 
@@ -43,19 +43,19 @@ class A
                return new_A(-s);
        `}
 
-       fun *( by : Int ) : A import value, A `{
+       fun *(by: Int): A import value, A `{
                int s = A_value( recv );
 
                return new_A( s * by );
        `}
 
-       fun /( by : Int ) : A import value, A `{
+       fun /(by: Int): A import value, A `{
                int s = A_value( recv );
 
                return new_A( s / by );
        `}
 
-       redef fun ==( other ) import value, nullable Object.as(A) `{
+       redef fun ==(other) import value, nullable Object.as(A) `{
                if ( nullable_Object_is_a_A( other ) &&
                         A_value( nullable_Object_as_A(other) ) == A_value( recv ) )
                        return 1;
@@ -63,112 +63,114 @@ class A
                        return 0;
        `}
 
-       fun %( other : A ) : A import value, A `{
+       fun %(other: A): A import value, A `{
                return new_A( A_value( recv ) % A_value( other ) );
        `}
 
-#      fun +=( other : A ) : A import value, value=, A `{
-#              int new_val = A_value( recv ) + A_value( other );
-#              A_value__assign( recv, new_val );
-#              return new_A( new_val );
-#      `}
-
-#      fun -=( other : A ) : A import +=, A, value `{
-#              A inv_other = new_A( -1*A_value( other ) );
-#              return A__plus_equal( recv, int_other );
-#      `}
-
-       fun <=>( other : A ) : A import value, A `{
+       fun <=>(other: A): A import value, A `{
                return new_A( A_value( recv )* 1024 );
        `}
 
-#      fun @( other : A ) : A import value, A `{
-#              return new_A( A_value( recv )* 1000 );
-#      `}
-
-       fun >( other : A ) : Bool import value `{
+       fun >(other: A): Bool import value `{
                return A_value( recv ) > A_value( other );
        `}
 
-       fun <( other : A ) : Bool import value `{
+       fun <(other: A): Bool import value `{
                return A_value( recv ) < A_value( other );
        `}
 
-       fun >=( other : A ) : Bool import value `{
+       fun >=(other: A): Bool import value `{
                return A_value( recv ) >= A_value( other );
        `}
 
-       fun <=( other : A ) : Bool import value `{
+       fun <=(other: A): Bool import value `{
                return A_value( recv ) <= A_value( other );
        `}
 
-       fun >>( other : A ): A import value, value=, A `{
+       fun >>(other: A): A import value, value=, A `{
                int new_val = A_value( recv ) >> A_value( other );
-               A_value__assign( recv, new_val );
-               return recv;
+               return new_A(new_val);
        `}
 
-       fun <<( other : A ): A import value, A `{
+       fun <<(other: A): A import value, A `{
                int new_val = A_value( recv ) << A_value( other );
-               A_value__assign( recv, new_val );
-               return recv;
+               return new_A(new_val);
+       `}
+
+       fun |(other: A): A import value, A `{
+               int new_val = A_value( recv ) | A_value( other );
+               return new_A(new_val);
+       `}
+
+       fun ^(other: A): A import value, A `{
+               int new_val = A_value( recv ) ^ A_value( other );
+               return new_A(new_val);
+       `}
+
+       fun ~: A import value, A `{
+               int new_val = ~A_value( recv );
+               return new_A(new_val);
        `}
 
-       fun []( index : Int ) : A import A `{
+       fun &(other: A): A import value, A `{
+               int new_val = A_value( recv ) & A_value( other );
+               return new_A(new_val);
+       `}
+
+       fun [](index: Int): A import A `{
                return new_A( index );
        `}
 
-       fun []=( index : Int, value : A ) : A import A `{
+       fun []=(index: Int, value: A): A import A `{
                return new_A( index + A_value( value ) );
        `}
 
        redef fun to_s do return value.to_s
 end
 
-print new A( 1 ) + new A( 10 ) # 11
-print new A( 10 ) - new A( 1 ) # 9
+print new A(1) + new A(10) # 11
+print +new A(123)
+print new A(10) - new A(1) # 9
+print -new A(123)
 
-print new A( 2 ) * 11 # 22
-print new A( 33 ) / 11 # 3
+print new A(2) * 11 # 22
+print new A(33) / 11 # 3
 
-#print new A( 44 ) == null # false
-print new A( 55 ) == 55 # false
-print new A( 33 ) == new A( 11 ) # false
-print new A( 22 ) == new A( 77 ) # false
-print new A( 11 ) == new A( 11 ) # true
+print new A(44) == null # false
+print new A(55) == 55 # false
+print new A(33) == new A(11) # false
+print new A(22) == new A(77) # false
+print new A(11) == new A(11) # true
 
-print new A( 147 ) % new A( 12 ) # 3
-print new A( 4 ) <=> new A( 123 ) # 4096
+print new A(147) % new A(12) # 3
+print new A(4) <=> new A(123) # 4096
 
-print new A( 1 ) < new A( 100 ) # true
-print new A( 100 ) < new A( 100 ) # false
-print new A( 100 ) < new A( 1 ) # false
+print new A(1) < new A(100) # true
+print new A(100) < new A(100) # false
+print new A(100) < new A(1) # false
 
-print new A( 1 ) > new A( 100 ) # false
-print new A( 100 ) > new A( 100 ) # false
-print new A( 100 ) > new A( 1 ) # true
+print new A(1) > new A(100) # false
+print new A(100) > new A(100) # false
+print new A(100) > new A(1) # true
 
-print new A( 1 ) <= new A( 100 ) # true
-print new A( 100 ) <= new A( 100 ) # true
-print new A( 100 ) <= new A( 1 ) # false
+print new A(1) <= new A(100) # true
+print new A(100) <= new A(100) # true
+print new A(100) <= new A(1) # false
 
-print new A( 1 ) >= new A( 100 ) # false
-print new A( 100 ) >= new A( 100 ) # true
-print new A( 100 ) >= new A( 1 ) # true
+print new A(1) >= new A(100) # false
+print new A(100) >= new A(100) # true
+print new A(100) >= new A(1) # true
 
-var x = new A( 1 )
-x = x << new A( 5 )
-print x # 32
+print new A(1) << new A(5) # 32
+print new A(32) >> new A(2) # 8
 
-var y = new A( 32 )
-y = y >> new A( 2 )
-print y # 8
+print new A(3) | new A(6) # 7
+print new A(3) ^ new A(6) # 5
+print new A(3) & new A(6) # 2
+print ~new A(3) # -4
 
-var a = new A( 456 )
-print a[ 52 ] # 52
+var a = new A(456)
+print a[52] # 52
 
-a[ 74 ] = new A( 96 )
+a[74] = new A(96)
 print a # 96
-
-print(+(new A(123)))
-print(-(new A(123)))