[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