Just wondered if i could pick you brains for a nice solution to dynamically add methods to a class, paying particular attention to overloads. I'm currently writing a mocking framework and everything's coming along nicely and i'm wondering how to handle replacing overloads of the mocked class.

To create a new mocked class this is the code:

        auto mock = new Mock!Person();

Simple enough, mock now contains an extended class with all the methods set to assert(false) because there are no implementations yet. What i need to do is to add the implementations dynamically. This is the code i propose.

        mock.addMethod("getAge", int delegate(){
                return 40;
        });

        assert(mock.getAge() == 40);

Which i guess would be easy to implement but it doesn't handle overloads because the method string doesn't contain enough information to define which overload it's implementing.

Any nice ideas what would be a nice way of supporting this? I thought i'd ask while i have a think and get some tea. :)

Reply via email to