[svn] r7764: nemerle/trunk/ncc/generation/ILEmitter.n nemerle/trunk/ncc/generation/Typer3.n nemerle/trunk/...

IT svnadmin at nemerle.org
Wed Aug 15 04:18:25 CEST 2007


Log:
Working on debugging again.



Author: IT
Date: Wed Aug 15 04:18:16 2007
New Revision: 7764

Modified:
   nemerle/trunk/ncc/generation/ILEmitter.n
   nemerle/trunk/ncc/generation/Typer3.n
   nemerle/trunk/ncc/generation/Typer4.n
   nemerle/trunk/ncc/misc/ExprWalker.n
   nemerle/trunk/ncc/parsing/MainParser.n
   nemerle/trunk/ncc/typing/TypedTree.n
   nemerle/trunk/ncc/typing/Typer-DelayedTyping.n
   nemerle/trunk/ncc/typing/Typer-PatternTyper.n
   nemerle/trunk/ncc/typing/Typer.n
   nemerle/trunk/ncc/typing/Typer2.n
   vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/ExprFinder.n
   vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Tests.n

Modified: nemerle/trunk/ncc/generation/ILEmitter.n
==============================================================================
--- nemerle/trunk/ncc/generation/ILEmitter.n	(original)
+++ nemerle/trunk/ncc/generation/ILEmitter.n	Wed Aug 15 04:18:16 2007
@@ -402,7 +402,8 @@
       | TExpr.Goto
       | TExpr.Literal (Literal.Void)
       | TExpr.Label (_, Literal (Void))
-      | TExpr.DebugInfo (Literal (Void), null) => ()
+      | TExpr.DebugInfo (Literal (Void), null)
+      | TExpr.DebugInfo (null, _) => ()
       | _ =>
         Message.Warning (expr.Location,
                          "this expression has been skipped in code "
@@ -599,7 +600,7 @@
                 emit (val);
                 need_reference (val.SystemType);
                 _ilg.Emit (OpCodes.Isinst, ty.SystemType);
-                _ilg.Emit (OpCodes.Brfalse, else_label);
+                emit_br (OpCodes.Brfalse, OpCodes.Brtrue);
 
               | If (new_cond, new_then, new_else, _, _) =>
                 def my_label_else = _ilg.DefineLabel ();
@@ -1492,7 +1493,7 @@
           | _        => emit_debug (l.Line, l.Column, l.EndLine, l.EndColumn);
         }
 
-        when (di.expr != null)
+        unless (di.expr == null)
           emit (di.expr);
 
         match (di.pexpr)
@@ -2166,6 +2167,10 @@
 
       public MarkLabel (loc : Label ) : void
       {
+        _throw = false;
+
+        _ilg.MarkLabel(loc);
+
         when (_marked)
         {
           _marked = false;
@@ -2175,10 +2180,6 @@
           _ilg.MarkSequencePoint (_document, 0xFeeFee, 0, 0xFeeFee, 0);
           _ilg.Emit (OpCodes.Nop);
         }
-
-        _throw = false;
-
-        _ilg.MarkLabel(loc);
       }
 
       private mutable _throw  : bool;

Modified: nemerle/trunk/ncc/generation/Typer3.n
==============================================================================
--- nemerle/trunk/ncc/generation/Typer3.n	(original)
+++ nemerle/trunk/ncc/generation/Typer3.n	Wed Aug 15 04:18:16 2007
@@ -1033,7 +1033,7 @@
              | TExpr.MacroEnvelope (_, _, e)
              | TExpr.TypeConversion (e, _, _, _)
              | TExpr.Label (_, e) 
-             | TExpr.DebugInfo (e, _)
+             | TExpr.DebugInfo (e, _) when e != null
               => SimpleFlow (e)
 
              | TExpr.Call (e, p, _) 
@@ -1086,6 +1086,7 @@
              | TExpr.TypeOf
              | TExpr.OpCode
              | TExpr.Goto
+             | TExpr.DebugInfo
               => default;
 
              //invalid things
@@ -1308,6 +1309,8 @@
                )
              )
 
+          | TExpr.DebugInfo (null, _) => e
+
           | TExpr.DebugInfo (e, pe) =>
             def e = inject(e);
             TExpr.DebugInfo (o.Location, e.ty, e, pe);

