[Issue 7019] implicit constructors are inconsistently allowed

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Jan 10 00:58:28 PST 2013


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


Denis Shelomovskij <verylonglogin.reg at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |verylonglogin.reg at gmail.com


--- Comment #14 from Denis Shelomovskij <verylonglogin.reg at gmail.com> 2013-01-10 11:58:19 MSK ---
A testcase from dmd pull #1213 discussion
https://github.com/D-Programming-Language/dmd/pull/1213#issuecomment-10402603

---
struct S { this(int) { } }
struct S2 { S s; }
void f(S s) { }

// explicit, there is S here:
S s = 5; // ok

// implicit, there is no S here:
static assert(!__traits(compiles, f(5))); // ok
static assert(!__traits(compiles, { S2 s2 = 5; })); // ok
static assert(!__traits(compiles, { S2 s2 = S2(5); })); // ok
static assert(!__traits(compiles, { S2 s2 = { 5 }; })); // fails
static assert(!__traits(compiles, { S2 s2 = { s: 5 }; })); // fails
---

-- 
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