www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 2789] New: Compiler allows for method with the same signature

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

           Summary: Compiler allows for method with the same signature
           Product: D
           Version: 2.025
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: baryluk smp.if.uj.edu.pl


cclass A {
        int m() {
                return 1;
        }

        float m() {
                return 2.0;
        }
}

class B {
        int m() {
                return 1;
        }

        int m() {
                return 2;
        }
}

void main() {
        auto a = new A();
        assert(a.m() == 1);
        auto b = new B();
        assert(b.m() == 1);
}

/+
 dmd -c bugcopy.d
bugcopy.d(23): function bugcopy.A.m called with argument types:
        ()
matches both:
        bugcopy.A.m()
and:
        bugcopy.A.m()
bugcopy.d(25): function bugcopy.B.m called with argument types:
        ()
matches both:
        bugcopy.B.m()
and:
        bugcopy.B.m()
Exit 1

+/


Without main this program compiles without any warning or error. This connected
with for example overloding over aliases/or const can lead to problems.

class B {
        int m(S[] c) {
                return 1;
        }

        int m(invariant(S)[] c) {
                return 2;
        }
}

If S is already invariant, then this code is erratic, but compiler will not
report it to user.


-- 
Apr 03 2009
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2789


smjg iname.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |smjg iname.com
           Keywords|                            |accepts-invalid
         OS/Version|Linux                       |All





This was a bug in the D1 line ages ago - it seems for some reason the fix
wasn't applied to the D2 line.  BTW no classes are needed to show the bug - it
happens with global functions just as well.


-- 
Apr 15 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2789




09:04:23 PST ---

 This was a bug in the D1 line ages ago - it seems for some reason the fix
 wasn't applied to the D2 line.  BTW no classes are needed to show the bug - it
 happens with global functions just as well.
Hmm. You are right, global functions also have this problem. The problem is that if you don't use this functions, and they have different return types, even linker will not give you any error. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 31 2010
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2789


yebblies <yebblies gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |yebblies gmail.com
           Platform|x86                         |All
            Version|2.025                       |D2
         AssignedTo|nobody puremagic.com        |yebblies gmail.com
            Summary|Compiler allows for method  |Functions overloads are not
                   |with the same signature     |checked for conflicts



The check for D2 was disabled because it didn't play nice with const, according
to comments in FuncDeclaration::overloadInsert.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 29 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2789


yebblies <yebblies gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch



https://github.com/D-Programming-Language/dmd/pull/656

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 29 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2789


yebblies <yebblies gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |samukha voliacable.com



*** Issue 1003 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 29 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2789


yebblies <yebblies gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |braddr puremagic.com



*** Issue 895 has been marked as a duplicate of this issue. ***

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


yebblies <yebblies gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |thelastmammoth gmail.com



*** Issue 10590 has been marked as a duplicate of this issue. ***

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