Modified: nemerle/trunk/ncc/generation/Typer4.n
==============================================================================
--- nemerle/trunk/ncc/generation/Typer4.n	(original)
+++ nemerle/trunk/ncc/generation/Typer4.n	Wed Aug 15 04:18:16 2007
@@ -264,6 +264,9 @@
                              $ "non local goto (block return?) detected (l$id)");
             true
 
+          | Sequence (e1, DebugInfo (null, _)) =>
+            Throws (e1, allow_try, is_top)
+
           | Sequence (e1, e2)
           | DefValIn (_, e1, e2) =>
             if (Throws (e1, allow_try)) {

Modified: nemerle/trunk/ncc/misc/ExprWalker.n
==============================================================================
--- nemerle/trunk/ncc/misc/ExprWalker.n	(original)
+++ nemerle/trunk/ncc/misc/ExprWalker.n	Wed Aug 15 04:18:16 2007
@@ -568,7 +568,7 @@
         | PropertyMember(e, _)                                  // { obj : TExpr; prop : IProperty; }
         | FieldMember   (e, _)                                  // { obj : TExpr; fld : IField; }
         | EventMember   (e, _)                                  // { obj : TExpr; ev : IEvent; }
-        | DebugInfo     (e, _)                                  // { expr : TExpr; pe : PExpr; }
+        | DebugInfo     (e, _) when e != null                   // { expr : TExpr; pe : PExpr; }
         | TypeConversion(e, _, _, _)                            // { mutable expr : TExpr; target_type : TyVar; kind : ConversionKind; target_type_location : Location; }
         | MacroEnvelope (_, _, e)                               // { original : Parsetree.PExpr; the_macro : IMacro; expanded : TExpr; }
         | MethodRef     (e, _, _, _) => Go(e);                  // { obj : TExpr; meth : IMethod; type_parms : list [TyVar]; notvirtual : bool; }
@@ -621,6 +621,7 @@
         | Goto                                                  // { target : int; mutable try_block : int; }
         | DefaultValue
         | Error
+        | DebugInfo
         | This                       => ()
         }
 

Modified: nemerle/trunk/ncc/parsing/MainParser.n
==============================================================================
--- nemerle/trunk/ncc/parsing/MainParser.n	(original)
+++ nemerle/trunk/ncc/parsing/MainParser.n	Wed Aug 15 04:18:16 2007
@@ -2307,9 +2307,7 @@
                                              [], mktry);
                   when (cases is [])
                     Error (x, "catch body must have at least one handler");
-                  def l = loc.Combine(body.Location);
-                  def l = cases.FoldLeft(l, (e, l) => l.Combine(e.Location));
-                  body = PExpr.Try (l, body, cases.Rev ());
+                  body = PExpr.Try (loc + x.Location, body, cases.Rev ());
 
                 | x => Error (x, "expecting handlers of exceptions")
               }

