www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1640] New: Can't slice array literal directly

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

           Summary: Can't slice array literal directly
           Product: D
           Version: 1.022
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: matti.niemenmaa+dbugzilla iki.fi


void main() {
        int[] foo = [1,2,3][];
}

asdf.d(2): semicolon expected, not '['

void main() {
        int[] foo = [1,2,3][0..1];
}

asdf.d(2): semicolon expected, not '['
asdf.d(2): found '..' when expecting ','


-- 
Nov 04 2007
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1640






The array literal is parsed as an array initializer (which must be followed by
a semicolon.) You can work around this quite easily:

int[] foo = ([1,2,3])[0..1];


-- 
Nov 04 2007
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1640






-------
I knew about this workaround, just forgot to mention it. The other, of course,
is to do:

int[] foo = [1,2,3];
foo = foo[0..1];

It's still a bug, though.


-- 
Nov 04 2007
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1640


matti.niemenmaa+dbugzilla iki.fi changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED





-------
Fixed in DMD 1.035, though not marked as such in the changelog.


-- 
Sep 05 2008