http://d.puremagic.com/issues/show_bug.cgi?id=7702
Kenji Hara <k.hara...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice --- Comment #1 from Kenji Hara <k.hara...@gmail.com> 2012-03-13 07:30:50 PDT --- The infinite loop in dmd is the real issue. struct S { template opDispatch (string name) { //void opCall (T) () @property {} // not need } } void main () { S s; s.x!int; // infinite loop in dmd } And others are not errors, because their error messages are valid. Then I replace the subject. ---- opCall works only for call syntax, e.g. rewriting foo(args) to foo.opCall(args). If you want to implement s.x!int with opDispatch, *nested opDispatch idiom* like follows would work. struct S { template opDispatch(string name) { T opDispatch(T)() @property { return T.init; } } } void main() { S s; assert(s.x!int == 0); // same as s.opDispatch!("x").opDispatch!(int)() } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------