Modified: nemerle/trunk/ncc/typing/TypedTree.n
==============================================================================
--- nemerle/trunk/ncc/typing/TypedTree.n	(original)
+++ nemerle/trunk/ncc/typing/TypedTree.n	Wed Aug 15 04:18:16 2007
@@ -823,7 +823,7 @@
       get {
         match (this)
         {
-          | DebugInfo (e, _) => ty = e.Type
+          | DebugInfo (e, _) when e != null => ty = e.Type
           | _ =>
             when (ty == null) {
               def InternalType = ManagerClass.Instance.InternalType;
@@ -864,7 +864,7 @@
       {
         match (this)
         {
-        | DebugInfo (e, _) => e.ty = value;
+        | DebugInfo (e, _) when e != null => e.ty = value;
         | _ => ()
         }
 
@@ -1165,6 +1165,9 @@
             TypeConversion (expr, t, kind, tl)
 
 
+        | DebugInfo (null, _) => null
+
+
         | DebugInfo (e, pe) =>
           def e' = walk (f, e);
           if (e' : object == e)

Modified: nemerle/trunk/ncc/typing/Typer-DelayedTyping.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer-DelayedTyping.n	(original)
+++ nemerle/trunk/ncc/typing/Typer-DelayedTyping.n	Wed Aug 15 04:18:16 2007
@@ -99,8 +99,9 @@
         public mutable filtering_expression : TExpr.Call;
         public mutable need_ref : bool;
         public mutable need_write : bool;
+        public mutable pexpr : object;
 
-        public this () {}
+        public this (pexpr : object) { this.pexpr = pexpr}
       }
 
 
@@ -141,15 +142,15 @@
               match (meth.BuiltinKind) {
                 | BuiltinMethodKind.OpCode (ch, unch) =>
                   def opcode = if (local_context.IsChecked) ch else unch;
-                  Kind.Resolved (TExpr.OpCode (expr.Location, expr.ty, opcode))
+                  Kind.Resolved (k.pexpr, TExpr.OpCode (expr.Location, expr.ty, opcode))
                 | _ => k
               }
             | Kind.Overloaded (lst) =>
               when (expected.Hint.IsNone && List.ForAll (lst, x => x.Type is MType.Fun))
                 _ = expected.Unify (MType.Fun (typer.FreshTyVar (), typer.FreshTyVar ()));
-              Kind.Overloaded (OverloadPossibility.Unique (lst))
+              Kind.Overloaded (k.pexpr, OverloadPossibility.Unique (lst))
             | Kind.OverloadedOperator (lst, t1, t2, n, e, s) =>
-              Kind.OverloadedOperator (OverloadPossibility.Unique (lst), t1, t2, n, e, s)
+              Kind.OverloadedOperator (k.pexpr, OverloadPossibility.Unique (lst), t1, t2, n, e, s)
             | _ => k
           }
 
@@ -259,7 +260,7 @@
             })) {
               | [] => false
               | newlst =>
-                SetKind (Kind.Overloaded (newlst));
+                SetKind (Kind.Overloaded (kind.pexpr, newlst));
                 true
             }
  
@@ -296,7 +297,7 @@
               });
 
               if (newlst is []) {}
-              else SetKind (Kind.OverloadedOperator (newlst, t1, t2, n, e, s));
+              else SetKind (Kind.OverloadedOperator (DtKind.pexpr, newlst, t1, t2, n, e, s));
             }
           
           | Kind.Overloaded (lst) =>
@@ -310,7 +311,7 @@
               });
 
               if (newlst is []) {}
-              else SetKind (Kind.Overloaded (newlst));
+              else SetKind (Kind.Overloaded (DtKind.pexpr, newlst));
             }
  
           | _ => {}
@@ -661,10 +662,10 @@
                 ReportError (messenger,
                              $ "there is no member named `$(name)' "
                                "in $(TypeOf (e)) with type $expected");
-                SetKind (Kind.Error ())
+                SetKind (Kind.Error (DtKind.pexpr))
                 
               | Some (lst) =>
-                SetKind (Kind.Overloaded (lst));
+                SetKind (Kind.Overloaded (DtKind.pexpr, lst));
                 when (DtKind.need_write && !ExpectLValue (false))
                   ReportError (messenger, $"needed writable value, got $lst");
                 
@@ -690,13 +691,13 @@
             when (o'.Length != overloads.Length || o'.Length == 1)
               match (o') {
                 | [] =>
-                  SetKind (Kind.Error ())
+                  SetKind (Kind.Error (DtKind.pexpr))
                   
                 | [one] =>
-                  SetKind (Kind.Resolved (one.Compile ()))
+                  SetKind (Kind.Resolved (DtKind.pexpr, one.Compile ()))
 
                 | lst =>
-                  SetKind (Kind.Overloaded (lst))
+                  SetKind (Kind.Overloaded (DtKind.pexpr, lst))
               }
           | Kind.OverloadedOperator (overloads, t1, t2, name, env, seen) =>
             def not_seen (l) { 
@@ -714,7 +715,7 @@
                     false
                   else
                   {
-                    SetKind (Kind.OverloadedOperator (lst, t1, t2, name, env, seen));
+                    SetKind (Kind.OverloadedOperator (DtKind.pexpr, lst, t1, t2, name, env, seen));
                     Resolve ();
                     true
                   }
@@ -748,10 +749,10 @@
                               || typer.BadnessAllowed > 1 =>
                       when (expr != null) //ResolveOverload maybe wasn't called, but it should be to set stuff in expr
                         _ = ResolveOverload (overloads, expr.parms, expr.Type);
-                      SetKind (Kind.Resolved (one.Compile ()))
+                      SetKind (Kind.Resolved (DtKind.pexpr, one.Compile ()))
            
                     | lst =>
-                      SetKind (Kind.OverloadedOperator (lst, t1, t2, name, env, seen));
+                      SetKind (Kind.OverloadedOperator (DtKind.pexpr, lst, t1, t2, name, env, seen));
                   }
               }
            
