www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 13658] New: Array length type is not size_t


          Issue ID: 13658
           Summary: Array length type is not size_t
           Product: D
           Version: D2
          Hardware: All
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: DMD
          Assignee: nobody puremagic.com
          Reporter: markisaa umich.edu

According to the language reference at: http://dlang.org/arrays, the .length
property of an array is meant to return a value with type size_t. That is not
the case on Windows with dmd 2.066.

This issue is more widespread than just the .length property; I discovered this
by trying to index an array with a ulong (same type as size_t) and found dmd
yelling about implicit conversions to uint. The problematic code was of the

myArray[thingThatReturnsULong() - 1 - 1];

For reference, the precise line of code that breaks:

I confirmed the types of size_t, myArray.length, and a few other things using
pragma(msg, typeof(thing));

For what it's worth, if you pointed me at roughly the write part of the code
that needed fixing, I would gladly make the change; I wasn't able to find the
relevant code in druntime and the dmd repo is a mystery to me.

Oct 25 2014