dotnet/roslyn
Voir sur GitHubGeneric interface inheritance conflict with extension method
Open
#16 843 ouverte le 31 janv. 2017
Area-CompilersBugConcept-Diagnostic Clarityhelp wanted
Métriques du dépôt
- Stars
- (20 414 stars)
- Métriques de merge PR
- (Merge moyen 6j 17h) (256 PRs mergées en 30 j)
Description
I write 2 class inherit each other and each implement IEnumerable with difference generic type
Like this
public class A : IEnumerable<object>
{
public IEnumerator<object> GetEnumerator()
{
throw new NotImplementedException();
}
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
public class B : A, IEnumerable<string>
{
public new IEnumerator<string> GetEnumerator()
{
throw new NotImplementedException();
}
}
////
static void Test()
{
var a = new A();
var b = new B();
a.Select((item,i) => i);
b.Select((item,i) => i);
}
Instance from A work fine but B cannot use all generic function in System.Linq

It seem B was seen by compiler that it is just IEnumerable but not IEnumerable<string>. It still have Cast<> and OfType<> exposed
