accept @pure @nothrow @return attributes

ketmar via Digitalmars-d digitalmars-d at puremagic.com
Thu Jan 29 13:02:14 PST 2015


On Thu, 29 Jan 2015 14:58:51 +0100, Jacob Carlborg wrote:

> On 2015-01-28 23:27, Walter Bright wrote:
> 
>> For example, people often realize that the ; statement terminator is
>> redundant, so they propose removing it. In trying it, however, it soon
>> becomes clear that error message clarity, recovery, and the correct
>> identification of the location of the error degrades substantially.
>>
>> So consider:
>>
>>      void func()
>>      safe T = 7;
>>
>> With your proposal, an error isn't discovered until the '=' is found.
> 
> A good language design that doesn't require the ; statement terminator
> would recognize "void func()" as a valid statement and implicit add ;.
> Scan the line, if a valid language construct has been seen at the end of
> the line, insert a ;, if not continue to the next line. That works in
> many languages.

this never worked good. see deadalnix. or:

  foo.bar
    .zed

is `.zed` a chained call or free call? oh, well, build symbol table to 
find that? and what if we have free function `zed` and a method `zed`?

there can be alot of such samples. implicit `;` never worked right in 
grammars that allows arbitrary newlines. such grammars requires explicit 
"end-of-sentence" signs to be parsable without ambiguities on almost each 
code line.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20150129/79c205da/attachment.sig>


More information about the Digitalmars-d mailing list