www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 3279] New: Type tuple comparison fails

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3279

           Summary: Type tuple comparison fails
           Product: D
           Version: 2.032
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: blocker
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: bartosz relisoft.com


I get this strange error message:

Error: incompatible types for (((long, int)) == ((long, int))): '(long, int)'
and '(long, int)'

when compiling this program:
----
import std.typetuple;

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

template snoC(T, alias List)
{
    alias TypeList!(List.toTuple, T) snoC;
}

static assert (snoC!(int, TypeList!(long)).toTuple == TypeTuple!(long, int));
----

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 01 2009
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3279


Don <clugdbug yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic
                 CC|                            |clugdbug yahoo.com.au
           Severity|blocker                     |major



This is a diagnostic bug. The error message is highly misleading. Even this
won't compile:

static assert (TypeTuple!(long, int) == TypeTuple!(long, int));

And it *shouldn't* compile, since they are types, not expressions, so they
can't be compared with ==. The code should be rewritten as:

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

which compiles. Downgrading from blocker to major.
While investigating this I found bug 3451.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 29 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3279




*** Issue 3278 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 11 2010
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3279


yebblies <yebblies gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|2.032                       |D1 & D2
           Keywords|                            |pull
           Platform|x86                         |All
                 CC|                            |yebblies gmail.com
         AssignedTo|nobody puremagic.com        |yebblies gmail.com
             Blocks|4239                        |
            Summary|Type tuple comparison fails |Confusing error message
                   |                            |when comparing types
           Severity|major                       |minor
         OS/Version|Windows                     |All



https://github.com/D-Programming-Language/dmd/pull/720

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Feb 14 2012
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3279




Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/d76645b7ec4f33b7ae60bd63cfc9bd54ca45b2b9


Issue 3279 - Confusing error message when comparing types

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Feb 17 2012