[nem-en] Perform macro on members defined by macro.
Ivan A Eryshov
ivan.eryshov at gmail.com
Mon Feb 26 12:55:00 CET 2007
I define macro:
<nemerle>
[Nemerle.MacroUsage (Nemerle.MacroPhase.WithTypedMembers,
Nemerle.MacroTargets.Class,
Inherited = false, AllowMultiple = false)]
macro AddMethWithNotNullParam(tb : TypeBuilder, macros = <[ ]>)
{
def t = tb.InternalType.Object;
def attrs = Modifiers (NemerleAttributes.None, [macros]);
def prm = <[ parameter: ..$attrs $("_prm" : usesite) : $(t :
typed) ]> :: [];
def bd = <[ object() ]>;
def meth = <[ decl: SomeMeth (..$prm) : $(t : typed) $bd ]>;
tb.DefineAndReturn (meth).HasBeenUsed = true;
}
</nemerle>
usage:
<nemerle>
[AddMethWithNotNullParam(NotNull)]
class A
{
static Main() : void
{
_ = A().SomeMeth(null);
}
}
</nemerle>
but AssertionException doesn't throw. How I can run NotNull macro?
More information about the devel-en
mailing list