[nem-en] expresion level macro to define methods
Igor Tkachev
it at rsdn.ru
Sat Nov 18 00:29:43 CET 2006
Hello Kamil,
I confirm there is problem with attributes in quotation.
Yesterday I added DebuggerStepThrough attribute in the Accessor macro
(it's still there). It's simply ignored.
Friday, November 17, 2006, 2:16:06 PM, you wrote:
> Kamil Skalski wrote:
>> Which version of compiler are you using? If it is with svn, then you
>> should file a bug report.
> I used 0.9.3.
> I just checked that it works properly with the compiler built from the
> latest source.
>> As a workaround you shoud be able to use:
>>
>> def mem_builder =
>> Nemerle.Macros.ImplicitCTX().CurrentType.DefineAndReturn(a_test);
>> mem_builder.GetModifiers().AddCustomAttribute (<[ Test ]>);
> That didn't help; still no attribute on the method. But, as I wrote
> above, it is all fine with the compiler from the latest revision.
> Kamil Dworakowski
>>
>> On 11/17/06, Kamil Dworakowski
>> <kamil.dworakowski at googlemail.com> wrote:
>>> It works fine except that it ignores attributes I define for my method.
>>> I want the method to have [Test] attribute, but it gets lost somehow.
>>> Why?
>>>
>>> def a_test = <[
>>> decl: [Test] public testSth(): void {
>>> Assert.IsTrue(false);
>>> }
>>> ]>;
>>> Nemerle.Macros.ImplicitCTX().CurrentType.Define(a_test);
>>>
>>> Kamil Dworakowski
>>>
>>>
>>> Kamil Skalski wrote:
>>> > Yes,
>>> >
>>> > macro MarkWithMy (expr) {
>>> > Nemerle.Macros.ImplicitCTX().CurrentType.Define ( <[ decl:
>>> > public MyGeneratedMethod (x : int) : int {
>>> > x + $expr
>>> > }
>>> > ]>);
>>> > <[ () ]>
>>> > }
>>> >
>>> > but probably if you tried using this method in compilation of current
>>> > class/method (for other classes it might be even more indeterministic
>>> > ;) ), like
>>> >
>>> > macro MarkWithMy (expr) {
>>> > Nemerle.Macros.ImplicitCTX().CurrentType.Define ( <[ decl:
>>> > public MyGeneratedMethod (x : int) : int {
>>> > x + $expr
>>> > }
>>> > ]>);
>>> > <[ MyGeneratedMethod(1) ]>
>>> > }
>>> >
>>> > you might get strange problems...
>>> >
>>> > On 11/17/06, Kamil Dworakowski
>>> <kamil.dworakowski at googlemail.com>
>>> wrote:
>>> >> Is it possible for an expresion lvl macro to define a method on the
>>> >> enclosing class?
>>> >>
>>> >> Kamil Dworakowski
>>> >>
>>> >> _______________________________________________
>>> >> https://nemerle.org/mailman/listinfo/devel-en
>>> >>
>>> >
>>> >
>>>
>>>
>>> _______________________________________________
>>> https://nemerle.org/mailman/listinfo/devel-en
>>>
>>
>>
> _______________________________________________
> https://nemerle.org/mailman/listinfo/devel-en
--
Best regards,
Igor mailto:it at rsdn.ru
More information about the devel-en
mailing list