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

Reply via email to