Commit e896d20f authored by Nikita Nemkin's avatar Nikita Nemkin Committed by Robert Bradshaw

Fixed explicit coercion of ctypedef'ed C types.

parent 5b8cccd2
......@@ -295,9 +295,9 @@ def create_typedef_type(name, base_type, cname, is_external=0):
class CTypedefType(BaseType):
#
# Pseudo-type defined with a ctypedef statement in a
# 'cdef extern from' block. Delegates most attribute
# lookups to the base type. ANYTHING NOT DEFINED
# HERE IS DELEGATED!
# 'cdef extern from' block.
# Delegates most attribute lookups to the base type.
# (Anything not defined here or in the BaseType is delegated.)
#
# qualified_name string
# typedef_name string
......@@ -439,6 +439,9 @@ class CTypedefType(BaseType):
def py_type_name(self):
return self.typedef_base_type.py_type_name()
def can_coerce_to_pyobject(self, env):
return self.typedef_base_type.can_coerce_to_pyobject(env)
class MemoryViewSliceType(PyrexType):
......@@ -774,10 +777,9 @@ class MemoryViewSliceType(PyrexType):
class BufferType(BaseType):
#
# Delegates most attribute
# lookups to the base type. ANYTHING NOT DEFINED
# HERE IS DELEGATED!
# Delegates most attribute lookups to the base type.
# (Anything not defined here or in the BaseType is delegated.)
#
# dtype PyrexType
# ndim int
# mode str
......
ctypedef char* LPSTR
def typedef_delegation():
"""
>>> typedef_delegation()
"""
cdef LPSTR c_str = b"ascii"
assert <bytes>c_str == b"ascii"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment