[svn] r7115: vs-plugin/trunk: Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Checker.n Nemerle.Compi...

pbludov svnadmin at nemerle.org
Mon Dec 18 10:06:59 CET 2006


Log:
Some checks to avoid crashes on garbage code.

Author: pbludov
Date: Mon Dec 18 10:06:53 2006
New Revision: 7115

Modified:
   vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Checker.n
   vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Engine/Engine-main.n
   vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleDropDownMember.cs

Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Checker.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Checker.n	(original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Checker.n	Mon Dec 18 10:06:53 2006
@@ -354,9 +354,9 @@
           && m.Location.FileIndex == _fileIndex
       }
 
-      def members = builder.GetDirectMembers().Filter(isProcessed);
-
-      foreach (member in members)
+      def members = builder.GetDirectMembers();
+      when (members != null)
+        foreach (member in members.Filter(isProcessed))
       {
       | method  is MethodBuilder   => ProcessMethod  (method);
       | prop    is PropertyBuilder => ProcessProperty(prop);

Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Engine/Engine-main.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Engine/Engine-main.n	(original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Engine/Engine-main.n	Mon Dec 18 10:06:53 2006
@@ -68,6 +68,7 @@
               {
                 //Output.WriteLine($"------- $topDecl: $(topDecl.Name)");
                 //Output.WriteLine(topDecl.Location);
+                when (topDecl.ParsedName.context != null)
                 ScanningPipeline(topDecl);
               }
             //Trace.WriteLine("!!! End <<<<");

Modified: vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleDropDownMember.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleDropDownMember.cs	(original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleDropDownMember.cs	Mon Dec 18 10:06:53 2006
@@ -34,6 +34,8 @@
 				{
 					_members = new List<DropDownMember>();
 
+					if (_typeBuilder.LookupMemberAvailable)
+					{
 					foreach (IMember m in _typeBuilder.GetMembers())
 						if (m.Location.FileIndex == _fileIndex && !m.Location.IsGenerated && !(m is TypeInfo))
 							_members.Add(CreateMember(m));
@@ -48,6 +50,7 @@
 						return string.Compare(m1.Label, m2.Label);
 					});
 				}
+				}
 
 				return _members;
 			}



More information about the svn mailing list