www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 9363] New: Array slice initialization with implicitly castable type

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

           Summary: Array slice initialization with implicitly castable
                    type
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: bearophile_hugs eml.cc


--- Comment #0 from bearophile_hugs eml.cc 2013-01-20 15:36:26 PST ---
This code works:

import std.typecons: Typedef;
alias Typedef!(int[]) MyArray;
void main() {
    MyArray arr;
    arr.length = 10;
    arr[] = 0;
}


While this:


import std.typecons: Typedef;
alias Typedef!(ubyte[]) MyArray;
void main() {
    MyArray arr;
    arr.length = 10;
    arr[] = 0;
}



Gives (dmd 2.062alpha):

...\dmd2\src\phobos\std\typecons.d(2811): Error: cannot implicitly convert
expression (v) of type int to ubyte[]
temp.d(6): Error: template instance std.typecons.Typedef!(ubyte[],
null).Typedef.Proxy!(Typedef_payload).opSliceAssign!(Typedef!(ubyte[], null),
int) error instantiating

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 20 2013
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9363


Andrej Mitrovic <andrej.mitrovich gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrej.mitrovich gmail.com
           Platform|x86                         |All
         OS/Version|Windows                     |All


--- Comment #1 from Andrej Mitrovic <andrej.mitrovich gmail.com> 2013-01-21
07:36:05 PST ---
std.typecons.Proxy is really poorly designed. Essentially every possible
operator is shoved in there without doing any sort of check on what is being
wrapper (except for the one check for classes).

Btw please don't use the Platform field unless it's a platform-specific bug,
thanks.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 21 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9363



--- Comment #2 from Andrej Mitrovic <andrej.mitrovich gmail.com> 2013-01-21
07:36:32 PST ---
(In reply to comment #1)
 wrapper

I mean wrapped. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 21 2013
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9363



--- Comment #3 from bearophile_hugs eml.cc 2013-01-21 09:15:34 PST ---
(In reply to comment #1)

 Btw please don't use the Platform field unless it's a platform-specific bug,
 thanks.

The Platform tag was set to Windows because the error message that I have put here comes from Windows. It doesn't mean it's a Windows-only problem. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 21 2013