[svn] r5962: nemerle/trunk/ncc/generation/Typer4.n

malekith svnadmin at nemerle.org
Tue Nov 22 15:39:04 CET 2005


Log:
Prevent looping in CheckSTV.

Author: malekith
Date: Tue Nov 22 15:39:04 2005
New Revision: 5962

Modified:
   nemerle/trunk/ncc/generation/Typer4.n

Modified: nemerle/trunk/ncc/generation/Typer4.n
==============================================================================
--- nemerle/trunk/ncc/generation/Typer4.n	(original)
+++ nemerle/trunk/ncc/generation/Typer4.n	Tue Nov 22 15:39:04 2005
@@ -151,6 +151,8 @@
     static mutable current_t4 : Typer4;
     static CheckSTV (t : TyVar) : void
     {
+      if (Passes.Solver.CanEnterPossiblyLooping ())
+        try {
       match (t.Fix ()) {
         | Class (_, args)
         | Tuple (args) =>
@@ -186,6 +188,15 @@
                            "$(current_t4.the_method)");
           {}
       }
+        } finally {
+          Passes.Solver.LeavePossiblyLooping ()
+        }
+      else {
+        ReportError (Passes.Solver.CurrentMessenger,
+                     $ "CheckSTV for $t failed");
+        when (Passes.Solver.CurrentMessenger.NeedMessage)
+          Message.MaybeBailout ();
+      }
     }
     #endif
 



More information about the svn mailing list