http://d.puremagic.com/issues/show_bug.cgi?id=10843


Maxim Fomin <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |[email protected]
         Resolution|                            |INVALID


--- Comment #1 from Maxim Fomin <[email protected]> 2013-08-17 23:53:49 PDT 
---
This is invalid report in all there cases.

1) is implicit construction for which constructor with respective arguments
should be defined (as provided in second example). 

2) is implicit construction on argument passing for which variardic functions
do exists. Spec is explicit that for such cases ctor is required.

3) same as #2 with difference that now function is a ctor

This is compilable:
unittest
{
    static struct HANDLE
    {
        void* h;
        alias h this;
    }

    //HANDLE a = null;             // NG
    HANDLE a;
    a = null;                      // OK
}

unittest
{
    static struct HANDLE
    {
        void* h;
        alias h this;
        this(void* h) { this.h = h; }
    }
    HANDLE a = null;               // OK
    static void foo(HANDLE h ...){}
    foo(null);                   // OK
}

unittest
{
    static struct HANDLE
    {
        void* h;
        alias h this;
        this(void* h) { this.h = h; }
    }
    static struct WSAEVENT
    {
        HANDLE h;
        alias h this;
        this(HANDLE h ...) { this.h = h; }
    }
    auto a = cast(HANDLE)null;     // OK
    auto b = cast(WSAEVENT)null; // OK
}

void main() {}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to