[Issue 6940] New: immutable(int*)* and int** do not combine
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Sat Nov 12 13:35:36 PST 2011
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=6940
           Summary: immutable(int*)* and int** do not combine
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: timon.gehr at gmx.ch
--- Comment #0 from timon.gehr at gmx.ch 2011-11-12 13:34:54 PST ---
immutable(int*)* and int** do not combine even though const(int*)* would be a
common type:
immutable(int*)*    x;
int**               y;
static assert(is(typeof(x) : const(int*)*)); // ok
static assert(is(typeof(y) : const(int*)*)); // ok
static assert(is(typeof(1?x:y)));            // fail
Compare to dynamic arrays:
immutable(int[])[]  a;
int[][]             b;
static assert(is(typeof(a) : const(int[])[])); // ok
static assert(is(typeof(b) : const(int[])[])); // ok
static assert(is(typeof(1?a:b)));              // ok
(why on earth do the two cases use different logic?)
Therefore the following could be used as a workaround:
static assert(is(typeof((1?x[0..1]:y[0..1]).ptr)));
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
    
    
More information about the Digitalmars-d-bugs
mailing list