@@ -769,21 +770,21 @@
               res = OverloadPossibility.Unique (res);
               res
             }
-            SetKind (Kind.OverloadedOperator (operators, t1, t2, name, env, operators));
+            SetKind (Kind.OverloadedOperator (DtKind.pexpr, operators, t1, t2, name, env, operators));
             Resolve ()
             
           | Kind.Resolved (expr) =>
             unless (typer.Expect (expected, expr.Type, "already resolved overload"))
-              SetKind (Kind.Error ())
+              SetKind (Kind.Error (DtKind.pexpr))
 
           | Kind.Macro (action) =>
             Util.locate (Location,
               match (action.Resolve (false)) {
                 | Some (expr) =>
                   if (typer.Expect (expected, expr.Type, $ "result of $action execution"))
-                    SetKind (Kind.Resolved (expr))
+                    SetKind (Kind.Resolved (DtKind.pexpr, expr))
                   else
-                    SetKind (Kind.Error ())
+                    SetKind (Kind.Error (DtKind.pexpr))
                   
                 | None => {}
               })

Modified: nemerle/trunk/ncc/typing/Typer-PatternTyper.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer-PatternTyper.n	(original)
+++ nemerle/trunk/ncc/typing/Typer-PatternTyper.n	Wed Aug 15 04:18:16 2007
@@ -393,7 +393,7 @@
             match (pattern) {
               | PT.PExpr.Wildcard =>
                 TypePattern (matched_value_type,
-                             PT.PExpr.As (PT.PExpr.Wildcard (), PT.Splicable.Name (name)))
+                             PT.PExpr.As (nameloc, PT.PExpr.Wildcard (), PT.Splicable.Name (nameloc, name)))
               | _ =>
                 ReportError (messenger, $ "`$(name)' cannot be variant option, "
                                           "since it starts with lowercase letter");

Modified: nemerle/trunk/ncc/typing/Typer.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer.n	(original)
+++ nemerle/trunk/ncc/typing/Typer.n	Wed Aug 15 04:18:16 2007
@@ -591,7 +591,7 @@
 
     internal DelayAction (expected : TyVar, action : DelayedAction) : TExpr
     {
-      def kind = DelayedTyping.Kind.Macro (action);
+      def kind = DelayedTyping.Kind.Macro (null, action);
       def dt = DelayedTyping (this, kind, expected);
       dt.Resolve ();
       TExpr.Delayed (expected, dt)
@@ -616,7 +616,7 @@
           (expr, o.Member)
         
         | lst =>
-          (Delay (DelayedTyping.Kind.Overloaded (lst), expected), null)
+          (Delay (DelayedTyping.Kind.Overloaded (null, lst), expected), null)
       }
     }
 
@@ -1382,7 +1382,7 @@
                           def decl = DefineLocal (exn, BindType (y.exn_ty),
                                                   LocalValue.Kind.ExceptionValue (), false);
                           PushLocals ();
-                          def handler =
+                          mutable handler =
                             try {
                               AddLocal (exn, decl);
                               TypeExpr (y.handler);
@@ -1390,6 +1390,21 @@
                               PopLocals ();
                             }
 
+                          when (Manager.Options.EmitDebug) {
+                            // This code adds break point at the end of the catch expr.
+                            when (!x.Location.IsGeneratedOrEmpty) {
+                              def l  = x.Location;
+                              def dl = Location (l.FileIndex, l.EndLine, l.EndColumn - 1, l.EndLine, l.EndColumn);
+                              def di = TExpr.DebugInfo (dl, handler.Type, null, null);
+
+                              handler = TExpr.Sequence (l, handler.Type, handler, di);
+                            }
+
+                            // This code adds break point at the case.
+                            when (!y.exn.Location.IsGeneratedOrEmpty)
+                              handler = TExpr.DebugInfo (y.exn.Location, handler.Type, handler, null);
+                          }
+
                           _ = ExpectSubtyping (expected, handler.Type, "catch body");
                           type_trycases (cases, 
                                          Try_case.Catch (decl, ImplicitCast (handler, expected)) :: acc)
