tests: clean some .skip files (use some UNDEFINED .res)
[nit.git] / lib / standard / kernel.nit
index ce6b69e..fb84d2e 100644 (file)
@@ -239,6 +239,14 @@ interface Numeric
 
        # The value of zero in the domain of `self`
        fun zero: OTHER is abstract
+
+       # The value of `val` in the domain of `self`
+       #
+       #     assert 1.0.value_of(2) == 2.0
+       #     assert 1.0.value_of(2.0) == 2.0
+       #     assert 1.value_of(2) == 2
+       #     assert 1.value_of(2.0) == 2
+       fun value_of(val: Numeric): OTHER is abstract
 end
 
 ###############################################################################
@@ -293,6 +301,7 @@ universal Float
        redef fun to_f do return self
 
        redef fun zero do return 0.0
+       redef fun value_of(val) do return val.to_f
 end
 
 # Native integer numbers.
@@ -325,6 +334,7 @@ universal Int
        fun %(i: Int): Int is intern
 
        redef fun zero do return 0
+       redef fun value_of(val) do return val.to_i
 
        # `i` bits shift fo the left (aka <<)
        #
@@ -600,9 +610,9 @@ universal Char
 end
 
 # Pointer classes are used to manipulate extern C structures.
-extern Pointer
+extern class Pointer
        # Is the address behind this Object at NULL?
-       fun address_is_null: Bool `{ return recv == NULL; `}
+       fun address_is_null: Bool is extern "address_is_null"
 
        # Free the memory pointed by this pointer
        fun free `{ free(recv); `}