This is Xamarin's bug tracking system. For product support, please use the support links listed in your Xamarin Account.
Bug 8283 - overloaded method from base class is 'lost' -- mcs thinks subclass doesn't implement interfact
: overloaded method from base class is 'lost' -- mcs thinks subclass doesn't im...
Status: RESOLVED FIXED
Product: Compilers
Classification: Mono
Component: C#
: unspecified
: PC Linux
: --- normal
: ---
Assigned To: Marek Safar
:
:
:
:
  Show dependency treegraph
 
Reported: 2012-11-08 12:28 EST by Patrick Marks
Modified: 2012-11-11 03:29 EST (History)
1 user (show)

See Also:
Tags:
Test Case URL:
External Submit: ---


Attachments

Description Patrick Marks 2012-11-08 12:28:01 EST
Overloaded methods from a base class don't get 'lost' when they are required to
implement an interface on a subclass.
Works correctly in mono-2.10 and .NET.

Version: fresh build from github master.

Command:
dmcs /target:library /out:blah.dll Test.cs

Result:
Test.cs(25,18): error CS0738: `Test.Subclass' does not implement interface
member `Test.IInterface.Get(string, string)' and the best implementing
candidate `Test.BaseClass.Get(string, int)' return type `int' does not match
interface member return type `string'
Test.cs(7,9): (Location of the symbol related to previous error)
Test.cs(19,13): (Location of the symbol related to previous error)
Compilation failed: 1 error(s), 0 warnings

Test.cs:

namespace Test
{
    public interface IInterface
    {
        string Get(string key, string v);
        int Get(string key, int v);
    }

    public class BaseClass
    {
        public string Get(string key, string v)
        {
            return v;
        }

        public int Get(string key, int v)
        {
            return 0;
        }
    }

    public class Subclass : BaseClass, IInterface
    {
    }
}
Comment 1 Marek Safar 2012-11-11 03:29:19 EST
Fixed in master

Note You need to log in before you can comment on or make changes to this bug.