[Issue 8976] New: __traits(compiles, ...) causes error

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Nov 8 03:09:10 PST 2012


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

           Summary: __traits(compiles, ...) causes error
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: rejects-valid
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: verylonglogin.reg at gmail.com


--- Comment #0 from Denis Shelomovskij <verylonglogin.reg at gmail.com> 2012-11-08 14:09:06 MSK ---
Marked as a regression as previously (commit
16dbc68bc30ba65b24f265577e8ffa626ac9698e) compiler worked correctly for code
from which is is reduced.

For this example code, compiler never worked correctly as previously it failed
`static assert`:
---
void f(ref int) { }

void g()()
{
    f(0); // line 5
}


void h()()
{
    g!()();
}

static assert(!__traits(compiles, h!()())); // causes error
---

Errors:
---
main.d(5): Error: function conv2.f (ref int) is not callable using argument
types (int)
main.d(5): Error: constant 0 is not an lvalue
---

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