On Wednesday, 5 October 2016 at 19:30:27 UTC, pineapple wrote:
On Wednesday, 5 October 2016 at 19:02:02 UTC, Basile B. wrote:
On Wednesday, 5 October 2016 at 18:41:02 UTC, Jacob Carlborg wrote:
On 2016-10-05 19:14, Matthias Klumpp wrote:

Agreed - I have exactly the same problem with "version", which is also really common for, well, to hold a version number of a component. Body
is annoying too.

But, can keywords actually sanely be removed from the language without
breaking the world?

In Ruby most keywords are not reserved words. a.`def`()

D context free grammar allow fast highlighting. I understand that people who write scripts think that it won't change anything...but it's not the reality. D is a system programming language, people who use D can deal with code base > 60 Kloc. And we don't want to see such a change because you can't use "body" in your student project.

In general I don't think this is a problem, but `body` is an unconventional term to have as a keyword. The other keywords that are used for function contracts (`in` and `out`) are also used in other places - perhaps `body` could be deprecated and eventually removed in favor of using another keyword instead? Either another, different keyword that is less likely to collide with common attributes of user types, or an existing keyword not meaningful in the same context.

There may also be a case for making `body` implicit - e.g.

    void func() in{
        //
    }out{
        //
    }body{
        //
    }

Would become

    void func() in{
        //
    }out{
        //
    }{
        //
    }

I don't think this is of critical importance, but dealing with this somehow would definitely be a step in the right direction.

Sorry Sophie, but do you really think that's consistent to have

in{}
out{}
{}

so the actual body without keyword ?
In this case let's drop completely the contracts...you can put them in the body, at the beg or at the end...The syntax will be less sane but the 4 guys who need "body" as identifier will be happy...

Reply via email to