Thread overview
[Issue 6269] aliasing in IsExpression doesn't work when used inside a template constraint
Jul 21, 2019
Basile-z
Jul 21, 2019
Basile-z
Aug 18, 2019
ag0aep6g
Mar 21, 2020
Basile-z
Sep 22, 2022
Nick Treleaven
Dec 17, 2022
Iain Buclaw
July 21, 2019
https://issues.dlang.org/show_bug.cgi?id=6269

Basile-z <b2.temp@gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |b2.temp@gmx.com

--- Comment #3 from Basile-z <b2.temp@gmx.com> ---
This not convenient to do because when the IsExpr is evaluated the scope that's provided is not the one for the function/aggregate body but the one of the parent. In the examples this matches to the global scope. But otherwise that's a good idea.

--
July 21, 2019
https://issues.dlang.org/show_bug.cgi?id=6269

Basile-z <b2.temp@gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|rejects-valid               |
           Severity|normal                      |enhancement

--
August 18, 2019
https://issues.dlang.org/show_bug.cgi?id=6269

ag0aep6g <ag0aep6g@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason.james.house@gmail.com

--- Comment #4 from ag0aep6g <ag0aep6g@gmail.com> ---
*** Issue 3750 has been marked as a duplicate of this issue. ***

--
March 21, 2020
https://issues.dlang.org/show_bug.cgi?id=6269

Basile-z <b2.temp@gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|b2.temp@gmx.com             |

--
September 22, 2022
https://issues.dlang.org/show_bug.cgi?id=6269

Nick Treleaven <nick@geany.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nick@geany.org

--- Comment #5 from Nick Treleaven <nick@geany.org> ---
I thought fixing this might break the `static if` workaround, but it seems fine at least with a template specialization:

//struct S(T)
    //if (is(T : U*, U))
struct S(T : U*, U)
{
    static if (is(T : U*, U)){} // no error though U exists
    pragma(msg, U);
}

alias A = S!(int*);

I think because U already exists, the `is` in the `static if` does not try to introduce another U.

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=6269

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P2                          |P4

--