[svn] r7529: nemerle/trunk/ncc: generation/ILEmitter.n generation/Typer3.n hierarchy/TypeBuilder.n

IT svnadmin at nemerle.org
Thu Mar 15 05:27:10 CET 2007


Log:
Working on debug locations.

Author: IT
Date: Thu Mar 15 05:27:07 2007
New Revision: 7529

Modified:
   nemerle/trunk/ncc/generation/ILEmitter.n
   nemerle/trunk/ncc/generation/Typer3.n
   nemerle/trunk/ncc/hierarchy/TypeBuilder.n

Modified: nemerle/trunk/ncc/generation/ILEmitter.n
==============================================================================
--- nemerle/trunk/ncc/generation/ILEmitter.n	(original)
+++ nemerle/trunk/ncc/generation/ILEmitter.n	Thu Mar 15 05:27:07 2007
@@ -99,15 +99,20 @@
 
       match (_method_builder.GetHeader ().body) {
         | FunBody.Typed (body) =>
-          when (IsDebugEnabled) {
+
+          def do_debug = IsDebugEnabled && !(is_ctor(_method_builder) && _method_builder.DeclaringType.is_lambda);
+
+          when (do_debug) {
             Mark (beginLocation (_method_builder.BodyLocation));
             _ilg.Emit (OpCodes.Nop);   
           }
+
           emit (body);
           
-          when (IsDebugEnabled) {
+          when (do_debug) {
             Mark (endLocation (_method_builder.BodyLocation));
           }
+
           unless (body.Throws)
             _ilg.Emit (OpCodes.Ret);
           // let GC take it

Modified: nemerle/trunk/ncc/generation/Typer3.n
==============================================================================
--- nemerle/trunk/ncc/generation/Typer3.n	(original)
+++ nemerle/trunk/ncc/generation/Typer3.n	Thu Mar 15 05:27:07 2007
@@ -1210,6 +1210,7 @@
       ]>, false);
       builder.DisableImplicitConstructor ();
       builder.forced_typarms = new_tp;
+      builder.is_lambda = true;
       builder.FixupDefinedClass ();
 
       def clo_fields = Hashtable ();

Modified: nemerle/trunk/ncc/hierarchy/TypeBuilder.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/TypeBuilder.n	(original)
+++ nemerle/trunk/ncc/hierarchy/TypeBuilder.n	Thu Mar 15 05:27:07 2007
@@ -52,6 +52,7 @@
   internal mutable parent_type : MType.Class;
   internal mutable forced_typarms : list [StaticTyVar];
   internal mutable reflection_inheritance_emitted : bool;
+  internal mutable is_lambda : bool;
   mutable t_implements : list [MType.Class];
   [Accessor (DeclaredNestedTypes)]
   mutable contained_types : list [TypeBuilder] = [];



More information about the svn mailing list