Author: mhutch
Date: 2007-10-15 21:41:39 -0400 (Mon, 15 Oct 2007)
New Revision: 87554
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/BaseRefactorer.cs
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs
Log:
* MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs: Use new
ITypeNameResolver instead of custom code to generate type names for
explicit inteface implementations.
* MonoDevelop.Projects.CodeGeneration/BaseRefactorer.cs: Stub out
implemented properties with NotImplementedExceptions.
Modified: trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog 2007-10-15
23:35:23 UTC (rev 87553)
+++ trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog 2007-10-16
01:41:39 UTC (rev 87554)
@@ -1,3 +1,11 @@
+2007-10-15 Michael Hutchinson <[EMAIL PROTECTED]>
+
+ * MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs: Use new
+ ITypeNameResolver instead of custom code to generate type names for
+ explicit inteface implementations.
+ * MonoDevelop.Projects.CodeGeneration/BaseRefactorer.cs: Stub out
+ implemented properties with NotImplementedExceptions.
+
2007-10-16 Lluis Sanchez Gual <[EMAIL PROTECTED]>
* MonoDevelop.Projects.Ambience/ITypeNameResolver.cs,
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/BaseRefactorer.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/BaseRefactorer.cs
2007-10-15 23:35:23 UTC (rev 87553)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/BaseRefactorer.cs
2007-10-16 01:41:39 UTC (rev 87554)
@@ -168,8 +168,14 @@
IProperty property = (IProperty) member;
m = (CodeMemberProperty) mProperty;
+ CodeExpression nieReference = new
CodeObjectCreateExpression (TypeToDom (ctx, typeof (NotImplementedException)));
+ CodeStatement throwExpression = new
CodeThrowExceptionStatement (nieReference);
mProperty.HasGet = property.CanGet;
mProperty.HasSet = property.CanSet;
+ if (property.CanGet)
+ mProperty.GetStatements.Add
(throwExpression);
+ if (property.CanSet)
+ mProperty.SetStatements.Add
(throwExpression);
mProperty.Type = ReturnTypeToDom (ctx,
member.ReturnType);
} else {
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs
2007-10-15 23:35:23 UTC (rev 87553)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.CodeGeneration/CodeRefactorer.cs
2007-10-16 01:41:39 UTC (rev 87554)
@@ -142,54 +142,6 @@
return name.Substring (0, idx);
return name;
}
-
- string ExplicitNamePrefix (IParseInformation pinfo, IClass
klass, IClass iface, IReturnType hintReturnType)
- {
-// RefactorerContext gctx = GetGeneratorContext (klass);
- IRefactorer gen = GetGeneratorForClass (klass);
- if (iface.Namespace == klass.Namespace)
- return RemoveGenericParamSuffix (iface.Name) +
GenerateGenerics (gen, iface, hintReturnType) + ".";
-
- string name = iface.FullyQualifiedName;
- int maxLen = name.LastIndexOf ('.') - 1;
-
- if (maxLen < 0)
- return RemoveGenericParamSuffix (iface.Name) +
GenerateGenerics (gen, iface, hintReturnType) + ".";
-
- string longestMatch = null;
-
- if (name.StartsWith (klass.Namespace + "."))
- longestMatch = klass.Namespace;
-
- if (pinfo != null && pinfo.BestCompilationUnit != null)
{
- ICompilationUnit compilationUnit =
(ICompilationUnit) pinfo.BestCompilationUnit;
- bool found = false;
- IUsing use;
- int i;
-
- for (i = 0; i < compilationUnit.Usings.Count &&
!found; i++) {
- if ((use = compilationUnit.Usings[i])
== null)
- continue;
-
- foreach (string prefix in use.Usings) {
- if (name.StartsWith (prefix +
".")) {
- if (longestMatch ==
null || prefix.Length > longestMatch.Length) {
- longestMatch =
prefix;
- if
(longestMatch.Length == maxLen) {
- found =
true;
- break;
- }
- }
- }
- }
- }
- }
-
- if (longestMatch != null)
- return RemoveGenericParamSuffix (name.Substring
(longestMatch.Length + 1)) + GenerateGenerics (gen, iface, hintReturnType) +
".";
-
- return RemoveGenericParamSuffix (name) +
GenerateGenerics (gen, iface, hintReturnType) + ".";
- }
public void ImplementInterface (IParseInformation pinfo, IClass
klass, IClass iface, bool explicitly, IClass declaringClass, IReturnType
hintReturnType)
{
@@ -214,7 +166,7 @@
}
if (explicitly)
- prefix = ExplicitNamePrefix (pinfo, klass,
iface, hintReturnType);
+ prefix = gctx.TypeNameResolver.ResolveName
(iface.FullyQualifiedName ) + ".";
// Stub out non-implemented events defined by @iface
for (i = 0; i < iface.Events.Count; i++) {
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches