http://d.puremagic.com/issues/show_bug.cgi?id=3922


bearophile_h...@eml.cc changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|DUPLICATE                   |
           Severity|normal                      |enhancement


--- Comment #7 from bearophile_h...@eml.cc 2011-06-14 05:18:56 PDT ---
Reopened as enhancement request after discussions in bug 3746.

This is from the DMD 2.053 specs:
http://www.digitalmars.com/d/2.0/statement.html#ReturnStatement

  Expression is allowed even if the function specifies a void return type. The
Expression will be evaluated, but nothing will be returned. If the Expression
has no side effects, and the return type is void, then it is illegal.


So according to the D specs this code is illegal:

pure int sqr(int x) { return x * x; }
void main() {
    return sqr(10);
}


While this code is correct:

int sqr(int x) { return x * x; }
void main() {
    return sqr(10);
}

But I can't see this as correct, it's bug prone. I think it's better to turn
into an error returning any nonvoid from a void function, regardless of side
effects.

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

Reply via email to