[Issue 7133] [tdpl] There should be no empty statement

2011-12-29 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||FIXED


--- Comment #12 from Walter Bright bugzi...@digitalmars.com 2011-12-29 
02:23:17 PST ---
I've added a warning for empty statements, but left the ; after the label as
allowed.

https://github.com/D-Programming-Language/dmd/commit/39d850a65ea5766a7cbd7bbe2fc8ed8e784fcdee

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7133] [tdpl] There should be no empty statement

2011-12-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133



--- Comment #11 from Jakob Ovrum jakobov...@gmail.com 2011-12-25 01:03:29 PST 
---
(In reply to comment #10)
 In fact the oddity is that labels are considered to be statements, yet they
 don't end with a semicolon.

Block, if, while, do, for, foreach, switch, with, etc. Most types of statements
don't end with a semicolon.

Remember that the label statement is:

Identifier : NoScopeStatement

The following statement is a sub-statement of the label statement. It's not any
more inconsistent than other statements with sub-statements.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7133] [tdpl] There should be no empty statement

2011-12-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au


--- Comment #10 from Don clugd...@yahoo.com.au 2011-12-24 04:41:20 PST ---
(In reply to comment #2)
 LABEL: {}
 
 is as good and marginally nicer.
Bear in mind that it only ever happens at the end of a block, so the next
character is always a }.

The existing label syntax needs to be retained for asm statements, though,
since they don't have {}.

asm {
  jmp done;
done:
 ;
}
which is already ugly, and will look really silly when nude ; statements are
gone. I wish we could get rid of that silly semicolon.
In fact the oddity is that labels are considered to be statements, yet they
don't end with a semicolon.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7133] [tdpl] There should be no empty statement

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133


Stewart Gordon s...@iname.com changed:

   What|Removed |Added

 CC||s...@iname.com
   Platform|Other   |All
 OS/Version|Mac OS X|All
   Severity|normal  |enhancement


--- Comment #6 from Stewart Gordon s...@iname.com 2011-12-19 05:07:21 PST ---
(In reply to comment #5)
 Is that different from C++? I thought that {} was just an empty scope without
 any statements in it at all in both C/C++ and D.

It is, but in 100% of cases the compiler can optimise away that empty scope and
so it's equivalent to an empty statement.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7133] [tdpl] There should be no empty statement

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133


jakobov...@gmail.com changed:

   What|Removed |Added

 CC||jakobov...@gmail.com


--- Comment #7 from jakobov...@gmail.com 2011-12-19 05:16:39 PST ---
(In reply to comment #3)
 I didn't think that that worked, since {} isn't a statement (at least, as far
 as I know, it isn't), but if it works, it's certainly better.

It is indeed a statement, it's called a block statement, also in D:
http://dlang.org/statement.html#BlockStatement

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7133] [tdpl] There should be no empty statement

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133



--- Comment #9 from Stewart Gordon s...@iname.com 2011-12-19 07:17:31 PST ---
(In reply to comment #8)
 I think it is useful. This looks odd:
 
 inti = 2;
 for({} i2; i++){}

The ; you're replacing there isn't a statement - it's something explicitly
allowed by the ForStatement syntax.

ForStatement:
for (Initialize Testopt ; Incrementopt) ScopeStatement

Initialize:
;
NoScopeNonEmptyStatement

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7133] [tdpl] There should be no empty statement

2011-12-18 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 CC||jmdavisp...@gmx.com


--- Comment #1 from Jonathan M Davis jmdavisp...@gmx.com 2011-12-18 18:25:35 
PST ---
The one case that I'm aware of where some have argued for its value is labels.
e.g.

LABEL:;

Since labels require a statement, ; makes it so that you can you can use a
label without really having a statement. I'm not sure that that merits keeping
it however, since in every other use case that I can think of, it has no value.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7133] [tdpl] There should be no empty statement

2011-12-18 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133



--- Comment #3 from Jonathan M Davis jmdavisp...@gmx.com 2011-12-18 18:28:18 
PST ---
I didn't think that that worked, since {} isn't a statement (at least, as far
as I know, it isn't), but if it works, it's certainly better.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7133] [tdpl] There should be no empty statement

2011-12-18 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133



--- Comment #4 from Andrei Alexandrescu and...@metalanguage.com 2011-12-18 
20:06:48 PST ---
{} is the empty statement in D.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7133] [tdpl] There should be no empty statement

2011-12-18 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133



--- Comment #5 from Jonathan M Davis jmdavisp...@gmx.com 2011-12-18 20:11:40 
PST ---
Is that different from C++? I thought that {} was just an empty scope without
any statements in it at all in both C/C++ and D.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---