On 9/23/10 8:09 CDT, kenji hara wrote:
I implemented adaptTo .

http://github.com/9rnsr/scrap/blob/master/interfaces/interfaces.d

Kenji Hara

This is great work, Kenji! I'm very glad about this because it uses introspection to implement an important feature. Such post-hoc interface binding is a core feature in quite a few languages.

If you agree, I am committed to advocate adopting this abstraction for Phobos in module std.typecons, with credit.

All - a bit of bikeshedding - what is a better name for adaptTo? I know there is a consecrated name for such late matching of an interface, but I can't remember it.

A few nits about the implementation:

* In line 73 it looks like you don't support covariance of return types. Could you fix that? Example (add it to the unittests, too):

class C
{
  long draw(){ return 10; }
}
interface Drawable
{
  int draw();
}

The override should be legit.

* Throughout: everything that is a value should start with a lowercase letter; everything that is not a value (e.g. type, type tuple) should start with an uppercase letter. In particular your "result" convention should use "Result" for type results and "result" for value results.

* Code shouldn't use uppercase "i" as a symbol name - it's confusable with "1".

Congratulations! This is great work indeed.


Thanks,

Andrei

Reply via email to