Author: mkrueger
Date: 2007-11-08 02:46:28 -0500 (Thu, 08 Nov 2007)
New Revision: 89177
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs
Log:
* MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs: Fixed "Bug
340006 - "Implement Interface" does not work correctly".
Modified: trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog 2007-11-08
03:31:44 UTC (rev 89176)
+++ trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog 2007-11-08
07:46:28 UTC (rev 89177)
@@ -1,3 +1,8 @@
+2007-11-08 Mike Krüger <[EMAIL PROTECTED]>
+
+ * MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs: Fixed "Bug
340006 -
+ "Implement Interface" does not work correctly".
+
2007-11-06 Mike Krüger <[EMAIL PROTECTED]>
* MonoDevelop.Projects.Parser/PersistentProperty.cs,
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs
2007-11-08 03:31:44 UTC (rev 89176)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs
2007-11-08 07:46:28 UTC (rev 89177)
@@ -143,6 +143,21 @@
return name;
}
+ static bool Equals (ParameterCollection col1,
ParameterCollection col2)
+ {
+ if (col1 == null && col2 == null)
+ return true;
+ if (col1 == null || col2 == null)
+ return false;
+ if (col1.Count != col2.Count)
+ return false;
+ for (int i = 0; i < col1.Count; i++) {
+ if (col1[i].ReturnType.FullyQualifiedName !=
col2[i].ReturnType.FullyQualifiedName)
+ return false;
+ }
+ return true;
+ }
+
public void ImplementInterface (IParseInformation pinfo, IClass
klass, IClass iface, bool explicitly, IClass declaringClass, IReturnType
hintReturnType)
{
RefactorerContext gctx = GetGeneratorContext (klass);
@@ -190,7 +205,7 @@
IMethod method = iface.Methods[i];
for (j = 0, alreadyImplemented = false; j <
klass.Methods.Count&& !alreadyImplemented; j++) {
- if (klass.Methods[j].Name ==
method.Name && klass.Methods[j].IsExplicitDeclaration == explicitly)
+ if (klass.Methods[j].Name ==
method.Name && Equals (klass.Methods[j].Parameters, method.Parameters) &&
klass.Methods[j].IsExplicitDeclaration == explicitly)
alreadyImplemented =
!explicitly || iface.FullyQualifiedName ==
klass.Methods[j].ExplicitDeclaration.FullyQualifiedName;
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches