src: implement unary plus
[nit.git] / src / nitni / nitni_base.nit
index 391a2b0..5e3b7a6 100644 (file)
@@ -30,6 +30,8 @@ redef class MMethod
 
                if nit_name == "+" then return "_plus"
                if nit_name == "-" then return "_minus"
+               if nit_name == "unary -" then return "_unary_minus"
+               if nit_name == "unary +" then return "_unary_plus"
                if nit_name == "*" then return "_star"
                if nit_name == "/" then return "_slash"
                if nit_name == "%" then return "_percent"
@@ -50,11 +52,6 @@ redef class MMethod
        end
 end
 
-redef class MModule
-       # Mangled name of this module in C
-       fun cname: String do return name
-end
-
 redef class MMethodDef
        # Name of the function to callback this method from C,
        # also used in other functions names used for this method.
@@ -89,7 +86,7 @@ redef class MClassType
                if name == "Bool" then return "int"
                if name == "Char" then return "char"
                if name == "Float" then return "double"
-               if name == "Int" then return "int"
+               if name == "Int" then return "long"
                if name == "NativeString" then return "char*"
                if mclass.kind == extern_kind then
                        var ctype = mclass.ctype
@@ -104,7 +101,7 @@ redef class MClassType
                if name == "Bool" then return "int"
                if name == "Char" then return "char"
                if name == "Float" then return "double"
-               if name == "Int" then return "int"
+               if name == "Int" then return "long"
                if name == "NativeString" then return "char*"
                if mclass.kind == extern_kind then return "void*"
                return "struct nitni_instance *"