Partial merge of trunk progress. Some tests still fail.
[cython.git] / Cython / Compiler / ExprNodes.py
index 27f0ccb9e86fd12de97b5718ddf5e3f11b020bde..d6669b5ea54320992c82f2005c5b3249fa8fbf0b 100755 (executable)
@@ -1239,7 +1239,8 @@ class NewExprNode(AtomicExprNode):
         if constructor is None:
             return_type = PyrexTypes.CFuncType(type, [])
             return_type = PyrexTypes.CPtrType(return_type)
-            type.scope.declare_cfunction(u'<init>', return_type, self.pos)
+            type.scope.declare_cfunction(
+                name = u'<init>', c_visibility = 'extern', type = return_type, pos = self.pos)
             constructor = type.scope.lookup(u'<init>')
         self.class_type = type
         self.entry = constructor
@@ -1331,7 +1332,8 @@ class NameNode(AtomicExprNode):
                 var_entry = entry.as_variable
                 if var_entry:
                     if var_entry.is_builtin and var_entry.is_const:
-                        var_entry = env.declare_builtin(var_entry.name, self.pos)
+                        var_entry = env.declare_builtin(
+                            name = var_entry.name, pos = self.pos)
                     node = NameNode(self.pos, name = self.name)
                     node.entry = var_entry
                     node.analyse_rvalue_entry(env)
@@ -1384,7 +1386,7 @@ class NameNode(AtomicExprNode):
                 type = unspecified_type
             else:
                 type = py_object_type
-            self.entry = env.declare_var(self.name, type, self.pos)
+            self.entry = env.declare_var(name = self.name, type = type, pos = self.pos)
         env.control_flow.set_state(self.pos, (self.name, 'initialized'), True)
         env.control_flow.set_state(self.pos, (self.name, 'source'), 'assignment')
         if self.entry.is_declared_generic:
@@ -1394,7 +1396,7 @@ class NameNode(AtomicExprNode):
         if self.entry is None:
             self.entry = env.lookup(self.name)
         if not self.entry:
-            self.entry = env.declare_builtin(self.name, self.pos)
+            self.entry = env.declare_builtin(name = self.name, pos = self.pos)
         if not self.entry:
             self.type = PyrexTypes.error_type
             return
@@ -3543,8 +3545,8 @@ class AttributeNode(ExprNode):
                 # Create a temporary entry describing the C method
                 # as an ordinary function.
                 ubcm_entry = Symtab.Entry(entry.name,
-                    "%s->%s" % (type.vtabptr_cname, entry.cname),
-                    entry.type)
+                    cname = '%s->%s' % (type.vtabptr_cname, entry.cname),
+                    type = entry.type)
                 ubcm_entry.is_cfunction = 1
                 ubcm_entry.func_cname = entry.func_cname
                 ubcm_entry.is_unbound_cmethod = 1