Some more unicode compile crash fixes.
authorRobert Bradshaw <robertwb@math.washington.edu>
Fri, 23 May 2008 10:28:14 +0000 (03:28 -0700)
committerRobert Bradshaw <robertwb@math.washington.edu>
Fri, 23 May 2008 10:28:14 +0000 (03:28 -0700)
Cython/Compiler/Nodes.py
Cython/Compiler/Symtab.py
tests/compile/dotted_cimport.pyx [new file with mode: 0644]
tests/compile/dotted_cimport_submodule/a.pxd [new file with mode: 0644]

index 8d0f2e062b23a7f86f77963d628c6b8d6c0c3907..db1370a061802d5eb5337229c6ceac7abd602837 100644 (file)
@@ -3610,7 +3610,7 @@ class CImportStatNode(StatNode):
             return
         module_scope = env.find_module(self.module_name, self.pos)
         if "." in self.module_name:
-            names = self.module_name.split(".")
+            names = [EncodedString(name) for name in self.module_name.split(".")]
             top_name = names[0]
             top_module_scope = env.context.find_submodule(top_name)
             module_scope = top_module_scope
index f1a010392511fa18e5b58ccd3359cb8d91dbd6d8..ba2e9d8cc2e4b47e2e8d1a26b62431e489bb30bc 100644 (file)
@@ -1263,7 +1263,7 @@ class CClassScope(ClassScope):
         if name == "__new__":
             warning(pos, "__new__ method of extension type will change semantics "
                 "in a future version of Pyrex and Cython. Use __cinit__ instead.")
-            name = "__cinit__"
+            name = Utils.EncodedString("__cinit__")
         entry = self.declare_var(name, py_object_type, pos)
         special_sig = get_special_method_signature(name)
         if special_sig:
@@ -1280,7 +1280,7 @@ class CClassScope(ClassScope):
     
     def lookup_here(self, name):
         if name == "__new__":
-            name = "__cinit__"
+            name = Utils.EncodedString("__cinit__")
         return ClassScope.lookup_here(self, name)
     
     def declare_cfunction(self, name, type, pos,
diff --git a/tests/compile/dotted_cimport.pyx b/tests/compile/dotted_cimport.pyx
new file mode 100644 (file)
index 0000000..c936267
--- /dev/null
@@ -0,0 +1,2 @@
+cimport dotted_cimport_submodule.a
+import dotted_cimport_submodule.b
diff --git a/tests/compile/dotted_cimport_submodule/a.pxd b/tests/compile/dotted_cimport_submodule/a.pxd
new file mode 100644 (file)
index 0000000..e69de29