[svn] r5997: nemerle/trunk/ncc/typing/Solver.n
malekith
svnadmin at nemerle.org
Tue Dec 6 12:16:52 CET 2005
Log:
Change order of stack.Push/Pop and array indexing, so we will always get index exception, not empty stack exception from the finally block. Increase size of state array to 500, this is needed for typing expression like a.b.c.d.e.f. The typer doesn't seem to exhibit exponential behavior in this case anyway. Resolves #582.
Author: malekith
Date: Tue Dec 6 12:16:52 2005
New Revision: 5997
Modified:
nemerle/trunk/ncc/typing/Solver.n
Modified: nemerle/trunk/ncc/typing/Solver.n
==============================================================================
--- nemerle/trunk/ncc/typing/Solver.n (original)
+++ nemerle/trunk/ncc/typing/Solver.n Tue Dec 6 12:16:52 2005
@@ -92,11 +92,10 @@
++serial_stack_top;
++last_serial;
top_serial = last_serial;
- serial_stack [serial_stack_top] = top_serial;
dt_stack.Push (dt_store);
-
messenger.PushState ();
+ serial_stack [serial_stack_top] = top_serial;
}
@@ -107,10 +106,9 @@
public PopState () : void
{
--serial_stack_top;
- top_serial = serial_stack [serial_stack_top];
-
dt_store = dt_stack.Pop ();
messenger.PopState ();
+ top_serial = serial_stack [serial_stack_top];
}
@@ -488,7 +486,7 @@
messenger.NeedMessage = true;
messenger.InErrorMode = true;
- serial_stack = array (5);
+ serial_stack = array (500);
last_serial = 1;
top_serial = 1;
serial_stack [0] = 1;
More information about the svn
mailing list