Hi,

Someone please apply this patch (too simple for pull request):

diff --git a/Cython/Compiler/ExprNodes.py b/Cython/Compiler/ExprNodes.py
index 0406fad..640d002 100755
--- a/Cython/Compiler/ExprNodes.py
+++ b/Cython/Compiler/ExprNodes.py
@@ -4993,7 +4993,7 @@ class AttributeNode(ExprNode):
           # creates a corresponding NameNode and returns it, otherwise
           # returns None.
           type = self.obj.analyse_as_extension_type(env)
-        if type:
+        if type and type.scope:
               entry = type.scope.lookup_here(self.attribute)
               if entry and entry.is_cmethod:
                   if type.is_builtin_type:

It fixes CompilerCrash (None does not have "lookup_here" method)
that I have observed on two occasions:
1) cdef class Name; cimport Name; Name.attr
2) from X cimport Name; Name.attr # cimport_from_pyx is active, Name is a class with errors

Makes me wonder if ErrorScope should be introduced to avoid None scope checks.


Best regards,
Nikita Nemkin
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to