[Issue 3994] New: Wrong line numbers inside AA/Array initializers

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Mar 20 12:15:05 PDT 2010


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

           Summary: Wrong line numbers inside AA/Array initializers
           Product: D
           Version: 1.050
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Keywords: diagnostic, wrong-code
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: cbkbbejeap at mailinator.com
            Blocks: 977


--- Comment #0 from Nick Sabalausky <cbkbbejeap at mailinator.com> 2010-03-20 12:15:03 PDT ---
------------------------------
import std.stdio;
void main()
{
    int i;
    auto arr = [
        i,
        __LINE__,//xxx, // Expected number of this line
        i
    ]; // Outputs this line number
    writeln(arr[1]);
}
------------------------------
void main()
{
    int i;
    auto arr = [
        i,
        xxx, // Error should be reported here
        i
    ]; // Error actually reported here
}
------------------------------

The above problem holds for both arrays and assoc arrays. Problem does not
occur for array literals or assoc array literals.

This is a real pain for a particular idiom I find very useful, particularly for
handling domain-specific languages:

------------------------------
auto dgMap = [
    "foo": (Foo f) {
        return /+..stuff..+/;
    },
    "bar": (Foo f) {
        return /+..stuff..+/;
    },
    "bat": (Foo f) {
        return /+..stuff..+/;
    },
];
dgMap["bar"](new Foo())
------------------------------

Issue #977 is a special case of this issue.

-- 
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