[Monodevelop-patches-list] r1909 - in trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding: . Parser

commit-watcher at mono-cvs.ximian.com commit-watcher at mono-cvs.ximian.com
Tue Jul 6 17:31:10 EDT 2004


Author: lluis
Date: 2004-07-06 17:31:10 -0400 (Tue, 06 Jul 2004)
New Revision: 1909

Modified:
   trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/ChangeLog
   trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/Parser/Resolver.cs
Log:
	* Parser/Resolver.cs: When locating the inner or outer classes, get the 
	  class from the parser service, since it has all type names resolved 
	  (the one got from the compilation unit does not).


Modified: trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/ChangeLog
===================================================================
--- trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/ChangeLog	2004-07-06 03:08:51 UTC (rev 1908)
+++ trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/ChangeLog	2004-07-06 21:31:10 UTC (rev 1909)
@@ -1,3 +1,9 @@
+2004-07-07  Lluis Sanchez Gual  <lluis at novell.com>
+
+	* Parser/Resolver.cs: When locating the inner or outer classes, get the 
+	  class from the parser service, since it has all type names resolved 
+	  (the one got from the compilation unit does not).
+
 2004-07-05  Todd Berman  <tberman at off.net>
 
 	* CSharpBindingExecutionManager.cs: removed.

Modified: trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/Parser/Resolver.cs
===================================================================
--- trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/Parser/Resolver.cs	2004-07-06 03:08:51 UTC (rev 1908)
+++ trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/Parser/Resolver.cs	2004-07-06 21:31:10 UTC (rev 1909)
@@ -795,14 +795,14 @@
 				return null;
 			}
 			if (curClass.InnerClasses == null) {
-				return curClass;
+				return GetResolvedClass (curClass);
 			}
 			foreach (IClass c in curClass.InnerClasses) {
 				if (c != null && c.Region != null && c.Region.IsInside(caretLine, caretColumn)) {
 					return GetInnermostClass(c);
 				}
 			}
-			return curClass;
+			return GetResolvedClass (curClass);
 		}
 		
 		/// <remarks>
@@ -819,7 +819,7 @@
 					if (c != null && c.Region != null && c.Region.IsInside(caretLine, caretColumn)) {
 						if (c != GetInnermostClass()) {
 							GetOuterClasses(classes, c);
-							classes.Add(c);
+							classes.Add(GetResolvedClass (c));
 						}
 						break;
 					}
@@ -836,13 +836,19 @@
 					if (c != null && c.Region != null && c.Region.IsInside(caretLine, caretColumn)) {
 						if (c != GetInnermostClass()) {
 							GetOuterClasses(classes, c);
-							classes.Add(c);
+							classes.Add(GetResolvedClass (c));
 						}
 						break;
 					}
 				}
 			}
 		}
+		
+		public IClass GetResolvedClass (IClass cls)
+		{
+			// Returns an IClass in which all type names have been properly resolved
+			return parserService.GetClass (project, cls.FullyQualifiedName);
+		}
 
 		public ArrayList IsAsResolve (IParserService parserService, string expression, int caretLine, int caretColumn, string fileName, string fileContent)
 		{




More information about the Monodevelop-patches-list mailing list