[nem-en] Re: Perform macro on members defined by macro.
Ivan A Eryshov
ivan.eryshov at gmail.com
Wed Feb 28 06:40:50 CET 2007
Kamil, Michał,
What method TypeBuilder.add_macros_from_parsedmems(...) does?
On 26/02/07, Ivan A Eryshov <ivan.eryshov at gmail.com> wrote:
> 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