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.
Oh, forgot to add: I'm using latest Git master (2c1a453).
Compiles fine on 2.059 Win32
Can't reproduce it with latest DMD anymore either, closing.