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

IT svnadmin at nemerle.org
Mon Jan 15 22:47:45 CET 2007


Log:
Combining error messages.

Author: IT
Date: Mon Jan 15 22:47:44 2007
New Revision: 7271

Modified:
   vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Checker.n

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 Jan 15 22:47:44 2007
@@ -530,9 +530,38 @@
         errors = _project.GetAllCompilerMessageForFile(_fileIndex).ToArray();
       }
 
-      foreach (cm in errors)
-        when (!_addError(cm))
-          break;
+      mutable err;
+      mutable doAdd = true;
+
+      foreach (cm when doAdd in errors)
+      {
+        if (err == null)
+          err = cm;
+        else if (err.Location == cm.Location)
+          err = CompilerMessage(
+            {
+              mutable msg = err.Message;
+
+              unless (msg.EndsWith(".") || msg.EndsWith(":"))
+                msg += ".";
+
+              msg += "\n";
+              msg += char.ToUpper(cm.Message[0]).ToString();
+              msg += cm.Message.Substring(1);
+
+              msg.Replace("`", "'")
+            },
+            err.Location,
+            err.MessageKind);
+        else
+        {
+          doAdd = _addError(err);
+          err = cm;
+        }
+      }
+      
+      when (doAdd && err != null)
+        _ = _addError(err);
 
       ProcessRegions(_project.CompileUnits[_fileIndex].Decls);
     }



More information about the svn mailing list