www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 20125] New: Different .stringof format for CT Sequences

https://issues.dlang.org/show_bug.cgi?id=20125

          Issue ID: 20125
           Summary: Different .stringof format for CT Sequences depending
                    on content
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: minor
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: simen.kjaras gmail.com

import std.meta;
static assert(AliasSeq!().stringof                 == "()");
static assert(AliasSeq!(1).stringof                == "tuple(1)");
static assert(AliasSeq!(1,2).stringof              == "tuple(1, 2)");
static assert(AliasSeq!(int).stringof              == "(int)");
static assert(AliasSeq!(int, int).stringof         == "(int, int)");
static assert(AliasSeq!(int, 2).stringof           == "tuple((int), 2)");
static assert(AliasSeq!(int, 2, int, int).stringof == "tuple((int), 2, (int),
(int))");

As we can see above, CT sequences containing at least one value has a "tuple"
prefix, while others don't. Not only that, but mixed sequences wrap every type
in (brackets).

--
Aug 12 2019