在 Fri, 17 Apr 2009 14:52:30 +0800,Don <nos...@nospam.com> 写道:

davidl wrote:
After tweaking dmd a bit litte, i get the dotexp overloading work.
 class c
{
     B opDotExp(char[] methodname,...)
    {
        writefln("god it works ", methodname);
      return new B();
    }

it generates the output:
god it works dynamicmethod
god it works qq
5
 Any comments? Do you like this feature?

That's very impressive. How did you do it? Are the syntax and semantic passes still independent?

Yes, it follows the rule of rewriting the c.unknownmethod(args) to c.opDotExp("unknownmethod", args);

Though it currently gets bugs of not supporting struct, opDotExp signiture must be (char[],...), and possibly break extension method. These should all be fixable.

--
使用 Opera 革命性的电子邮件客户程序: http://www.opera.com/mail/

Reply via email to