[Issue 6069] New: DMD tries to call static Foo.opCall() on cast(immutable(Foo))

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat May 28 13:32:38 PDT 2011


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

           Summary: DMD tries to call static Foo.opCall() on
                    cast(immutable(Foo))
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: rejects-valid
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: code at klickverbot.at


--- Comment #0 from klickverbot <code at klickverbot.at> 2011-05-28 13:28:17 PDT ---
struct Foo {
  static Foo opCall() {
    return Foo.init;
  }
}

void main() {
  auto foo = cast(immutable(Foo)) Foo.init;
}

// test.d(8): Error: function test.Foo.opCall () is not callable using argument
types (Foo)
// test.d(8): Error: expected 0 arguments, not 1 for non-variadic function type
Foo()

---

I don't know how DMD could possibly try to call a function inside the cast()
type parameter, but it seems like it does. const() instead of immutable()
produces the error as well, just cast(Foo) works.

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