rename `NativeString` to `CString`
[nit.git] / src / compiler / global_compiler.nit
index b0d5c27..7b07847 100644 (file)
@@ -151,7 +151,7 @@ class GlobalCompiler
                if self.classids.has_key(mtype) then
                        return self.classids[mtype]
                end
-               print "No classid for {mtype}"
+               print_error "No classid for {mtype}"
                abort
        end
 
@@ -330,7 +330,7 @@ class GlobalCompilerVisitor
        redef fun unbox_extern(value, mtype)
        do
                if mtype isa MClassType and mtype.mclass.kind == extern_kind and
-                  mtype.mclass.name != "NativeString" then
+                  mtype.mclass.name != "CString" then
                        var res = self.new_var_extern(mtype)
                        self.add "{res} = ((struct {mtype.c_name}*){value})->value; /* unboxing {value.mtype} */"
                        return res
@@ -342,7 +342,7 @@ class GlobalCompilerVisitor
        redef fun box_extern(value, mtype)
        do
                if not mtype isa MClassType or mtype.mclass.kind != extern_kind or
-                       mtype.mclass.name == "NativeString" then return value
+                       mtype.mclass.name == "CString" then return value
 
                var valtype = value.mtype.as(MClassType)
                var res = self.new_var(mtype)
@@ -426,11 +426,6 @@ class GlobalCompilerVisitor
                self.add("{recv}[{i}]={val};")
        end
 
-       redef fun calloc_array(ret_type, arguments)
-       do
-               self.ret(self.new_expr("NEW_{ret_type.c_name}({arguments[1]})", ret_type))
-       end
-
        redef fun send(m, args)
        do
                var types = self.collect_types(args.first)
@@ -448,6 +443,10 @@ class GlobalCompilerVisitor
                if args.first.mtype.is_c_primitive then
                        var mclasstype = args.first.mtype.as(MClassType)
                        if not self.compiler.runtime_type_analysis.live_types.has(mclasstype) then
+                               self.add("/* skip, dead class {mclasstype} */")
+                               return res
+                       end
+                       if not mclasstype.has_mproperty(self.compiler.mainmodule, m) then
                                self.add("/* skip, no method {m} */")
                                return res
                        end
@@ -524,7 +523,7 @@ class GlobalCompilerVisitor
        fun check_valid_reciever(recvtype: MClassType)
        do
                if self.compiler.runtime_type_analysis.live_types.has(recvtype) or recvtype.mclass.name == "Object" then return
-               print "{recvtype} is not a live type"
+               print_error "{recvtype} is not a live type"
                abort
        end