• da-woods's avatar
    Potential fix for GH issue #3203 · 1b5b0a51
    da-woods authored
    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
    1b5b0a51
ExprNodes.py 534 KB