|
|
|
|
@ -67,7 +67,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
@@ -67,7 +67,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
|
|
|
|
|
ITypeDefinition disposable = GetTypeDefinition(typeof(NRefactory.TypeSystem.TestCase.ExplicitDisposableImplementation)); |
|
|
|
|
IMethod method = disposable.Methods.Single(m => m.Name == "Dispose"); |
|
|
|
|
Assert.IsTrue(method.IsExplicitInterfaceImplementation); |
|
|
|
|
Assert.AreEqual("System.IDisposable.Dispose", method.InterfaceImplementations.Single().FullName); |
|
|
|
|
Assert.AreEqual("System.IDisposable.Dispose", method.ImplementedInterfaceMembers.Single().FullName); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
@ -80,11 +80,11 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
@@ -80,11 +80,11 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
|
|
|
|
|
Assert.IsTrue(implMethod1.IsExplicitInterfaceImplementation); |
|
|
|
|
Assert.IsTrue(implMethod2.IsExplicitInterfaceImplementation); |
|
|
|
|
|
|
|
|
|
IMethod interfaceMethod1 = (IMethod)implMethod1.InterfaceImplementations.Single(); |
|
|
|
|
IMethod interfaceMethod1 = (IMethod)implMethod1.ImplementedInterfaceMembers.Single(); |
|
|
|
|
Assert.AreEqual(genericInterfaceOfString, interfaceMethod1.DeclaringType); |
|
|
|
|
Assert.IsTrue(!interfaceMethod1.Parameters[1].IsRef); |
|
|
|
|
|
|
|
|
|
IMethod interfaceMethod2 = (IMethod)implMethod2.InterfaceImplementations.Single(); |
|
|
|
|
IMethod interfaceMethod2 = (IMethod)implMethod2.ImplementedInterfaceMembers.Single(); |
|
|
|
|
Assert.AreEqual(genericInterfaceOfString, interfaceMethod2.DeclaringType); |
|
|
|
|
Assert.IsTrue(interfaceMethod2.Parameters[1].IsRef); |
|
|
|
|
} |
|
|
|
|
@ -95,9 +95,9 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
@@ -95,9 +95,9 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
|
|
|
|
|
IType type = compilation.FindType(typeof(ExplicitGenericInterfaceImplementationWithUnifiableMethods<int, int>)); |
|
|
|
|
Assert.AreEqual(2, type.GetMethods(m => m.IsExplicitInterfaceImplementation).Count()); |
|
|
|
|
foreach (IMethod method in type.GetMethods(m => m.IsExplicitInterfaceImplementation)) { |
|
|
|
|
Assert.AreEqual(1, method.InterfaceImplementations.Count, method.ToString()); |
|
|
|
|
Assert.AreEqual(1, method.ImplementedInterfaceMembers.Count, method.ToString()); |
|
|
|
|
Assert.AreEqual("System.Int32", method.Parameters.Single().Type.ReflectionName); |
|
|
|
|
IMethod interfaceMethod = (IMethod)method.InterfaceImplementations.Single(); |
|
|
|
|
IMethod interfaceMethod = (IMethod)method.ImplementedInterfaceMembers.Single(); |
|
|
|
|
Assert.AreEqual("System.Int32", interfaceMethod.Parameters.Single().Type.ReflectionName); |
|
|
|
|
var genericParamType = ((IMethod)method.MemberDefinition).Parameters.Single().Type; |
|
|
|
|
var interfaceGenericParamType = ((IMethod)interfaceMethod.MemberDefinition).Parameters.Single().Type; |
|
|
|
|
|