www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 7605] New: Better error message when variable declaration hides type declaration

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=7605

           Summary: Better error message when variable declaration hides
                    type declaration
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: andrej.mitrovich gmail.com



09:22:11 PST ---
module test;

struct Foo { }
void main()
{
    Foo x;
    int Foo;
    Foo y;  // Error: Foo is used as a type
}

Compare the above to this:

module a;
int Foo;

module b;
struct Foo { }

module main;

import a;
import b;

void main() {
    Foo m;
}

main.d(7): Error: a.Foo at a.d(2) conflicts with b.Foo at b.d(2)
main.d(7): Error: Foo is used as a type

The first code example could instead output:
test.d(8): Error: test.Foo at test.d(3) conflicts with test.Foo at test.d(7)
test.d(8): Error: Foo is used as a type

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Feb 28 2012
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=7605


Walter Bright <bugzilla digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla digitalmars.com
         Resolution|                            |WONTFIX



15:34:15 PST ---
But it doesn't conflict. They are in different scopes, one nested inside the
other. The nested one overrides the outer one - not conflicts with it.

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