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
Summary: overloaded method from base class is 'lost' -- mcs thinks subclass doesn't im...
Status: RESOLVED FIXED
Alias: None
Product: Compilers
Classification: Mono
Component: C# (show other bugs)
Version: unspecified
Hardware: PC Linux
: --- normal
Target Milestone: ---
Assignee: Marek Safar
URL:
Depends on:
Blocks:
 
Reported: 2012-11-08 12:28 UTC by Patrick Marks
Modified: 2012-11-11 03:29 UTC (History)
1 user (show)

See Also:
Tags:


Attachments

Description Patrick Marks 2012-11-08 12:28:01 UTC
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 UTC
Fixed in master

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