Uriel wrote:
class Foo {
  private Foo[] m_SomeData;

  public this(int a, double b, string c) {}

  public Foo append(Foo obj) {
    m_SomeData ~= obj;
    return this;
  }
}

void foo(Foo obj) {}

void main() {
  foo(1, 1.0, "1");

  Foo obj = new Foo();
  obj.append(1, 1.0, "1").append(2, 2.0, "2");
}

Why not to do implicitly cast of these three parameters to new Foo object. We know that bar should recieve a Foo object and we have a call with parameters which exactly match one of Foo's constructors. It could be a nice syntactic sugar though not very hard to implement I think.

This feature already exists, you just need to declare append and foo a bit differently:

public Foo append(Foo obj...) {}
void foo(Foo obj...) {}

Reply via email to