@@ -1489,7 +1504,7 @@
           }
 
 
-        | PT.PExpr.Member (obj, PT.Splicable.Name as name) =>
+        | PT.PExpr.Member (obj, PT.Splicable.Name as name) as mem =>
           def mem_name = name.body.Id;
           if (CanBeTypeName (obj))
             match (TryTyping (fun () { TypeName (expression, expected) })) {
@@ -1509,20 +1524,20 @@
                     TypeName (expression, expected)
                   else
                     if (messenger.InErrorMode) {
-                      def e = TryTyping (fun () { TypeMemberExpr (obj, name, expected) });
+                      def e = TryTyping (fun () { TypeMemberExpr (mem, obj, name, expected) });
                       if (IsError (e))
                         TypeName (expression, expected)
                       else
-                        TypeMemberExpr (obj, name, expected)
+                        TypeMemberExpr (mem, obj, name, expected)
                     } else
-                      TypeMemberExpr (obj, name, expected)
+                      TypeMemberExpr (mem, obj, name, expected)
                   } else
-                    TypeMemberExpr (obj, name, expected)
+                    TypeMemberExpr (mem, obj, name, expected)
 
               | e => e
             }
           else
-            TypeMemberExpr (TypeExpr (obj), name, expected)
+            TypeMemberExpr (mem, TypeExpr (obj), name, expected)
 
         | PT.PExpr.Member (_, null) =>
           ReportError (messenger, "expected member");
@@ -1558,14 +1573,14 @@
           e.SkipWriteCheck = true;
           e
 
-        | PT.PExpr.Call (fnc, parms) =>
+        | PT.PExpr.Call (fnc, parms) as call =>
           if (parms.Exists (fun (_) {
                   | <[ _ ]> => true
                   | _ => false
                 }) || fnc is <[ _ . $_ ]>)
             TypeExpr (PartialApplication (expression), expected)
           else
-            TypeCall (fnc, parms, expected, is_property = false);
+            TypeCall (call, fnc, parms, expected, is_property = false);
 
 
         | PT.PExpr.Assign (PT.PExpr.Tuple (vars), e2) =>
