On Fri, 27 May 2011 10:54:14 -0400, Andrei Alexandrescu <[email protected]> wrote:

It is completely against the spirit of the language to decide that a call is resolved to an invalid method during runtime. There is no other feature remotely related to hiddenfunc.

A couple of years ago, Walter gave a talk on hijacking to NWCPP. It all went well until HiddenFunc, at which point Walter's assertion that the way out was by throwing an exception was hotly debated. Several people suggested alternative, of whom one proposed (4) above. Everybody agreed it's a good solution, and Walter had the presence of mind and humility to acknowledge that solution and to promise to look into implementing it. Unfortunately, that event was forgotten... until now.

I just tried it out. If one implements an overload that is not contentious (for example, between int and string), no hidden func error is thrown. So indeed the compiler has a notion of when a function would be hijacked.

I thought HiddenFuncError was thrown whenever you called any overloaded base method. So I agree with you, this needs to be fixed. Is there a bugzilla on it, or should we file one? Let's not lose it again.

-Steve

Reply via email to