[Issue 4296] New: Reduce parasitic error messages

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jun 8 11:34:08 PDT 2010


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

           Summary: Reduce parasitic error messages
           Product: D
           Version: 2.041
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Keywords: diagnostic
          Severity: enhancement
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: clugdbug at yahoo.com.au


--- Comment #0 from Don <clugdbug at yahoo.com.au> 2010-06-08 11:34:05 PDT ---
The test case below generates many spurious error messages. In the beta of
2.047, they have references to type _error. Now that there is a distinct error
type, it is straightforward to eliminate them all.

Most occur in expression.c. For example, all the checkXXX() functions should
start with:

    if (type == Type::terror)
        return new ErrorExp();

Likewise cases such as:
void BinExp::incompatibleTypes()
{
+    if (e1->type == Type::terror || e2->type == Type::terror)
+        return;

--------------
TEST CASES
--------------

void error_message_tests()
{
    int x = y * 1;
    x = 4 + y;
    int *p = *y;
    x = y++;
    x = 7 - y;
    x = y[3];
    x = ++y;
    x =  y ? 2 : 3;
    x = null[y];
    x = p[y..y];
    y += y;
    x = y/1; // and where the heck did those two divs by 0 come from????
    x = y ~ y;
    x ~= y;
    x = !y;
    x = 3 in y;
    x = y is 2;
    x =  y ^^ 2;
    x ^^= y;
}

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


More information about the Digitalmars-d-bugs mailing list