Manuel K�nig <> changed:

           What    |Removed                     |Added
                 CC|                            |
         OS/Version|Windows                     |All
           Severity|critical                    |normal

--- Comment #1 from Manuel K�nig <> 2010-10-11 10:14:51 PDT ---
Reduced testcase:

template TypeTuple(TList...)
    alias TList TypeTuple;

template TypeList(T...)
    alias T toTuple;

static assert (TypeList!().toTuple == TypeTuple!());

Actually dmd is right to reject the code, but it's bad at conveying the reason.
You're trying to compare types with a '==' expression directly, which is not
allowed. Use is(A==B), instead, where A,B are types (documented), or
type-tuples (I think that it works for type-tuples is undocumented, but
type-tuples are treated like types in the frontend). These asserts compile and
the tests pass:

static assert (is(TypeList!().toTuple == TypeTuple!()));
static assert (is(TypeList!(int).toTuple == TypeTuple!(int)));

You can see it has nothing to do with empty tuples being a special case or so.
But I would like dmd to produce an error message like this:

Error: can not compare types with '==', use is(TypeA==TypeB) instead

I changed importance to normal, because it's just a bad error message. I see
you have wrong-code in the keywords list, so maybe you knew that already?

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to