Benji Smith wrote:
Denis Koroskin wrote:
Stdout("Hello, World!").newline.newline.newline;

Ugh. This is one of the few things about Tango that really drives me nuts. I hate all the usage of the opCall overload and non-parenthetized function calls.

At first glance, that code doesn't make any sense to me. My brain just doesn't grok what's going on. It takes me a split second to mentally parse it.

Another thing about omissable parenthesis and function calls. When you define an opCall, to use it you must write "()". That implies that to call a function you must write "()". So not writing "()" should imply a function call!

--
import std.stdio;

struct Bar {
    Foo foo;
}

struct Foo {
    int opCall() {
        return 1;
    }
}

void main() {
    Bar bar;
    writefln("%s", bar.foo); // prints Foo
    writefln("%s", bar.foo()); // prints 1
}
--

Isn't that an inconsistency?

Reply via email to