|
|
|
@ -542,26 +542,5 @@ class C : B { |
|
|
|
var result = Resolve<MemberResolveResult>(program); |
|
|
|
var result = Resolve<MemberResolveResult>(program); |
|
|
|
Assert.AreEqual("op_Addition.Foo", result.Member.FullName); |
|
|
|
Assert.AreEqual("op_Addition.Foo", result.Member.FullName); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Bug 10201 - Wrong generics expansion for base recursive types
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
|
|
|
public void TestBug10201() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
string program = @"public interface IA<T>
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public class G<U, V> : IA<$G<V, string>$> |
|
|
|
|
|
|
|
{} |
|
|
|
|
|
|
|
";
|
|
|
|
|
|
|
|
var rr = Resolve<TypeResolveResult>(program); |
|
|
|
|
|
|
|
var baseType = rr.Type.DirectBaseTypes.First().TypeArguments.First () as ParameterizedType; |
|
|
|
|
|
|
|
Assert.AreEqual("G", baseType.Name); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(2, baseType.TypeParameterCount); |
|
|
|
|
|
|
|
Assert.AreEqual(TypeKind.TypeParameter, baseType.TypeArguments [0].Kind); |
|
|
|
|
|
|
|
Assert.AreEqual("System.String", baseType.TypeArguments [1].FullName); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|