diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/MemberLookupTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/MemberLookupTests.cs index 07050b6507..8bbbd4685d 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/MemberLookupTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/MemberLookupTests.cs @@ -542,5 +542,26 @@ class C : B { var result = Resolve(program); Assert.AreEqual("op_Addition.Foo", result.Member.FullName); } + + /// + /// Bug 10201 - Wrong generics expansion for base recursive types + /// + [Test] + public void TestBug10201() + { + string program = @"public interface IA +{ +} +public class G : IA<$G$> +{} +"; + var rr = Resolve(program); + var baseType = rr.Type.DirectBaseTypes.First().TypeArguments.First () as ParameterizedType; + Assert.AreEqual("G", baseType.Name); + + Assert.AreEqual(2, baseType.TypeParameterCount); + Assert.AreEqual("System.String", baseType.TypeArguments [0].FullName); + Assert.AreEqual("System.String", baseType.TypeArguments [1].FullName); + } } }