[Issue 7888] New: derivedMembers forward reference

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Apr 10 19:06:34 PDT 2012


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

           Summary: derivedMembers forward reference
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: code at klickverbot.at


--- Comment #0 from klickverbot <code at klickverbot.at> 2012-04-10 19:07:18 PDT ---
The different behavior of is() from bug 7868 depending on whether it was
invoked from a static if condition or not might be acceptable, but this example
is clearly a regression in my eyes:

---
module a;

struct A {
  import b : c;

  // Instantiate template which uses derivedMembers.
  alias D!A Test;

  // Unrelated template from other module - »not defined«.
  static if (c!()()) {}
}

// Just something using derivedMembers.
template D(T) {
  mixin({
    foreach (name; __traits(derivedMembers, T)) {}
    return "";
  }());
}
---
---
module b;
bool c()() { return true; }
---

It compiled fine in DMD 2.058, but fails with »template instance c!() template
'c' is not defined, did you mean a?« in latest Git master (7c22b8a), which is
absolutely not related to the cause of the error.

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