Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
# cython: language=c++ # cython: language_level=3str from libcpp.typeinfo cimport type_info from cython.operator cimport typeid cdef fused C: int object cdef const type_info* i32 = &typeid(int) cdef f(C x): cdef const type_info* a = &typeid(C) return a == i32 def g(x): return (x, f(x))
Gets the specialized type if possible from NameNode.analyse_as_type This does introduce a potential new bug: ``` cimport cython just_float = cython.fused_type(float) cdef OK1(just_float x): return just_float in floating cdef fail1(just_float x, floating y): return just_float in floating cdef fail2(floating x): return floating in floating def show(): """ >>> show() True True True True """ print(OK1(1.0)) print(fail1(1.0, 2.0)) print(fail1[float, double](1.0, 2.0)) print(fail2[float](1.0)) ``` fail1 and fail2 work before this patch but fail with it. It isn't clear to me if this should actually be considered a bug. It works in both versions with `cython.floating`, which possibly suggests analyse_as_type in AttributeNode should also be changed
It's generally helpful in bug reports to also show the error message that results, as well as other relevant information, such as the code that was generated. Providing this information reduces the time that others need to plan to invest in order to investigate the issue. Basically, when I have limited time and an issue seems more costly to look into than what I currently can (or want to) invest, I look at other issues first.