[svn] r6513: nemerle/trunk: macros/assertions.n
ncc/hierarchy/TypeBuilder.n
nazgul
svnadmin at nemerle.org
Sat Aug 12 18:40:47 CEST 2006
Log:
Invariant macro relies on expansion order in a tricky way
Author: nazgul
Date: Sat Aug 12 18:40:42 2006
New Revision: 6513
Modified:
nemerle/trunk/macros/assertions.n
nemerle/trunk/ncc/hierarchy/TypeBuilder.n
Modified: nemerle/trunk/macros/assertions.n
==============================================================================
--- nemerle/trunk/macros/assertions.n (original)
+++ nemerle/trunk/macros/assertions.n Sat Aug 12 18:40:42 2006
@@ -207,14 +207,14 @@
]>
};
ty.Define ( <[ decl:
- public mutable _N_invariant_lock : bool;
- ]> );
- ty.Define ( <[ decl:
public virtual _N_invariant () : void
{
assert ($body, "The class invariant has been violated.")
}
]> );
+ ty.Define ( <[ decl:
+ public mutable _N_invariant_lock : bool;
+ ]> );
| Some (m) =>
def m = m :> MethodBuilder;
m.Body = <[
Modified: nemerle/trunk/ncc/hierarchy/TypeBuilder.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/TypeBuilder.n (original)
+++ nemerle/trunk/ncc/hierarchy/TypeBuilder.n Sat Aug 12 18:40:42 2006
@@ -448,13 +448,14 @@
| _ => {}
}
+ when (member_map == null)
+ additional_decls = f :: additional_decls;
+
add_macros_from_parsedmems (f, MacroPhase.BeforeInheritance);
add_macros_from_parsedmems (f, MacroPhase.BeforeTypedMembers);
- if (member_map == null) {
- additional_decls = f :: additional_decls;
+ if (member_map == null)
null
- }
else {
try {
def mem = bind_and_add_member (f);
More information about the svn
mailing list