@@ -2205,7 +2220,8 @@
     #region Indexers
     TypeIndexer (obj : PT.PExpr, args : list [PT.PExpr], expected : TyVar) : TExpr
     {
-      def obj = TypeExpr (obj);
+      def pexpr = obj;
+      def obj   = TypeExpr (pexpr);
 
       DelayAction (expected, 
         DelayedLambdaAction (desc = "", fn = fun (fail_loudly) {
@@ -2213,7 +2229,7 @@
           | TExpr.PropertyMember (_, prop) when prop.IsIndexer
           | TExpr.StaticPropertyRef (_, prop) when prop.IsIndexer
           | TExpr.Delayed (DelayedTyping where (DtKind = Overloaded)) =>
-            Some (TypeCall (<[ $(obj : typed) ]>, args, expected, is_property = true))
+            Some (TypeCall (pexpr, <[ $(obj : typed) ]>, args, expected, is_property = true))
           
           | _ =>
             match (obj.Type.Hint) {
@@ -2575,7 +2591,7 @@
     }
 
 
-    TypeMemberExpr (obj : TExpr, name : PT.Splicable.Name, expected : TyVar) : TExpr
+    TypeMemberExpr (pexpr : PT.PExpr, obj : TExpr, name : PT.Splicable.Name, expected : TyVar) : TExpr
     {
       def mem_name = name.body;
 
@@ -2596,7 +2612,7 @@
           name.typed_object = mem;
           expr;
         | None =>
-          Delay (DelayedTyping.Kind.MemberAccess (obj, mem_name), expected)
+          Delay (DelayedTyping.Kind.MemberAccess (pexpr, obj, mem_name), expected)
       }
     }
 
@@ -2947,7 +2963,7 @@
         | TExpr.Delayed (susp) =>
           susp.ApplyGenericSpecifier (gen_parms);
 
-        | TExpr.DebugInfo (e, _) =>
+        | TExpr.DebugInfo (e, _) when e != null =>
           ApplyGenericSpecifier (e, gen_parms);
 
         | _ =>
@@ -3068,7 +3084,8 @@
     }
 
 
-    TypeCall (pfnc : PT.PExpr,
+    TypeCall (pexpr : PT.PExpr,
+              pfnc : PT.PExpr,
               parms : list [PT.PExpr], 
               expected : TyVar, 
               is_property : bool) : TExpr
@@ -3114,7 +3131,8 @@
               else name.Id;
                 
             def kind =
-              DelayedTyping.Kind.Operator (TypeOf (parm1.expr), 
+              DelayedTyping.Kind.Operator (pexpr,
+                                           TypeOf (parm1.expr), 
                                            TypeOf (parm2.expr), 
                                            operator_name, 
                                            name.GetEnv (env));
@@ -3140,7 +3158,7 @@
               else name.Id;
                 
             def kind =
-              DelayedTyping.Kind.Operator (TypeOf (parm1.expr), null,
+              DelayedTyping.Kind.Operator (pexpr, TypeOf (parm1.expr), null,
                                            operator_name,
                                            name.GetEnv (env));
             when (parm1.kind != ParmKind.Normal)
@@ -3183,7 +3201,7 @@
           | (PT.PExpr.Ref (PT.Name where (Id = "_N_op_Decrement") as name), [parm1]) =>
             def operator_name = name.Id.Substring (3);
             def kind =
-              DelayedTyping.Kind.Operator (TypeOf (parm1.expr), null,
+              DelayedTyping.Kind.Operator (pexpr, TypeOf (parm1.expr), null,
                                            operator_name,
                                            name.GetEnv (env));
             when (parm1.kind != ParmKind.Normal)

Modified: nemerle/trunk/ncc/typing/Typer2.n
==============================================================================
--- nemerle/trunk/ncc/typing/Typer2.n	(original)
+++ nemerle/trunk/ncc/typing/Typer2.n	Wed Aug 15 04:18:16 2007
@@ -1320,6 +1320,9 @@
           BuildConversion (Walk (expr), t, kind)
 
 
+        | TExpr.Sequence (e1, DebugInfo (null, _) as e2) =>
+          TExpr.Sequence (Walk (ctx, e1), e2);
+
         | TExpr.Sequence (e1, e2) =>
           def e1 = IgnoreExpr (Walk (ctx & Context.AllowGotoAndAllThrows, e1));
           TExpr.Sequence (e1, Walk (ctx & ~Context.IsCalledValue, e2))
@@ -1351,6 +1354,8 @@
 
         | TExpr.Error => null
 
+        | TExpr.DebugInfo (null, _) => null
+
         | TExpr.DebugInfo (e, pe) => 
           def e = Walk (ctx, e);
           TExpr.DebugInfo (expr.Location, e.ty, e, pe);

Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/ExprFinder.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/ExprFinder.n	(original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/ExprFinder.n	Wed Aug 15 04:18:16 2007
@@ -66,8 +66,7 @@
       | TExpr.Delayed(susp) when !susp.IsResolved =>
           susp.Resolve();
           if (susp.IsResolved) susp.ResolutionResult else null
-      | _  is TExpr        => obj;
-      | _                  => null;
+      | _                  => obj;
     }
 
     PFinder(info : ExprWalkInfo) : void
@@ -273,7 +272,8 @@
           Trace.WriteLine($"$_texprObject");
           Trace.WriteLine("");
 
-          ExprWalker().Walk(_tRoot, (info : ExprWalkInfo) => 
+          _walkedNodes = [];
+          ExprWalker(this).Walk(_tRoot, (info : ExprWalkInfo) => 
           {
             match (info.Node)
             {

Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Tests.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Tests.n	(original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/Tests/Tests.n	Wed Aug 15 04:18:16 2007
@@ -38,6 +38,7 @@
           Assert.AreEqual(len, result.ColEnd - result.ColStart);
       }
 
+      test("008",  3, "arr");
       test("038",  6, "StrExt");
       test("037",  3, "Int32");
       test("036",  7, "foreach");
@@ -68,7 +69,6 @@
       test("011",  2, "ch");
       test("010",  3, "iii");
       test("009",  3, "Int32");
-      test("008",  3, "arr");
       test("007",  0, "_iii");
       test("006",  9, "WriteLine");
       test("005",  0, "bar");



More information about the svn mailing list