Pattern matching is-expressions
Stefan Koch
uplink.coder at googlemail.com
Fri Aug 21 00:16:41 UTC 2020
On Wednesday, 19 August 2020 at 13:07:40 UTC, Stefan Koch wrote:
>
> And I think I have found a way to support them within the
> typefunctions.
> is(T S == super) would become
> auto f(alias T)
> {
> static literal bool r = is(T S == super);
> // here alias S = (r ? SuperTupleOf(T) : ErrorType) is
> automatically declared.
> // where ErrorType is the value for which `!is(ErrorType)`
> is true
> }
>
Back to the drawing board, it turns out my initial fears were
appropriate.
Making an identifier into a variable declaration depending on
whether you are in a type function or not; Is a funky thing to do.
I'll to go with additional __traits.
Besides I do think that __traits(getSuperType, T)
does look more readable than is(T S == super)
even though it does not give you the "symbolic equation" feeling
:)
More information about the Digitalmars-d
mailing list