www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 7240] New: Possibilities of throwing Throwable should be calculated

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

           Summary: Possibilities of throwing Throwable should be
                    calculated
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: k.hara.pg gmail.com



(This issue is derived from bug 7232)


But current dmd cannot detect it, 

bool addArticle()
{


}

My technical note from http://d.puremagic.com/issues/show_bug.cgi?id=7232#c2
 Maybe, the original issue by Robert Clipsham is "unreachable scope(failure)
 should warn "statement is not reachable" _with line number_.
 But today it is technically enhancement. Because:
 
 1. Current D2 dmd does only check Exception throwing possibilities in flow
 analysis.
 That means Throwable is not the target of the analysis. In above code,
 
     scope(failure) return false;
     return true;    // (a)
 
 dmd does not consider the statement (a) throws Throwable or not.
 
 2. scope(failure) catches Throwable object and rethrow it. Therefore the
 scope(failure) statement is always analysed as *may be reachable*.
 
 From the two reasons, current dmd cannot detect that the `scope(failure) return
 false;` is not reachable.
I think dmd should also calculate the Throwable flow, not only the Exception flow (it is related to 'nothrow' attribute). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 06 2012