[svn] r6183: nemerle/trunk/ncc: generation/HierarchyEmitter.n
hierarchy/TypeBuilder.n testsuite/positive/m...
nazgul
svnadmin at nemerle.org
Mon Apr 10 21:08:08 CEST 2006
Log:
Ensure emission is performed also for macro-added types without members
Author: nazgul
Date: Mon Apr 10 21:08:02 2006
New Revision: 6183
Modified:
nemerle/trunk/ncc/generation/HierarchyEmitter.n
nemerle/trunk/ncc/hierarchy/TypeBuilder.n
nemerle/trunk/ncc/testsuite/positive/macrolib.n
nemerle/trunk/ncc/testsuite/positive/macroprog.n
Modified: nemerle/trunk/ncc/generation/HierarchyEmitter.n
==============================================================================
--- nemerle/trunk/ncc/generation/HierarchyEmitter.n (original)
+++ nemerle/trunk/ncc/generation/HierarchyEmitter.n Mon Apr 10 21:08:02 2006
@@ -333,16 +333,13 @@
when (!aux_phase) _cgil_phase = 4;
}
- internal MemberAdded (ti : TypeBuilder, _mem : IMember) : void
+ internal EnsureEmitProgress (ti : TypeBuilder) : void
{
// Message.Debug ($"ma: $ti -> $mem ");
when (_cgil_phase >= 1) {
ti.CreateEmitBuilder ();
ti.UpdateEmittedInheritance ();
}
-
- // when (_cgil_phase >= 2)
- // add_declaration (ti, mem);
}
Modified: nemerle/trunk/ncc/hierarchy/TypeBuilder.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/TypeBuilder.n (original)
+++ nemerle/trunk/ncc/hierarchy/TypeBuilder.n Mon Apr 10 21:08:02 2006
@@ -455,7 +455,7 @@
try {
def mem = bind_and_add_member (f);
when (Manager.IsEmitting) {
- Manager.MemberAdded (this, mem);
+ Manager.EnsureEmitProgress (this);
when (IsFinalized)
Manager.MaybeCompile (this, mem);
}
@@ -1994,8 +1994,7 @@
add_members ();
process_macro_attributes (MacroPhase.WithTypedMembers);
when (Manager.IsEmitting)
- foreach (mem in GetDirectMembers ())
- Manager.MemberAdded (this, mem);
+ Manager.EnsureEmitProgress (this);
}
}
Modified: nemerle/trunk/ncc/testsuite/positive/macrolib.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/macrolib.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/macrolib.n Mon Apr 10 21:08:02 2006
@@ -342,6 +342,13 @@
| _ => Message.FatalError($"Invalid metaclass syntax, expected properties definition, got $body");
}
+
+ def t = ctx.Env.Define(<[ decl:
+ public interface IEmpty {
+ }
+ ]>);
+ t.Compile();
+
<[ () ]>
}
Modified: nemerle/trunk/ncc/testsuite/positive/macroprog.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/macroprog.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/macroprog.n Mon Apr 10 21:08:02 2006
@@ -67,6 +67,8 @@
assert (inline_meta (1, "").X == 1);
assert (inline_meta (2, "a").Y == "a");
+ _ = null : IEmpty;
+
System.Console.WriteLine (ulongLiteral ());
}
}
More information about the svn
mailing list